Lighthouse Bulk Speed Auditor - PageSpeed & Core Web Vitals
Pricing
$30.00 / 1,000 audit completeds
Lighthouse Bulk Speed Auditor - PageSpeed & Core Web Vitals
Run open-source Lighthouse on hundreds of URLs at once. Get performance, SEO, accessibility & best-practices scores, Core Web Vitals (LCP, CLS, TBT), top fixes with savings and full HTML reports. Mobile & desktop. No API key needed.
Pricing
$30.00 / 1,000 audit completeds
Rating
0.0
(0)
Developer
Jean Swiegers
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Bulk Lighthouse Audit – PageSpeed, Core Web Vitals & SEO Scores for Many URLs
Run Google's open-source Lighthouse on a whole list of URLs and get one clean row per page: Performance, Accessibility, Best Practices and SEO scores (0–100), Core Web Vitals lab metrics (LCP, CLS, TBT, plus FCP, Speed Index and TTI), the top page speed fixes ranked by estimated savings, and optional full Lighthouse HTML reports you can share. Mobile, desktop or both. No API key, no PageSpeed Insights quota, no start fee – $0.03 per successful audit. Export to JSON, CSV or Excel, or pull results into your own dashboards via the Apify API.
Lighthouse (Apache-2.0) runs inside the Actor in headless Chrome, using the same simulated throttling as the lab section of PageSpeed Insights. This is an independent tool, not affiliated with or endorsed by Google.
What you get
One dataset row per URL per device:
| Field | What it contains |
|---|---|
url, finalUrl | The URL you gave and the URL Lighthouse ended on after redirects |
device | mobile or desktop |
status | succeeded or failed |
scores | performance, accessibility, best-practices, seo (0–100, for the categories you selected) |
metrics | lcpMs, fcpMs, cls, tbtMs, siMs (Speed Index), ttiMs (Time to Interactive) |
opportunities | Top fixes sorted by estimated savings: id, title, displayValue, savingsMs, savingsKb |
diagnostics | failedAuditCount, failedAudits (first 15 IDs), totalByteWeightKb, numRequests, numScripts, domSize, serverResponseTimeMs, mainThreadWorkMs, bootupTimeMs |
warnings | Lighthouse run warnings, if any |
lighthouseVersion, throttling, fetchTime, durationMs | How and when the audit ran |
reportJsonUrl, reportHtmlUrl | Links to the full Lighthouse JSON and shareable HTML report (when saveFullReport is on, otherwise null) |
error | null on success, otherwise { code, message } |
Ready-made dataset views in Apify Console: Scores & Core Web Vitals, Top opportunities and Errors. A RUN_SUMMARY record in the key-value store holds the succeeded/failed totals.
How much does it cost?
$0.03 per successful audit (one URL on one device). You only pay for successful results: failed audits and invalid URLs are free, there is no start fee, and there are no extra platform usage charges. "device": "both" counts as 2 audits per URL.
| Audits | Price |
|---|---|
| 100 URLs, mobile | $3.00 |
| 100 URLs, mobile + desktop | $6.00 |
| 1,000 URLs, mobile | $30.00 |
Set a maximum cost per run in Apify Console and the Actor stops starting new audits once it is reached.
Use cases
- 📈 Core Web Vitals & SEO monitoring – schedule weekly audits of your key landing pages and spot regressions early.
- 🏁 Competitor benchmarking – compare page speed and SEO scores against competitors' home and product pages.
- 🧾 Agency reports & lead generation – audit a list of prospect websites and show each one what to fix, with a shareable HTML report.
- 🚀 Pre/post-release QA – audit production URLs after each deploy by calling the Actor from CI via the Apify API.
- ♿ Accessibility sweeps – find pages with failing accessibility audits across a site.
How to run a bulk Lighthouse audit
- Paste your URLs (or upload a text file of URLs) into URLs to audit. URLs without
https://get it added, and duplicates are removed. - Pick the device (mobile, desktop or both) and the categories you need. Fewer categories make audits faster.
- Click Start, then download the results as JSON, CSV or Excel, or fetch them via the API.
Example input
{"urls": [{ "url": "https://example.com" }, { "url": "https://apify.com" }],"device": "both","categories": ["performance", "accessibility", "best-practices", "seo"],"throttling": "simulate","saveFullReport": true,"maxOpportunities": 5,"maxConcurrency": 1}
All input options:
| Field | Default | What it does |
|---|---|---|
urls | example.com, apify.com | Pages to audit (one audit per URL per device) |
device | mobile | mobile (Moto G Power, slow 4G), desktop or both |
categories | all four | performance, accessibility, best-practices, seo |
throttling | simulate | simulate (Lighthouse default), devtools (applied throttling) or none |
saveFullReport | false | Save full Lighthouse JSON + HTML reports and link them from each row |
maxOpportunities | 5 | How many top fixes to list per URL (0–30) |
maxConcurrency | 1 | Parallel audits (1–4). Use 1 per ~4 GB memory for stable scores |
timeoutSecs | 120 | Per-audit timeout (20–300 s) |
maxRetries | 1 | Retries per failed audit (0–3). Retries are never charged |
Example output
A real mobile audit of apify.com from a test run (opportunities and failed audits shortened):
{"url": "https://apify.com/","finalUrl": "https://apify.com/","device": "mobile","status": "succeeded","scores": { "performance": 31, "accessibility": 100, "best-practices": 75, "seo": 85 },"metrics": { "lcpMs": 13371, "fcpMs": 2830, "cls": 0, "tbtMs": 28423, "siMs": 11305, "ttiMs": 42340 },"opportunities": [{ "id": "unused-javascript", "title": "Reduce unused JavaScript", "displayValue": "Est savings of 1,362 KiB", "savingsMs": 1970, "savingsKb": 1361.6 },{ "id": "duplicated-javascript", "title": "Remove duplicate modules in JavaScript bundles", "displayValue": "Est savings of 93 KiB", "savingsMs": 0, "savingsKb": 92.7 }],"diagnostics": {"failedAuditCount": 25,"failedAudits": ["largest-contentful-paint", "speed-index", "total-blocking-time"],"totalByteWeightKb": 4857.2,"numRequests": 250,"numScripts": 111,"domSize": 1641,"serverResponseTimeMs": 82,"mainThreadWorkMs": 41286,"bootupTimeMs": 27303},"warnings": [],"lighthouseVersion": "12.8.2","throttling": "simulate","fetchTime": "2026-10-18T07:16:55.450Z","durationMs": 43072,"reportJsonUrl": null,"reportHtmlUrl": null,"error": null}
Failed URLs get "status": "failed" and an error object with a code (INVALID_URL, NAVIGATION_FAILED, TIMEOUT, …) and a message.
Tips
- Lighthouse is CPU-sensitive. Keep
maxConcurrencyat 1 per ~4 GB of memory (Apify gives 1 CPU core per 4 GB). Less memory makes pages look slower (higher TBT). - In our test runs one audit took about 10 seconds for a light page (example.com) and about 45 seconds for a heavy JavaScript page (apify.com). Raise the run timeout for long URL lists.
- Scores vary a few points between runs (in PageSpeed Insights too). Track trends, not single values.
- Use Schedules in Apify Console for daily or weekly monitoring, and Integrations (Slack, Google Sheets, webhooks) to get the results where you work.
FAQ
Is this the same as Google PageSpeed Insights? It uses the same open-source Lighthouse engine and the same simulated throttling as PageSpeed Insights' lab data, but runs on Apify's servers, so absolute numbers can differ slightly. It does not include CrUX field data from real users.
Do I need a Google API key? No. Lighthouse runs inside the Actor, so there is no key and no PageSpeed Insights API quota.
What am I charged for? Only successful audits, at $0.03 each. Failed audits, invalid URLs and retries are free, and there is no start fee.
Can I audit pages behind a login? Not currently – only publicly reachable URLs.
Can I get the full Lighthouse report? Yes. Turn on saveFullReport and each row links to the full JSON and the shareable HTML report in the run's key-value store.
Is it legal? You audit public pages the way any browser loads them. Only audit sites you own or have a legitimate reason to test, and respect their terms. No personal data is collected.
Something broke? Open an issue on the Actor's Issues tab with the run ID.