PageSpeed Insights & Lighthouse Bulk Checker, No API Key
Pricing
from $1.05 / 1,000 pagespeed audits
PageSpeed Insights & Lighthouse Bulk Checker, No API Key
Check Google PageSpeed Insights and Lighthouse scores for hundreds of URLs, no API key needed. Performance, accessibility, best practices and SEO scores, Core Web Vitals (LCP, CLS, TBT, INP), CrUX field data, top fixes and full HTML reports. Mobile and desktop.
Pricing
from $1.05 / 1,000 pagespeed audits
Rating
0.0
(0)
Developer
Rod Services
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
8
Monthly active users
19 days ago
Last modified
Categories
Share
Bulk Google PageSpeed Insights and Lighthouse checker: scores and Core Web Vitals (LCP, CLS, INP) for hundreds of URLs in one run. No API key needed. Paste URLs, press Start, get one clean JSON row per page with scores, CrUX field data, top fixes and the full Lighthouse report. $1.50 per 1,000 audits.
What you get
For every URL and device (mobile, desktop or both):
- The four Lighthouse scores: Performance, Accessibility, Best Practices, SEO (0 to 100).
- Core Web Vitals lab metrics: LCP, CLS, TBT, plus FCP, TTFB, Speed Index and page weight.
- Real user CrUX field data from Google: p75 LCP, CLS, INP, FCP, TTFB and the overall rating.
- The top improvement opportunities, sorted by estimated time savings.
- A link to the full Lighthouse HTML report, the same one you see on pagespeed.web.dev.
By default the Actor calls the official Google PageSpeed Insights API with a shared key of this Actor, so you do not need a Google Cloud account. You get Google's own Lighthouse numbers. No browser runs, so it is fast and cheap. You can paste your own free key for a private quota at the same price.
Typical uses:
- SEO agencies. Audit every client page in one run and send scores, Core Web Vitals and fixes per URL.
- Performance monitoring. Schedule daily or weekly runs and alert on LCP or CLS regressions with webhooks.
- Release checks. Audit staging and production URLs, mobile and desktop, before you ship.
- Competitor benchmarking. Compare page speed and SEO scores of your site with competitors.
- AI agents and LLM tools. One predictable JSON schema with numbers, callable through the Apify API or MCP.
Quick start
- Open the Input tab.
- Paste URLs into URLs to audit, one per line.
example.comworks, https is added. - Pick Device: mobile, desktop or both.
- Press Start. Audits take 10 to 60 seconds each and run 20 at a time.
- Open the Output tab. Switch views: Overview, Core Web Vitals, Opportunities, CrUX field data. Click Report to open the full Lighthouse report.
Call it from code or CI with one HTTP request. It waits for the run and returns the rows:
curl -X POST "https://api.apify.com/v2/acts/rod_analytics~lighthouse-audit/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"urls": ["https://example.com", "https://example.com/pricing"], "strategy": "mobile"}'
In a GitHub Actions step, fail the build when a score drops:
SCORE=$(curl -s -X POST "https://api.apify.com/v2/acts/rod_analytics~lighthouse-audit/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' -d '{"urls": ["https://staging.example.com"]}' | jq '.[0].performanceScore')[ "$SCORE" -ge 80 ] || { echo "Performance score $SCORE is under 80"; exit 1; }
Input example
Only urls is required.
{"urls": ["https://apify.com", "https://web.dev"],"strategy": "both","categories": ["performance", "seo"]}
| Field | Default | Description |
|---|---|---|
urls | Pages to audit. Duplicates are removed. | |
strategy | mobile | mobile, desktop or both. Both means two audits per URL. |
categories | all four | performance, accessibility, best-practices, seo. |
engine | psi | psi calls Google PageSpeed Insights, no key needed. local runs Chrome inside the Actor. |
psiApiKey | empty | Optional. Your own free Google key for a private quota. Empty uses the shared key. |
throttling | simulate | simulate like PageSpeed Insights, devtools applied throttling, none raw speed. |
cpuSlowdown | auto | Local engine only. Auto calibrates to the cloud CPU. 4 is the plain Lighthouse default. |
maxConcurrency | 20 or 1 | Parallel audits. 20 for PSI, 1 for local. |
includeFullReport | true | Save the full HTML report to the key-value store. |
includeJsonReport | false | Also save the raw Lighthouse JSON, linked in reportJsonUrl. |
maxOpportunities | 10 | Top opportunities per audit. |
timeoutSecs | 90 | Hard limit per audit. Failed audits are retried once and never charged. |
Output sample
Real result for apify.com on mobile, shortened. Download the dataset as JSON, CSV, Excel or HTML.
{"url": "https://apify.com/","strategy": "mobile","engine": "psi","performanceScore": 40,"accessibilityScore": 100,"bestPracticesScore": 96,"seoScore": 85,"lcpMs": 8551,"cls": 0.002,"tbtMs": 1279,"inpMs": 389,"fcpMs": 2701,"ttfbMs": 116,"speedIndexMs": 7300,"totalByteWeight": 4965534,"opportunities": [{"id": "mainthread-work-breakdown","title": "Minimize main-thread work","savingsMs": 1300,"displayValue": "5.4 s"},{ "id": "bootup-time", "title": "Reduce JavaScript execution time", "savingsMs": 1250, "displayValue": "3.1 s" }],"failedAuditsCount": 21,"fieldData": {"scope": "url","overallCategory": "AVERAGE","lcpMs": 2466,"lcpCategory": "FAST","cls": 0.02,"inpMs": 389,"inpCategory": "AVERAGE","ttfbMs": 1378},"reportUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/lh-apify-com-<hash>-mobile.html?signature=...","lighthouseVersion": "13.5.0","durationSecs": 30.4,"error": null}
| Field | Meaning |
|---|---|
performanceScore ... seoScore | Lighthouse category scores, 0 to 100 |
lcpMs, cls, tbtMs, fcpMs, speedIndexMs | Lab metrics from Lighthouse |
ttfbMs | Server response time of the main document |
inpMs | Interaction to Next Paint, p75 from CrUX. Lab audits cannot measure INP |
opportunities | Top failing performance audits sorted by estimated time savings |
failedAuditsCount, failedAudits | Audits scoring under 0.9 in the selected categories |
fieldData | CrUX real user data, URL level or origin fallback. Null for small sites |
reportUrl, reportJsonUrl | Full HTML report, and raw JSON when includeJsonReport is on |
error, errorCode, howToFix | Why an audit failed, or what to change when the input could not be used |
Pricing
Pay per event. You pay only for successful audits. Failed, blocked and unreachable URLs are free. The price is the same with the shared key and with your own key.
| Event | Free tier | Bronze | Silver | Gold |
|---|---|---|---|---|
| PageSpeed audit, per URL and device | $0.0015 | $0.00135 | $0.0012 | $0.00105 |
| Local Lighthouse audit in Chrome | $0.05 | $0.045 | $0.04 | $0.035 |
| Run start, per GB of memory | $0.001 | $0.001 | $0.001 | $0.001 |
- 1,000 PageSpeed audits cost $1.50 on the free tier and $1.05 on Gold.
- Your discount tier follows your Apify subscription plan.
- The Apify free plan's $5 monthly credit covers about 3,000 PageSpeed audits.
- Set Maximum cost per run in Run options to cap spend. The Actor stops before the limit.
Optional: your own PageSpeed Insights key
The shared key has Google's normal quota, shared by all users of this Actor. For large or frequent runs, use your own free key. It gives you 25,000 audits per day for yourself.
- Open the PageSpeed Insights API page in Google Cloud Console. Sign in and create a project if asked.
- Click Enable.
- Open Credentials, click Create credentials and pick API key.
- Paste it into Your own PageSpeed Insights API key. It is stored encrypted.
If your key is wrong, or the API is not enabled for its project, the run stops after the first request. It ends with one free error row and Google's message in the status. Only the run start is charged.
Local engine
Set Engine to local and Memory to 8 GB in Run options. Lighthouse then runs in real Google Chrome inside the Actor, with no Google quota. Chrome needs about 2 CPU cores for credible scores. The Actor warns in the log when memory is under 4 GB. Keep cpuSlowdown: auto and concurrency 1.
FAQ
Do I need an API key? No. The default engine uses a shared PageSpeed Insights key of this Actor. Your own key is optional and gives you a private quota.
What if the shared key is busy? Google limits requests per minute and per day. The Actor waits and retries on per-minute limits. If the daily quota is used up, the run ends with one free row that says so. Retry later or add your own key.
Is this the same as PageSpeed Insights? The PSI engine returns exactly what the PageSpeed Insights API returns, normalized into one row. The local engine uses the same Lighthouse and simulated throttling on different hardware, so its lab numbers will not match PSI exactly.
Why is INP empty? INP needs real user interactions, lab tests cannot measure it. It comes from CrUX field data, which exists only for pages with enough Chrome traffic. TBT is the lab proxy for INP.
Why did a page fail with HTTP_ERROR_STATUS? The page answered with an HTTP error such as 403 or 404, often a bot blocker. Lighthouse would only score the error page, so the audit is reported as failed and not charged. HTTP 429 from PSI means Google throttles tests of that site for a while. Retry later.
Scores change between runs. Why? This is normal for Lighthouse. For monitoring, compare medians of several runs.
Can it audit pages behind a login? No. Only public URLs.
Is it legal? You audit pages you choose, like running Lighthouse in your own browser. Lighthouse is open source under Apache 2.0. Audit only sites you are allowed to test and respect their terms.
Found a bug or need budgets, sitemaps or Slack alerts? Open an issue in the Issues tab.
Related Actors
More tools from the same developer, built with the same pricing and output style.
| Actor | What it does |
|---|---|
| Website Content Crawler to Markdown for RAG & LLMs | Crawl whole websites into clean Markdown, RAG chunks and llms.txt |
| PDF to Markdown & Text Extractor with OCR | PDF, Word, Excel and PowerPoint files to Markdown and text, with OCR |
| SEO Audit Tool: Site Crawler, Broken Links & Score | Crawl a site and find broken links and on-page SEO issues |
| Tech Stack Detector: Wappalyzer & BuiltWith Alternative | Detect the CMS, frameworks, analytics and hosting of any website |
| Bulk Domain Lookup: DNS, WHOIS, SPF, DMARC & SSL | DNS, email security and SSL checks for a list of domains |
| Speech to Text: Audio, Video & Podcast Transcriber | Whisper transcripts, SRT and VTT subtitles from audio, video and podcast feeds |
| Email Validator & Verifier: Bulk MX & Disposable Check | Check email lists for syntax, MX records and disposable domains |
| Website Contact Scraper: Emails, Phones & Social Links | Find emails, phone numbers and social profiles on company websites |
| VIES VAT Checker & EU Company Registry Lookup | Validate EU VAT numbers and look up company registry data |
| Companies House Scraper: UK Company Search & Officers | Search UK companies and get profiles and officers |
| EU TED Tenders Scraper & Alerts: Public Procurement | EU public procurement notices and awards from TED |
| Greenhouse, Lever & Ashby Job Scraper: 7 ATS in One Feed | Job postings from 7 applicant tracking systems in one schema |
| GitHub Scraper: Repo Stats, Stars, Trending & Search | Repository stats, stars, trending repos and search results |