locaihost data

Bulk PageSpeed and Core Web Vitals checker, no API key.

Paste hundreds or thousands of URLs and get Lighthouse, the engine behind PageSpeed Insights, on every one: four scores, lab metrics and the top five fixes per page, mobile and desktop. Add your own free Google key for real-user Core Web Vitals and a 25-week trend.

mobile · Lighthouse 13.5.0 Perf 78

https://www.python.org/

Performance · Accessibility
78 · 75
Best practices · SEO
100 · 92
Largest Contentful Paint
4.26 s
CLS · Total Blocking Time
0.027 · 192 ms
Top fix
Render-blocking requests · est. 1,550 ms
Next fixes
Reduce unused CSS (129 KiB) · Reduce unused JavaScript (59 KiB)
View the JSON record
{
  "url": "https://www.python.org/",
  "strategy": "mobile",
  "status": "ok",
  "performanceScore": 78,
  "accessibilityScore": 75,
  "bestPracticesScore": 100,
  "seoScore": 92,
  "labLcpMs": 4256,
  "labCls": 0.027,
  "labTbtMs": 192,
  "labFcpMs": 2793,
  "labSpeedIndexMs": 2793,
  "labTtiMs": 4339,
  "coreWebVitals": null,
  "fieldLcpMs": null,
  "fieldDataNote": "Real-user (CrUX) data skipped: add your free Google API key to get it.",
  "topOpportunity": "Render-blocking requests",
  "opportunities": [
    { "id": "render-blocking-insight", "title": "Render-blocking requests", "savingsMs": 1550, "savingsBytes": null, "displayValue": "Est savings of 1,550 ms" },
    { "id": "unused-css-rules", "title": "Reduce unused CSS", "savingsMs": 900, "savingsBytes": 131680, "displayValue": "Est savings of 129 KiB" },
    { "id": "unused-javascript", "title": "Reduce unused JavaScript", "savingsMs": 300, "savingsBytes": 60581, "displayValue": "Est savings of 59 KiB" }
  ],
  "finalUrl": "https://www.python.org/",
  "fetchTime": "2026-10-10T11:09:50.011Z",
  "lighthouseVersion": "13.5.0",
  "error": null
}
A real row from a run on 10 Oct 2026, trimmed. It ran without a Google key, so the real-user (CrUX) columns are empty and the note says why; add your free key to fill them.

Who it's for

SEO agencies
Monthly performance and accessibility reports for every client in one run. With a key, spot pages that fail the Core Web Vitals assessment and show the trend.
Developers and performance teams
Schedule it weekly on your key templates and catch regressions after a release, before they reach real users.
Competitive research and migrations
Compare your pages with competitors' on the same machine, or test every important URL before and after a migration.

How it works

Lighthouse in the Actor
Lighthouse 13 with PageSpeed Insights' presets: Moto G Power on slow 4G for mobile, the desktop preset for desktop. A fresh browser for every test.
Calibrated mobile CPU
The Actor benchmarks its own machine and sets the CPU slowdown with Google's calibration formula, so server speed doesn't skew mobile scores.
Real-user data, optional
With your free Google key: p75 LCP, INP, CLS, FCP and TTFB for the URL and the origin, the pass/fail assessment and a 25-week trend from CrUX.
Pay per tested URL
One charge per URL per device. Pages that can't be tested, invalid inputs and private addresses are free.

Pricing

Billed by Apify per URL tested on one device. Higher Apify plans pay less per result automatically.

Apify planPer 1,000 URL tests
Starter$12.00
Scale$9.00
Business$7.00

On the free Apify plan you can try it at the Starter price, up to 50 results per run. Mobile and desktop for the same URL count as two results.

API and integrations

Call it from any language over HTTP, or wire it up without code.

  • Schedules and saved tasks in the Apify console
  • Slack, email, Google Sheets, Zapier, Make, n8n and webhooks
  • The Apify MCP server, for AI agents
  • Python and JavaScript clients

Full API reference on Apify

curl -X POST \
  "https://api.apify.com/v2/acts/locaihost~pagespeed-bulk/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://www.python.org/", "web.dev", "https://example.com/pricing"],
    "strategy": "both",
    "categories": ["performance", "accessibility", "best-practices", "seo"]
  }'

Questions

Do I need a Google API key?

No. Lighthouse runs inside the Actor, so scores, lab metrics and fixes need nothing else. A free Google key is only needed for real-user Core Web Vitals from the Chrome UX Report (CrUX) and the 25-week trend.

Why do scores differ a little from pagespeed.web.dev?

The test runs on different hardware and from a different network location than Google's, and lab scores vary by a few points run to run on any machine. Mobile CPU slowdown is calibrated with Google's formula so a fast or slow server doesn't skew results. Compare trends and relative numbers, not single runs.

What counts as one result?

One URL tested on one device. Testing a URL on both mobile and desktop is two results.

What if a page can't be tested?

It appears with status error and the reason, and is free. Invalid, duplicate and private or internal addresses are skipped for free too.

How long does it take?

About 10 to 30 seconds per test. The default 4 GB memory runs one test at a time; each extra 4 GB adds a parallel test, up to four.

Test a whole site, not one URL at a time.

Paste up to 5,000 URLs and get one row per page and device, with the fixes ranked by estimated savings.