PageSpeed Checker — Core Web Vitals & Performance Score avatar

PageSpeed Checker — Core Web Vitals & Performance Score

Pricing

from $2.00 / 1,000 domain scoreds

Go to Apify Store
PageSpeed Checker — Core Web Vitals & Performance Score

PageSpeed Checker — Core Web Vitals & Performance Score

Real Google PageSpeed Insights score and Core Web Vitals (LCP, CLS, FCP, TBT, Speed Index) for any domain or URL, one flat row per page. A per-domain enrichment column for lead lists, not a multi-page audit. Runs on Google's official PSI v5 API. Bring your own free key for a higher rate limit.

Pricing

from $2.00 / 1,000 domain scoreds

Rating

0.0

(0)

Developer

Adrian Voss

Adrian Voss

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

15 hours ago

Last modified

Share

Site Performance Lookup — PageSpeed Score & Core Web Vitals

Paste a list of domains or URLs. Get back one row per page with the real Google PageSpeed Insights performance score and Core Web Vitals — Largest Contentful Paint, Cumulative Layout Shift, First Contentful Paint, Total Blocking Time, and Speed Index. Every row is a genuine Lighthouse run on Google's own infrastructure, the same engine behind Chrome DevTools and Search Console's Core Web Vitals report.

Who it's for

  • Outbound and RevOps teams enriching a prospect list with a technical buying signal — a slow site is a lead for a redesign, CRO, or hosting pitch.
  • Agencies and freelance developers triaging which prospects have the worst Core Web Vitals before reaching out.
  • SEO and marketing teams tracking page speed across a set of landing pages or competitor sites over time.
  • AI agents and automations that need one structured performance score per URL, callable over plain HTTP.

Why this one

Most "SEO audit" actors on Apify return a single heavy, nested report per page — every Lighthouse audit, every opportunity, every diagnostic. That's the right shape for auditing one site in depth, and the wrong shape for scoring hundreds of prospects, where you just need the numbers to sort and filter on.

This actor asks a narrower question on purpose: one input page → one flat output row, sized and priced as an enrichment column, not an audit tool.

  • Flat, score-focused columns — no nested audit-by-audit dump to parse.
  • Never charged for a miss. A page PageSpeed Insights can't analyze costs you nothing.
  • Mobile by default. Matches Google's own default strategy for Core Web Vitals, with desktop available per run.
  • Bring your own free API key. The shared unauthenticated quota is confirmed at 0 requests/day; a personal key from Google raises it to 25,000 requests/day at no cost.

What you get

One dataset row per input, with these columns (all included by default; select fewer with the columns input):

ColumnMeaning
performanceScoreLighthouse's overall performance score, 0-100
lcpMsLargest Contentful Paint, in milliseconds
clsScoreCumulative Layout Shift, unitless
fcpMsFirst Contentful Paint, in milliseconds
tbtMsTotal Blocking Time, in milliseconds
speedIndexMsSpeed Index, in milliseconds
strategyWhich device Lighthouse emulated for this row — mobile or desktop
lighthouseVersionThe Lighthouse engine version that produced the run
fetchedAtWhen Google fetched and measured the page

How to use

  1. In the Apify Console. Open the actor page and click Start — the urls field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~site-performance-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"urls":["example.com"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.

Input

{
"urls": [
"example.com"
]
}

One per line: a domain ("example.com") or a full URL ("https://example.com/pricing"). Each one gets a real Google PageSpeed Insights / Lighthouse run. Accepted formats: example.com, https://example.com/pricing.

Two extra run-level settings, next to the main input field: your own optional free API key, and Strategy (mobile, the default, or desktop).

Output

queryfoundstatusperformanceScorelcpMsclsScorefcpMstbtMsspeedIndexMsstrategylighthouseVersionfetchedAtscrapedAt
https://example.comtrueOK10075607560756mobile13.4.12026-08-31T06:01:06.193Z2026-08-31T06:01:11.288Z

A miss comes back as a row with "found": false and is never charged.

Pricing

$4 per 1,000 domains or URLs, plus a $0.00005 start fee. Misses (found:false) are never charged.

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~site-performance-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"urls":["example.com"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~site-performance-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"urls":["example.com"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~site-performance-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"urls":["{{domain or URL}}"]}, mapping the row's domain or URL into the urls array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Site Performance Lookup | Apify" — the agent will find and run this actor.

Tips

  • Add your own free API key. Run input > "Your free Google PageSpeed Insights API key" — get one at Google's PSI v5 get-started page. It's free, takes a minute, and raises your quota to 25,000 requests/day; without one, requests share Google's unauthenticated quota, which is confirmed at 0/day, so every row comes back BLOCKED.
  • Keep concurrency low. Each item is a real Lighthouse run that takes Google's servers 10-30+ seconds — a high maxConcurrency mostly just queues requests against your own rate limit, it doesn't make results arrive faster.
  • Mobile and desktop scores differ a lot. Mobile emulates a mid-tier phone on a throttled connection, so its scores are almost always lower than desktop for the same page — pick the strategy that matches what you're optimizing for (Google's own ranking signals are mobile-first).
  • A rate-limited row still shows up as BLOCKED, never as a silent gap. Check the message column on any found:false row — it tells you whether to add a key, slow down, or that the page itself couldn't be analyzed.

FAQ

What does "not found" (found: false) actually mean? One of three things, distinguished in the status and message columns: the input wasn't a URL/domain (BAD_FORMAT), the request was rate-limited or an API key was rejected (BLOCKED), or PageSpeed Insights ran but couldn't produce a usable score for that page (NOT_FOUND). Misses are never charged.

How fresh is the data? Every row is a live Lighthouse run performed at request time — not a cached or historical score. Scores can vary slightly run to run, the same way Google's own PageSpeed Insights website does.

Do I need an API key? Yes, in practice. Google's shared unauthenticated PageSpeed Insights quota is confirmed at 0 requests/day — every row will come back BLOCKED without a key. Add your own free key in the run input (it's masked once saved) to get 25,000 requests/day at no cost.

Why don't I get every Lighthouse audit, like the SEO/accessibility scores? This actor only requests the performance category, on purpose — it's built as a fast, flat enrichment column for a list of prospects, not a full-site audit tool. If you need the full audit breakdown for one site at a time, Google's own PageSpeed Insights website or a dedicated SEO audit actor is the better fit.

Does mobile vs desktop change the price? No — both are priced the same per item; strategy just changes which Lighthouse run is performed.