PageSpeed Insights (PSI)

PageSpeed Insights reports both real-user field data (CrUX) and a Lighthouse lab score. Only the field Core Web Vitals matter for ranking — the 0–100 score doesn't.

First published: Jun 26, 2026 · Last updated: Jul 29, 2026 · Advanced
demand #3 in Web Performance Tools#5 in Web Performance#10 in Technical SEO#15 on the site

PageSpeed Insights (PSI) at pagespeed.web.dev reports two different things for a URL: real-user field data from the Chrome UX Report (which drives the Passed/Failed Core Web Vitals Assessment at p75) and a single Lighthouse lab run (the 0–100 Performance score plus diagnostics). The 0–100 score is lab data and is NOT what Google ranks on — ranking uses the field Core Web Vitals (LCP, INP, CLS). The score also swings run-to-run, so run it a few times. Use field data to know where you stand and lab diagnostics to find what to fix.

TL;DR — PSI (pagespeed.web.dev) reports two independent analyses of one URL: field data from the Chrome UX Report — real users over a rolling 28 days, which drives the Passed/Failed Core Web Vitals Assessment at the 75th percentile — and lab data, a single Lighthouse run giving the 0–100 Performance score plus diagnostics. The 0–100 score is lab data and is not a ranking factor; ranking uses the field Core Web Vitals (LCP/INP/CLS). Field data needs enough CrUX samples (URL-level, falling back to origin-level, else “No data”). The lab score is also variable run-to-run — run it a few times. PSI is the web UI; Lighthouse is the engine; Search Console’s report is yet another CrUX view.

PSI is two tools wearing one coat

The single most important thing to understand about PageSpeed Insights is that it’s not one analysis — it’s two, surfaced in one interface. web.dev puts it cleanly: “PSI is a tool that reports field data from CrUX and lab from Lighthouse for a given page.” Those two halves come from different systems, measure different things, and matter for different reasons. Conflate them and nearly every PSI question becomes confusing; keep them separate and it all clicks.

Evidence for this claim PageSpeed Insights combines CrUX field data with Lighthouse lab diagnostics for a tested public URL. Scope: Current PageSpeed Insights data sources and report structure. Confidence: high · Verified: Google Developers: About PageSpeed Insights
Field dataLab data
SourceChrome UX Report (real Chrome users)Lighthouse (one simulated run)
ShowsCore Web Vitals Assessment + p75 values0–100 Performance score + diagnostics
Device / networkReal user devices and connectionsEmulated mid-tier mobile or desktop, throttled
WindowRolling 28 daysA single point-in-time snapshot
UpdatesDailyEvery run
Ranking impactYes — Google’s page-experience ranking systems use CrUX field dataNo — not documented as a ranking signal
Evidence for this claim Google's Core Web Vitals ranking systems use real-user Core Web Vitals; a Lighthouse 0–100 lab score is diagnostic rather than a ranking signal. Scope: Google Search use of Core Web Vitals and PageSpeed Insights' separation of field and lab data. Confidence: high · Verified: Google Search Central: Core Web Vitals Google Developers: About PageSpeed Insights

Field data: what real users experienced

The top section — “Discover what your real users are experiencing” — is powered by the Chrome UX Report (CrUX). web.dev describes the CrUX API as giving “low-latency access to aggregated real-user experience data at page and origin granularity” as a “28-day rolling average.” PSI updates daily; the BigQuery CrUX dataset releases monthly.

A few mechanics that matter:

  • The Core Web Vitals Assessment is Passed/Failed at p75. Per Chrome’s docs, “to pass, the percentile must be categorized as ‘good’ in all three Core Web Vitals. Otherwise, the assessment appears as ‘failed’.” The three are Largest Contentful Paint (good < 2.5s), Interaction to Next Paint (good < 200ms), and Cumulative Layout Shift (good < 0.1). PSI also shows FCP and TTFB as “Other metrics” — informative, but not part of the verdict.
  • There’s one documented exception, and it’s INP-only. If a page doesn’t have enough CrUX samples to report INP specifically, PSI’s current guide says it can still assess Pass/Fail from good LCP and CLS p75 values alone. There’s no equivalent exception for LCP or CLS — if either of those is the one missing enough data, don’t read that as a pass; insufficient data isn’t a documented free pass on any metric except INP.
  • p75 means the 75th percentile. The value shown is the experience 75% of page views were faster than. web.dev chose the 75th percentile so the number is “resistant to outliers” — a stricter target than a median.
  • INP replaced FID in March 2024. If you’re looking at old screenshots or old guides (including my own older Ahrefs writing on PageSpeed Insights and Core Web Vitals), they may still show FID; the assessment now uses INP.
  • URL → origin → “No data” fallback. If there isn’t enough CrUX data for the specific URL, PSI falls back to origin-level data (aggregated across the whole site). If there’s no CrUX data at all, you’ll see “No data,” but Lighthouse still runs. As web.dev notes, “CrUX data is only available when sites meet certain eligibility criteria” and “PSI is only available for public URLs.” Low-traffic pages and brand-new pages frequently have no URL-level field data.

Read the scope label before writing the finding. URL-level CrUX describes the eligible field sample attributed to that URL. Origin-level fallback is a useful site-wide signal, but it cannot diagnose the tested page on its own. “No data” means the field sample is unavailable or insufficient—not that the page passed, failed, or received no traffic. The Lighthouse result below can still diagnose that controlled lab run, but it does not fill the missing field-data gap.

Evidence for this claim PageSpeed Insights combines CrUX field data with Lighthouse lab diagnostics for a tested public URL. Scope: Current PageSpeed Insights data sources and report structure. Confidence: high · Verified: Google Developers: About PageSpeed Insights

Lab data: the 0–100 Lighthouse score

The lower section is a single Lighthouse run on a simulated device and network, producing the Performance score and a list of opportunities and diagnostics. Google’s banding: “A score of 90 or above is considered good. 50 to 89 is a score that needs improvement, and below 50 is considered poor.”

What to know about the lab run:

  • It’s simulated, and the mobile run is deliberately slow. Mobile emulates a mid-tier phone on a throttled connection; desktop uses a faster emulated profile. That’s why your mobile score is almost always lower than desktop — and why real-user field data often looks better than the lab diagnostics suggest.
  • The score is variable. Each run is a fresh, server-side Lighthouse audit — the page, Google’s datacenter, network conditions, and even the Chrome/Lighthouse version can all move the number between runs. I recommend running it a few times (3–5) and looking at the range rather than treating any single run as gospel. A few points of swing is noise.
  • If you’re comparing runs, save more than the score. The API response carries a timestamp, the requested and final URL, form factor, the emulated environment, the Lighthouse version, and any warnings — keep those alongside each score. Two “72”s aren’t comparable if one ran on a different Lighthouse version or hit a redirect the other didn’t. Don’t average unlabeled scores; label them or don’t compare them.
  • Lighthouse versions move independently of the PSI API. PSI stayed on API v5, but the Lighthouse engine underneath it keeps shipping new releases (the most recent noted in Google’s release notes as of this review is Lighthouse 13.0, dated 2025-10-20) — audit fields, weights, and bands can shift with the engine version even though the API contract doesn’t change.
  • “Estimated savings” are not additive. The seconds shown next to each diagnostic assume that fix is made in isolation. Issues interact; real-world gains are almost always less than the sum of the individual estimates. Treat them as directional, not as a budget you can total up.
  • The metric weights change with Lighthouse versions. The Performance score is a weighted blend of lab metrics (load-time metrics, Total Blocking Time, and CLS carry the most weight), but the exact weights shift between Lighthouse releases — check the current scoring calculator rather than trusting a fixed split.

The myth that causes the most damage: “the score is a ranking factor”

It isn’t. The 0–100 Performance score is a Lighthouse lab number, and I haven’t found any current official Google Search source that documents that score itself as a ranking input or ties a score change to a ranking change. Google’s page experience documentation instead points to field Core Web Vitals — CrUX-based real-user data, the same type of data PSI’s field section shows at p75. (One caveat worth being precise about: PSI’s public field display is a reporting surface with its own eligibility and fallback rules; Google hasn’t published the exact internal pipeline that feeds ranking, so treat “field data” as the same kind of signal rather than assuming byte-for-byte identity with what PSI shows you.) A page can sit at 72 in the lab and still pass the Core Web Vitals Assessment because its real-user data is good — different numbers from different systems. The corollary myth — “a good lab score equals a good real-user experience” — fails for the same reason: lab conditions aren’t your visitors’ conditions. When field and lab diverge, field data is the more relevant one for SEO.

Evidence for this claim Google's Core Web Vitals ranking systems use real-user Core Web Vitals; a Lighthouse 0–100 lab score is diagnostic rather than a ranking signal. Scope: Google Search use of Core Web Vitals and PageSpeed Insights' separation of field and lab data. Confidence: high · Verified: Google Search Central: Core Web Vitals Google Developers: About PageSpeed Insights

And even the field Core Web Vitals are a fairly small ranking input. Google’s own people have downplayed them — Gary Illyes has called page experience closer to a tiebreaker than a major signal. My honest position hasn’t changed: I don’t think Core Web Vitals have much impact on SEO, and unless a site is extremely slow, I generally won’t prioritize fixing them over content and links. Fix them for users and for the genuinely-slow case — not out of panic over a red number.

How to actually read a PSI report

  1. Read the field data first. Did it Pass or Fail the Core Web Vitals Assessment? That’s the SEO-relevant verdict. If it says “No data,” there isn’t enough CrUX traffic yet — you’re working from lab data alone.
  2. Check mobile and desktop separately. Mobile is the default and usually the weaker one; it’s also what mostly matters, since Google indexes mobile-first.
  3. Then use the lab diagnostics to find the cause. Lab data is your fast feedback loop for finding and fixing the root issue — render-blocking resources, oversized images, layout shift sources, long tasks.
  4. Fix, then wait. Field data is a rolling 28-day window, so a fix you ship today can take up to 28 days to fully show up in the Core Web Vitals Assessment. Use lab data to confirm the fix immediately; use field data to confirm it actually moved real users.
  5. Benchmark competitors. Because PSI works on any public URL, you can run a competitor’s pages and compare their field Core Web Vitals to yours — a use case most guides never mention.

PSI vs. the tools it gets confused with

  • PSI vs. Lighthouse. Lighthouse is the engine; PSI is a web UI that runs Lighthouse and layers CrUX field data on top. Run Lighthouse yourself (in Chrome DevTools or the CLI) and you get the lab audit but on your machine and network, with no field data.
  • PSI vs. Search Console’s Core Web Vitals report. Both are CrUX-based, so both reflect real users. The difference: Search Console groups similar URLs together and reports at scale across your whole property, while PSI is per-URL (or origin-level fallback). If GSC and PSI seem to disagree, it’s usually the grouping.
  • PSI vs. Chrome DevTools / WebPageTest / DebugBear / Ahrefs Site Audit. These give more configuration (custom devices, locations, throttling) and, in some cases, real-user monitoring. PSI’s strength is being free, zero-setup, and tied to Google’s own CrUX dataset.

The PSI API (for bulk testing)

You don’t have to use the web UI one URL at a time. The PageSpeed Insights API (base https://www.googleapis.com/pagespeedonline/v5) returns the same data programmatically. Key parameters: url (required), strategy (mobile or desktop), and category (performance, accessibility, best-practices, seo). The response splits the same way the UI does: loadingExperience (URL-level field data), originLoadingExperience (origin-level field data), and lighthouseResult (the lab audit). That’s how you’d test a batch of URLs on a schedule rather than clicking through them by hand.

Don’t build durable field-data automation on this API. Google’s own API documentation now opens with a notice that it plans to discontinue including CrUX real-world data in the PSI API, and points automators at the dedicated CrUX API or CrUX History API instead. Keep using the PSI API for the Lighthouse lab audit — that part isn’t affected — but if you’re scheduling bulk field-data pulls, build against a CrUX-specific API, not loadingExperience/originLoadingExperience in the PSI response.

Where this sits in web performance

PSI is a measurement tool, not the destination. The metrics it surfaces — Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift — are the Core Web Vitals, and the hub for those (thresholds, what each one means, and how to improve them) is the place to go next. Lighthouse is the lab engine PSI runs on; CrUX (the Chrome UX Report) is the field-data source feeding the top of every PSI report. Understand those three and PSI stops being a mystery box.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin an expert quote first.