Bulk PageSpeed Insights & Core Web Vitals Checker avatar

Bulk PageSpeed Insights & Core Web Vitals Checker

Pricing

$1.50 / 1,000 page audits

Go to Apify Store
Bulk PageSpeed Insights & Core Web Vitals Checker

Bulk PageSpeed Insights & Core Web Vitals Checker

Audit hundreds of URLs, or a whole site from its sitemap, with Google PageSpeed Insights: Lighthouse scores, lab Core Web Vitals, real-user CrUX field data with pass/fail, and the top fixes per page. Mobile and desktop. Uses your own free Google API key. No start fee.

Pricing

$1.50 / 1,000 page audits

Rating

0.0

(0)

Developer

Open Data Tools

Open Data Tools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Run Google PageSpeed Insights on hundreds of pages in one go, or on a whole website straight from its sitemap. You get one clean row per page and device with:

  • Lighthouse scores: performance, accessibility, best practices and SEO (0-100)
  • Lab Core Web Vitals: LCP, CLS, TBT, FCP, Speed Index, Time to Interactive, server response time, page weight and request count
  • Real-user field data from the Chrome UX Report: LCP, INP, CLS, FCP and TTFB at the 75th percentile, plus a PASSED / FAILED Core Web Vitals assessment (page-level when Google has it, otherwise origin-level, and the row tells you which)
  • The top fixes per page, ranked by estimated time saved ("Reduce unused JavaScript (~450 ms)")
  • A link to open each audit on pagespeed.web.dev, and optionally the full Lighthouse JSON

Mobile, desktop or both. Export to CSV, Excel, JSON or Google Sheets, or call it from the API, Make, Zapier or n8n.

Why this one

This Actor
Many URLs per runYes, with parallel audits and automatic retries
Whole site from sitemapYes: give a domain or sitemap URL, it finds the pages (robots.txt, sitemap indexes, .xml.gz)
Field data (real users)Yes, with pass/fail and the data scope
Flat, spreadsheet-ready rowsYes: every metric is its own column; fixes are also one text cell
Performance budgetYes: flag pages below a score you choose
Start feeNone
Failed auditsNever charged

Data source

Every number comes from Google's official PageSpeed Insights API v5, the same engine as pagespeed.web.dev. Nothing is scraped. Google runs the Lighthouse audit on its own servers, so results are not skewed by the machine this Actor runs on.

You need a free Google API key (2 minutes)

Google gives every key 25,000 PageSpeed audits per day for free. Without a key the API falls back to a quota shared by everyone on the internet, which is almost always used up.

  1. Open console.cloud.google.com and pick or create a project.
  2. Go to APIs & Services > Library, search PageSpeed Insights API and click Enable.
  3. Go to APIs & Services > Credentials > Create credentials > API key. Optionally restrict the key to the PageSpeed Insights API.
  4. Paste the key into the Google PageSpeed Insights API key field. Apify stores it encrypted.

No billing account is needed for PageSpeed Insights.

Input

{
"urls": ["https://example.com", "https://example.com/pricing"],
"sitemapUrls": ["example.com"],
"maxUrlsPerSitemap": 200,
"excludePatterns": ["/tag/", "/page/\\d+"],
"apiKey": "YOUR_KEY",
"strategies": ["mobile", "desktop"],
"categories": ["performance", "seo", "accessibility", "best-practices"],
"maxOpportunities": 5,
"minPerformanceScore": 50
}
  • urls: pages to audit. https:// is added if you leave it out.
  • sitemapUrls: a domain finds its sitemap through robots.txt and common paths; a sitemap URL is read directly. Use the include/exclude patterns to keep only the pages you care about (for example /blog/).
  • strategies: each device is a separate audit and a separate row.
  • minPerformanceScore: pages below it get belowThreshold: true. Good for weekly alerts.
  • saveFullReport: also stores the complete Lighthouse JSON for each page.

Output

One row per page and device:

{
"url": "https://web.dev/",
"strategy": "desktop",
"status": "ok",
"performanceScore": 70,
"accessibilityScore": 90,
"bestPracticesScore": 96,
"seoScore": 92,
"lcpMs": 994,
"fcpMs": 914,
"tbtMs": 536,
"cls": 0.128,
"speedIndexMs": 1336,
"serverResponseMs": 4,
"totalBytes": 3758311,
"requestCount": 96,
"fieldDataScope": "url",
"fieldLcpMs": 2688,
"fieldInpMs": 71,
"fieldCls": 0.07,
"fieldCwvAssessment": "FAILED",
"topOpportunities": "Minimize main-thread work (~550 ms) | Reduce JavaScript execution time (~500 ms) | Render-blocking requests (~350 ms)",
"belowThreshold": true,
"reportUrl": "https://pagespeed.web.dev/analysis?url=https%3A%2F%2Fweb.dev%2F&form_factor=desktop"
}

Pages that cannot be audited (site down, 4xx/5xx, blocked) come back as rows with status: "error", an errorCode such as FAILED_DOCUMENT_REQUEST and a readable message. They are not charged.

The run's key-value store also holds a SUMMARY record: average scores and lab metrics per device, how many pages pass Core Web Vitals, how many are below your budget, and the 10 slowest pages.

Pricing

Pay per event, no start fee:

EventPrice
Page audit (one page on one device, successful)$0.0015

Examples: 100 pages on mobile = $0.15. 500 pages on mobile and desktop (1,000 audits) = $1.50. Failed audits cost nothing. You can set a maximum charge per run in Apify and the Actor stops cleanly when it is reached.

Use cases

  • SEO audits: check every page of a client site from its sitemap and hand over a spreadsheet of the worst pages and their top fixes.
  • Core Web Vitals monitoring: schedule a weekly run and send belowThreshold pages to Slack or email with an Apify integration.
  • Competitor benchmarks: compare your key pages against competitors on mobile and desktop.
  • Before/after deploys: run the same URL list after each release and compare scores.

Limits and tips

  • Each audit takes Google 5-30 seconds. With the default 5 parallel audits, 100 pages take about 5-8 minutes.
  • Google allows about 400 requests per 100 seconds and 25,000 per day per key. The Actor backs off and retries on rate limits, and stops with a clear message if your daily quota runs out.
  • Lab scores vary a few points between runs; that is how Lighthouse works. Field data is a 28-day rolling average from real Chrome users and only exists for pages and sites with enough traffic.
  • The Actor uses 256 MB of memory and no browser.

FAQ

Is this allowed? Yes. It calls Google's public PageSpeed Insights API with your own key, which is what the API is for.

Why not run Lighthouse inside the Actor? Google's servers give consistent, comparable numbers and include real-user field data. A headless browser in a shared container gives noisier scores and costs more memory.

Can I audit pages behind a login? No. PageSpeed Insights can only reach public pages.

Questions or a missing metric? Open an issue on the Actor's Issues tab.