Bulk Lighthouse Audit – No API Key Needed avatar

Bulk Lighthouse Audit – No API Key Needed

Pricing

from $10.00 / 1,000 lighthouse audit (local engine)s

Go to Apify Store
Bulk Lighthouse Audit – No API Key Needed

Bulk Lighthouse Audit – No API Key Needed

Run real Google Lighthouse on a list of URLs or a whole sitemap: Performance, Accessibility, Best Practices and SEO scores, LCP/CLS/TBT, top fixes with savings, failed audits and HTML reports. No PageSpeed API key or quota required. Export CSV or use in CI.

Pricing

from $10.00 / 1,000 lighthouse audit (local engine)s

Rating

0.0

(0)

Developer

Refill Flows

Refill Flows

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Features

Limited permissions

Share

Run real Google Lighthouse on a list of URLs or a whole sitemap, on mobile and desktop, with this Bulk Lighthouse Audit. No PageSpeed Insights API key and no shared quota. For every page you get:

  • Performance, Accessibility, Best Practices and SEO scores (0–100)
  • Core Web Vitals lab metrics: LCP, CLS and TBT, plus FCP, Speed Index, TTI, TTFB, page weight, DOM size and request count, each rated good, needs improvement or poor
  • The top fixes, ranked by estimated time and bytes saved
  • Failing accessibility, SEO and best-practice checks, listed by name
  • The LCP element and LCP breakdown (TTFB vs render delay)
  • An optional shareable HTML Lighthouse report for each page
  • Optional real-user CrUX field data (p75 LCP, INP, CLS, FCP and TTFB, with pass or fail) when you add a free Google API key
  • A site summary (SUMMARY): average scores, the slowest pages and the Core Web Vitals pass rate

Try it with the prefilled https://example.com input, or point it at your sitemap.

Why this Lighthouse checker?

  • No API key and no quota. Most bulk PageSpeed tools call Google's PageSpeed Insights API and break when its shared quota runs out. This Actor runs Lighthouse 13 inside its own Chrome, so it works on day one. If you have a key, you can switch to the PSI engine, which is cheaper, and add real-user CrUX data.
  • Sitemap in, audit out. Paste https://yoursite.com/sitemap.xml. Sitemap indexes and .gz files are handled for you.
  • Stable numbers. Set runsPerUrl: 3 and the Actor keeps the median run, as Google recommends.
  • Made for monitoring and CI. Set a performanceThreshold budget, get passedThreshold per page, schedule daily runs and send results to Slack, Sheets or a webhook.
  • Easy for AI agents. A flat JSON schema and clear field names make it a simple MCP tool for "audit this site's speed".

Who is it for?

  • SEO and web agencies running monthly client speed and SEO reports across hundreds of URLs.
  • Ecommerce teams checking that every product template passes Core Web Vitals after a release.
  • Developers who want a deploy pipeline to fail when performance drops below budget.
  • Sales teams prospecting agencies who want to find slow sites to pitch speed work to.

How to run a bulk Lighthouse audit

  1. Open the Bulk Lighthouse Audit and click Try for free.
  2. Paste one or more URLs, or a sitemap URL. The form is prefilled with https://example.com.
  3. Keep Devices on mobile for a first run, or add desktop. Leave Save full HTML Lighthouse reports off unless you need the shareable report.
  4. Click Start. When the run finishes, open the dataset for scores and Core Web Vitals, and the key-value store for the SUMMARY record. Export CSV or JSON, or pull results through the API.

A single mobile audit usually finishes in well under a minute.

How much does a Lighthouse audit cost?

EventPrice
Actor start$0.005 per run (charged per GB of memory; this Actor defaults to 2 GB, so $0.01)
Lighthouse audit (local engine, no key)$0.01 per page per device
Audit with your PageSpeed API key$0.003 per page per device

So a 100-page site on mobile costs about $1.00, or $2.00 for mobile plus desktop. With your own Google key it is $0.30 per 100 pages. Platform usage is included. Pages that cannot load are reported with an error field and are not charged.

Input

{
"sitemapUrls": ["https://crawlee.dev/sitemap.xml"],
"urls": ["https://apify.com", "https://example.com"],
"maxUrls": 50,
"strategies": ["mobile", "desktop"],
"performanceThreshold": 80,
"runsPerUrl": 1,
"saveHtmlReports": true
}

Output

One page, mobile, shortened:

{
"url": "https://www.python.org/",
"strategy": "mobile",
"engine": "local",
"finalUrl": "https://www.python.org/",
"lighthouseVersion": "13.6.0",
"scores": {
"performance": 86,
"accessibility": 75,
"bestPractices": 100,
"seo": 92
},
"metrics": {
"firstContentfulPaintMs": 2189,
"largestContentfulPaintMs": 3786,
"totalBlockingTimeMs": 13,
"cumulativeLayoutShift": 0.003,
"speedIndexMs": 2189,
"timeToInteractiveMs": 3786,
"serverResponseTimeMs": 71,
"totalByteWeight": 474666,
"domSize": 913,
"networkRequests": 23
},
"labCwv": {
"lcp": "needs-improvement",
"cls": "good",
"tbt": "good"
},
"labCwvAssessment": "needs-improvement",
"opportunities": [
{
"id": "unused-css-rules",
"title": "Reduce unused CSS",
"displayValue": "Est savings of 129 KiB",
"savingsMs": 710,
"savingsBytes": 131609
}
],
"failedAudits": {
"accessibility": ["Background and foreground colors do not have a sufficient contrast ratio."],
"seo": ["Links do not have descriptive text"],
"bestPractices": []
},
"passedThreshold": true,
"fieldData": null,
"runs": 1,
"error": null,
"auditedAt": "2026-11-10T20:23:47.897Z"
}

The dataset has two views: Scores & Core Web Vitals, and Top fixes with one row per recommendation. The SUMMARY record in the key-value store holds the site-level averages.

How to run Lighthouse in bulk with Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("refillflows/bulk-lighthouse-audit").call(run_input={
"urls": ["https://example.com"],
"strategies": ["mobile"],
"saveHtmlReports": False,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["url"], row["scores"], row["labCwv"])

Schedule it daily, set a performanceThreshold, and post passedThreshold: false rows to Slack or a webhook from a CI pipeline.

Notes and tips

  • Lab scores come from a simulated mid-range phone on slow 4G, the same method PageSpeed Insights uses. They differ slightly between machines, so use runsPerUrl of 3 or more when you need precise numbers. Real-user (CrUX) data needs a Google API key.
  • To get a free Google API key, open Google Cloud Console, go to APIs & Services, enable the PageSpeed Insights API and the Chrome UX Report API, and create an API key.
  • Keep maxConcurrency at 1 for the most accurate local scores. Use 2–4 with 4 GB or more of memory when you need speed.
  • Pages that can't load (DNS errors, interstitials, no content painted) are reported with an error field and aren't charged.

FAQ

Do I need a PageSpeed Insights API key?

No. The default local engine runs Lighthouse 13 in Chrome inside the Actor, so there is no Google quota to run out of. Add a key only if you want cheaper PSI-backed audits and real-user CrUX field data.

Can I audit a whole sitemap?

Yes. Paste your sitemap.xml (indexes and .gz files are fine) and set Max URLs. The Actor collects the loc entries, de-duplicates them, and audits each page.

How is this different from pagespeed.web.dev?

pagespeed.web.dev tests one URL at a time in your browser. This Actor does the same style of Lighthouse audit in bulk, on a schedule, and returns a dataset you can export to CSV, send to Sheets, or assert on in CI.

May I audit any website?

The Actor loads only the pages you give it, the same way a normal browser visit does. Only audit sites you own or are allowed to test.

Other tools by Refill Flows

Support

Open an issue on the Issues tab. Maintained by Refill Flows.