PageSpeed Insights Bulk Audit: Lighthouse and Core Web Vitals avatar

PageSpeed Insights Bulk Audit: Lighthouse and Core Web Vitals

Pricing

from $6.00 / 1,000 page auditeds

Go to Apify Store
PageSpeed Insights Bulk Audit: Lighthouse and Core Web Vitals

PageSpeed Insights Bulk Audit: Lighthouse and Core Web Vitals

Lighthouse and PageSpeed Insights audits for a URL list or a sitemap, on mobile and desktop. One flat row per page: scores, lab metrics, Core Web Vitals field data for the URL and its site, top fixes. $8 per 1,000 audits, failed ones free.

Pricing

from $6.00 / 1,000 page auditeds

Rating

0.0

(0)

Developer

Baptiste Bouton

Baptiste Bouton

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Give it a list of URLs or a sitemap and it runs PageSpeed Insights on each page, on mobile, desktop or both. You get one flat row per page: the four Lighthouse scores, the lab metrics, the Core Web Vitals of real Chrome users (for the URL and for the whole site) and the five fixes with the biggest estimated time saving. It costs $0.008 per page audited ($8 per 1,000). Failed audits are free.

What you get for each URL and device

  • Lighthouse scores (0 to 100): Performance, Accessibility, Best Practices, SEO.
  • Lab metrics measured by Lighthouse: LCP, FCP, CLS, Total Blocking Time, Speed Index, time to first byte.
  • Field data from the Chrome UX Report (CrUX, real users over the last 28 days): 75th percentile LCP, INP and CLS with the FAST, AVERAGE or SLOW verdict, for the URL and for its origin. Pages without enough traffic get null for the URL and often still have origin data.
  • Top opportunities: up to 5 failing performance audits, sorted by estimated saving in milliseconds. The saving is the one Lighthouse estimates for the metric it improves most (LCP, FCP, Total Blocking Time or INP), so two audits about the same JavaScript work can show the same saving.

Use cases

  • Audit a whole site from its sitemap and sort the slowest pages first.
  • Check the Core Web Vitals of client sites every week with the Apify scheduler and spot regressions.
  • Compare your pages with competitor pages on mobile and desktop.
  • Add speed and SEO scores to a lead list before an agency pitch.
  • Find which pages fail Core Web Vitals for real users, not only in the lab, with the CrUX verdict per URL and per site.

Quick recipes

  • Lighthouse for a whole sitemap: set sitemapUrl, strategies to mobile and desktop, sort the dataset by performanceScore.
  • Core Web Vitals report: keep performance only and read fieldCategory and originFieldCategory.
  • Weekly monitoring: schedule the run in Apify and send the dataset to Google Sheets, Make, Zapier or n8n.
  • From an AI assistant: call the Actor through the Apify MCP server to audit a page on request.

Input

FieldDescriptionDefault
urlsPages to audit, full addresses
sitemapUrlXML sitemap whose pages are added after urls: a sitemap index is followed with one level of nested index, up to 50 sitemap files, .xml.gz supported
strategiesmobile, desktop or both["mobile"]
categoriesperformance, accessibility, best-practices, seoall four
maxUrlsMaximum number of URLs in the run100
apiKeyYour own PageSpeed Insights API key (optional, stored encrypted)

Set urls, sitemapUrl or both. Example:

{ "sitemapUrl": "https://example.com/sitemap.xml", "strategies": ["mobile", "desktop"], "maxUrls": 200 }

Without apiKey, the Actor uses the owner's shared key: at most 500 URLs per run and 2000 audits per day for your account. With your own key (free, from the Google Cloud console, PageSpeed Insights API enabled) the limit is 3000 URLs per run and your key's own daily quota.

Invalid addresses in urls are skipped with a warning, #fragments are dropped, and a sitemap file that cannot be read is skipped with a warning. The run fails only when no URL is left to audit.

Output

One row per URL and device. Real output for https://apify.com on mobile, from a run on 22 October 2026:

{
"url": "https://apify.com/",
"finalUrl": "https://apify.com/",
"strategy": "mobile",
"performanceScore": 34,
"accessibilityScore": 100,
"bestPracticesScore": 73,
"seoScore": 85,
"lcpMs": 14326,
"fcpMs": 2701,
"cls": 0,
"tbtMs": 2497,
"speedIndexMs": 8382,
"ttfbMs": 601,
"fieldLcpMs": 2437,
"fieldInpMs": 396,
"fieldCls": 0.02,
"fieldCategory": "AVERAGE",
"originFieldLcpMs": 1933,
"originFieldInpMs": 370,
"originFieldCls": 0,
"originFieldCategory": "AVERAGE",
"topOpportunities": [
{ "id": "bootup-time", "title": "Reduce JavaScript execution time", "savingsMs": 2950 },
{ "id": "mainthread-work-breakdown", "title": "Minimize main-thread work", "savingsMs": 2500 },
{ "id": "unused-javascript", "title": "Reduce unused JavaScript", "savingsMs": 2100 },
{ "id": "render-blocking-insight", "title": "Render-blocking requests", "savingsMs": 650 },
{ "id": "cache-insight", "title": "Use efficient cache lifetimes", "savingsMs": 150 }
],
"lighthouseVersion": "13.5.0",
"fetchedAt": "2026-10-22T08:38:31.406Z",
"error": null
}

When a page cannot be audited (unreachable page, Lighthouse error), the row keeps url and strategy, the other values are null, and error says why.

Pricing

$0.008 per audit ($8 per 1,000). Pay per event: one page-audited event per URL and device with a successful audit. A URL audited on mobile and desktop counts twice. Rows with an error are free. The run stops as soon as your maximum charge per run is reached, and if the platform restarts a run, audits already saved are skipped and never charged again.

Tips

  • Lab scores move a few points between runs, as with any Lighthouse test. For trends, compare weekly runs or read the field data, which covers 28 days of real visits.
  • An audit takes about 40 seconds at Google and the Actor runs 32 at a time: 100 URLs on one device take about 2 to 3 minutes, 3000 URLs on both devices about 2 hours.
  • Picking fewer categories gives shorter rows. The price stays the same.

FAQ

Is this the official PageSpeed Insights data? Yes. The Actor calls the official PageSpeed Insights API v5, the same engine as pagespeed.web.dev.

Why is the field data null for some pages? CrUX only publishes pages and sites with enough Chrome traffic. Small sites often have origin data but no URL data.

Does it collect personal data? No. It returns performance measures of web pages and aggregated, anonymous Chrome statistics.

Is my API key safe? It is an encrypted secret input, it is never logged and never written to the dataset.