Run a Mobile Lighthouse Audit on Any Page
Mobile-first audit for a URL — performance, accessibility, SEO and Core Web Vitals as one row.

Mobile is the strategy that matters — Google's index is mobile-first. Thirdwatch's PageSpeed Insights Scraper runs Google PageSpeed Insights against a list of URLs and returns Lighthouse scores and Core Web Vitals as rows — mobile or desktop, bulk or single.
Skip the setup: Run this as a ready-to-go task on Apify — pre-loaded with the configuration from this guide.
Why run a mobile audit
Single-URL audits in the browser are fine for spot checks; for anything systematic you need the result as a row, not a rendered report.
urls plus strategy: "mobile" returns the audit as data — all four scores and the vitals.
The Actor wraps the official PageSpeed Insights API, so results are Google's own audit numbers — just at bulk, as data.
How does this compare to the alternatives?
| Approach | Cost model | Coverage | Effort |
|---|---|---|---|
| Lighthouse in Chrome DevTools | Free | One page at a time, your machine | Manual |
| pagespeed.web.dev UI | Free | One URL per audit | Manual |
| Thirdwatch PageSpeed Scraper | Pay per URL row | Bulk audits, mobile or desktop | URL list in, scores out |
Why this Actor
- All four Lighthouse scores per URL: performance, accessibility, best practices, SEO.
- Core Web Vitals as separate fields — LCP, CLS, INP, TBT, FCP, Speed Index.
- Mobile and desktop strategies in the same input format.
- Bring your own free Google API key for real daily quota.
- Bulk input — audit a whole sitemap's worth of URLs per run.
How to do it in 3 steps
Step 1: Configure the input
Set the inputs as shown below — urls takes the targets, strategy picks mobile or desktop, and apiKey accepts your free Google API key for real quota.
Step 2: Run the Actor
Run it from the console, the API, or the linked saved task. One dataset row is written per audited page.
Step 3: Use the output
Each row carries the four Lighthouse scores plus Core Web Vitals — lcp, cls, inp, tbt, fcp, speedIndex — and the audit timestamp.
{
"urls": [
"https://example.com"
],
"strategy": "mobile"
}Each dataset row looks like:
{
"url": "https://example.com",
"strategy": "mobile",
"fetchTime": "2026-09-16T10:00:00.000Z",
"performanceScore": 92,
"accessibilityScore": 96,
"bestPracticesScore": 100,
"seoScore": 91,
"lcp": 1.8,
"cls": 0.02,
"inp": 45,
"tbt": 12,
"fcp": 1.1,
"speedIndex": 2.3,
"lighthouseVersion": "12.x"
}What to watch for
Without your own apiKey, Google's shared unauthenticated quota is small — expect http_429 error rows on busy days. Grab a free key for anything beyond a smoke test.
Related use cases
- Run a Desktop Lighthouse Audit in Bulk
- Track Core Web Vitals Across Your Key Pages
- Benchmark Your Pages Against Competitors on PageSpeed
- Sweep a Site List for SEO and Best-Practice Scores
- All Thirdwatch use-case guides
Run the PageSpeed Insights Scraper on Apify Store — pay per result, free to try, no credit card to test.
Frequently asked questions
Do I need an API key?
Strongly recommended — the unauthenticated quota is small and shared. A free Google API key (PageSpeed Insights API enabled) gives you ~25k queries/day.
What scores come back?
Performance, accessibility, best practices, and SEO (0–100) plus Core Web Vitals metrics: LCP, CLS, INP, TBT, FCP, Speed Index.
Mobile or desktop?
Both — `strategy` accepts `mobile` (default) or `desktop` per run.
Why did a URL return an error row?
Quota exhaustion without a key (`http_429`), or a page Lighthouse couldn't load. Error rows carry the reason.
Are these lab or field metrics?
The Lighthouse audit scores are lab metrics; where Chrome UX Report field data exists for the origin it appears in the API response too.
Can I schedule recurring audits?
Yes — save the task and attach a schedule; `fetchTime` on each row gives you the time series.
Related
100 free credits, no credit card.
About 30 real searches. Add the MCP to Claude or Cursor in two minutes.