Chrome UX Report (CrUX)

Google's real-user field-data behind Core Web Vitals — eligible Chrome users, the 28-day p75 window, origin vs URL data, why some pages have no CrUX data, and how to access it.

First published: Jun 26, 2026 · Last updated: Jul 17, 2026 · Advanced
demand #2 in Web Performance Tools#2 in Web Performance#3 in Technical SEO#7 on the site

CrUX (the Chrome User Experience Report) is Google's public dataset of real-world field performance, aggregated from eligible Chrome users — those who meet Google's opt-in, sync, and supported-platform criteria — and it's the official data behind the Core Web Vitals program and what Google actually uses to assess your CWV for Search. It's reported at the 75th percentile over a trailing 28-day aggregation window, at both origin and URL level. It only covers eligible Chrome users on supported platforms (no iOS Chrome, no Edge/Safari/Firefox) — never every Chrome user and never every visitor — and a page needs enough traffic to be included — many low-traffic pages have no CrUX data at all. This is why your local Lighthouse (lab) score can disagree with your real CWV assessment.

TL;DR — CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program. is the official Chrome User Experience Report: real-world field UX data aggregated from eligible Chrome users — those who meet Google’s opt-in, sync, and supported-platform criteria — and the dataset behind the Core Web VitalsWeb Vitals is Google's initiative (launched May 2020) for unified page-experience quality signals. Core Web Vitals — LCP, INP, and CLS — are the subset used in ranking; the rest (TTFB, FCP, TBT, Speed Index) are diagnostic, not ranking factors. program. It’s reported at the 75th percentile over a trailing 28-day aggregation window, at both origin and URL level. Coverage is partial — never every Chrome user and never every visitor, only eligible Chrome users on supported platforms (no Chrome on iOS, no Edge/Safari/Firefox), and a page needs enough samples to be included, so many low-traffic URLs have no CrUX data and tools fall back to origin-level or “no data.” Six surfaces currently expose it: PageSpeed InsightsPageSpeed Insights (PSI) is a free Google tool at pagespeed.web.dev that reports two kinds of data for a URL: real-user field data from the Chrome UX Report and a single Lighthouse lab run with the 0–100 Performance score. Only the field Core Web Vitals are what Google uses for ranking., Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results., the CrUX API (daily), the History API (weekly), BigQuery (monthly), and CrUX Vis — check current docs, since cadence and quotas can change. CrUX is field; LighthouseLighthouse is Google's free, open-source tool that audits a page under simulated lab conditions and scores it 0–100 across Performance, Accessibility, Best Practices, and SEO. It's lab data — useful for debugging, not a ranking signal. is lab — that’s why the two disagree.

CrUX is the field-data layer of Core Web Vitals

Google describes it plainly: “The Chrome User Experience Report … is a dataset that reflects how real-world Chrome users experience popular destinations on the web.” And it’s not a side project — “CrUX is the Google dataset of the Web Vitals program. All user-centric Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. metrics are represented.” The data is “used by Google Search to inform the page experience ranking factor.”

So the mental model is: Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. are the metrics; CrUX is the dataset they live in. When Search assesses your CWV, it reads CrUX. That single fact resolves most of the confusion on this page.

Evidence for this claim CrUX supplies the real-user Core Web Vitals data used by Google Search's Core Web Vitals ranking systems; Lighthouse lab scores are separate diagnostics. Scope: Google Search Core Web Vitals use and Chrome UX Report field data. Confidence: high · Verified: Google Search Central: Core Web Vitals Chrome Developers: CrUX methodology

How CrUX collects data

CrUX is built from real Chrome users — but a specific, eligible subset of them, not every Chrome user and not every visitor to your site. A user’s experiences are only aggregated if they meet all four criteria: “Enable usage statistic reporting. Sync their browser history. Not have a Sync passphrase set. Use a supported platform.”

“Supported platform” is doing a lot of work. Included: desktop Chrome on Windows, macOS, ChromeOS, and Linux, plus Android Chrome (including Custom Tabs and WebAPKs). Excluded: Chrome on iOS, Android WebViews, and “other Chromium browsers.” In practice that means Microsoft Edge, Samsung Internet, Safari, and Firefox are not in CrUX at all — and neither is any iOS browser, because they all run on WebKit.

Evidence for this claim CrUX aggregates field measurements from eligible opted-in Chrome users on supported platforms; it does not represent every browser or page. Scope: Chrome UX Report methodology, eligibility, and platform coverage. Confidence: high · Verified: Chrome Developers: CrUX methodology

This is the blind spot worth internalizing. If you run an e-commerce or media site where most traffic is iPhone/Safari, CrUX may be measuring a minority of your real audience. The data isn’t wrong — it just isn’t everyone.

Why some pages have no CrUX data

CrUX doesn’t cover every page, and this trips up a lot of people. From Google: “Not all origins or pages are represented in the dataset. There are separate eligibility criteria for origins and pages, primarily that they must be publicly discoverable and there must be a large enough number of visitors in order to create a statistically significant dataset.” The exact popularity threshold is deliberately undisclosed — treat any specific visitor number you see quoted as an unofficial estimate, not a documented rule.

Page and origin eligibility are evaluated separately. An origin can have enough eligible traffic to be reported even when many of its individual pages don’t — which is exactly why a domain can show origin-level data while a specific URL on it has none. And a missing result isn’t a score: it just means Google doesn’t have a large-enough eligible sample to report anything for that scope. Missing is not a zero, not a pass, and not a fail.

There are mechanical requirements too: the page has to return 200 (after redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't.) and must not be noindex’d (header or meta tag). And there’s a 20% rule — “origins or pages having more than 20% of their total traffic excluded due to ineligible combinations of dimensions are excluded entirely from the dataset.”

I’ve measured how thin this coverage gets. In my Core Web Vitals data study I combined CrUX with an Ahrefs crawl of 43.66 million pages. Only 5.21 million of them — roughly 11.9% — had at least one Core Web Vitals metric in the January 2022 CrUX dataset. The rest had too little traffic to qualify. That’s the normal state of the web, not an error.

When a specific URL has no data, tools cascade. In PageSpeed InsightsPageSpeed Insights (PSI) is a free Google tool at pagespeed.web.dev that reports two kinds of data for a URL: real-user field data from the Chrome UX Report and a single Lighthouse lab run with the 0–100 Performance score. Only the field Core Web Vitals are what Google uses for ranking.: URL-level CrUX → if insufficient, fall back to origin-level CrUX → if that’s also missing, you get no field dataPerformance metrics captured from real users, not lab tests. and only the LighthouseLighthouse is Google's free, open-source tool that audits a page under simulated lab conditions and scores it 0–100 across Performance, Accessibility, Best Practices, and SEO. It's lab data — useful for debugging, not a ranking signal. lab section remains. Google’s note on why fine-grained lookups fail more often: “The more fine-grained the request is, for example a specific combination of URL and form factor, the fewer user experiences it will include. This may lead to more frequent ‘not foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore.’ errors.”

How CrUX aggregates: 28 days and p75

Two numbers define how CrUX reports everything.

The 28-day rolling window. “The data in the Chrome UX Report is a 28-day rolling average of aggregated metrics.” Every reading you see is a trailing 28-day aggregate. One consequence Google flags: “the collectionPeriod will always show 28-days, even if the data is not for the full 28 days (for example if a page was launched less than 28 days ago).”

The practical upshot — and I’ve made this point for years — is that fixes take a while to show up. CrUX runs about two days behind real time, and every reading is an aggregation over the trailing window, not a live number — so a change doesn’t fully replace the old data until enough new eligible sessions have accumulated and the old ones have aged out. On the order of a month is a reasonable rule of thumb, but it isn’t a fixed countdown: how fast a fix shows up depends on how much eligible traffic the page or origin gets, the metric’s own lifetime, and the collection period reported for that record. As I put it in my CLS guide, “it takes a while to see the impact of changes.” Useful for setting stakeholder expectations: don’t promise day-one movement, and don’t promise an exact date either.

The 75th percentile (p75). CWV are assessed at p75, not the median. Google’s definition: “75% of page loads experienced the given metric at or less than this value.” So to pass, three of four loads need to be at or under the “good” threshold. Important caveat from Google: the percentile values “are synthetically derived, it does not imply that any user actually experienced the value indicated.” p75 of “good” doesn’t mean “75% of users are happy” in any literal sense — it means 75% of page loads came in at or below the threshold, and the top quartile isn’t penalized as long as that holds.

Origin-level vs URL-level

CrUX reports at two granularities, and the difference is one of the most important things for an SEO to understand.

  • Origin-level aggregates “all data present for all pages in that origin … together” — essentially your whole domain averaged.
  • URL-level returns “only data for that specific URL.”

These can diverge sharply. A site can show “Good” origin-level CrUX while a specific high-value landing page is “Poor”, because faster pages elsewhere offset it in the origin average. Since PSI falls back to origin data when a URL doesn’t have enough of its own, you can be looking at your domain average while thinking you’re looking at the page in front of you.

My data study surfaced this gap at scale: in that January 2022 sample, ~33% of websites passed CWV at the origin level, but only ~21.2% of individual pages passed. Domain-level numbers ran higher partly because they fold in repeat/cached visits across the whole site. Treat those specific figures as a dated large-sample snapshot, not a current universal rate — but the underlying lesson still holds: check URL-level data for your key pages whenever it’s available, and don’t assume a passing origin means every page passes.

CrUX also splits by form factorPHONE, TABLET, and DESKTOP — and Google assesses using form-factor-appropriate data, which is why your mobile and desktop numbers differ.

TIP Check the scope label before acting on a Core Web Vitals result

The checker tries URL-level CrUX first, then clearly labels an origin fallback or Lighthouse lab fallback. A poor metric is only interpretable when you retain that scope and source.

Check the current result with my free Page Speed Test & Core Web Vitals Checker Free

  1. Enter the exact page and note the URL/origin and field/lab label before reading the score.
  2. Compare mobile and desktop, then run a fresh lab audit only to diagnose the field failure.
  3. Use Core Web Vitals History & Competitor Comparison when you need weekly history or a side-by-side origin or URL comparison.
The metric can be poor, but the surrounding source and scope label determines whether it describes this URL, the origin, or one lab run.

The Largest Contentful Paint scale marks 5.2 seconds in the poor red range.

Field vs lab: why your Lighthouse score doesn’t match

This is the core tension and worth being precise about. Field data is “determined by monitoring all users who visit a page and measuring … each one of those users’ individual experiences” — that general category is also called RUM (real-user monitoring), and CrUX is one specific, public implementation of it. Lab data (Lighthouse) is “determined by loading a web page in a controlled environment with a predefined set of network and device conditions.”

They differ because field data “includes a wide variety of network and device conditions as well as a myriad of different types of user behavior,” while a lab test “intentionally limits the number of variables” — one device, one network, one location, and typically a cold cache. PageSpeed Insights literally shows both: the CrUX field section up top (what Google rates you on) and the Lighthouse lab section below (a debugging approximation). As the CrUX docs put it: “CrUX is a collection of real-user experiences from the field, while Lighthouse is a controlled test in the lab.”

So when your local Lighthouse run says 95 but Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. says “Needs Improvement,” nothing is broken — you’re comparing a single clean lab load against the messy reality of your actual users.

CrUX isn’t the same thing as your own RUM. A private, first-party RUM tool (instrumented with something like the web-vitals JS library) and CrUX can report different numbers for the same page, because their populations, consent states, sampling, and metric lifetimes aren’t identical. Think of the three options as different jobs:

  • CrUX — the free, public benchmark of eligible Chrome experiences. Use it to see what Google sees, and to check a competitor’s field performance.
  • Private RUM — your own instrumented monitoring. Use it when you need every browser (not just eligible Chrome), per-user or per-segment detail, or real-time alerting that CrUX’s rolling window can’t give you.
  • Synthetic monitoring (Lighthouse, WebPageTestWebPageTest is a free, open-source, lab-based website performance testing tool — created by Patrick Meenan in 2008 and acquired by Catchpoint in 2020 — that runs pages on real browsers from distributed locations and produces deep diagnostics (waterfalls, filmstrips, connection views, Core Web Vitals). It's a diagnostic tool, not a Google ranking input., and similar) — a controlled, repeatable test. Use it for pre-release regression checks and to diagnose why a field metric is bad, not to declare the field metric fixed.

For general field-vs-lab theory beyond CrUX specifically — RUM tooling options, synthetic monitoring setups, and the broader decision framework — see the Field vs. Lab Data deep dive.

What’s in CrUX (and what isn’t)

The three Core Web Vitals are all present — Largest Contentful PaintLargest Contentful Paint — render time of the largest visible image or text block, relative to when the page started loading. ≤2.5 s (at the 75th percentile) is good. (loading), Interaction to Next Paint (responsiveness), and Cumulative Layout Shift (visual stability) — assessed at p75 against these thresholds:

MetricGoodNeeds ImprovementPoor
LCPLargest Contentful Paint — render time of the largest visible image or text block, relative to when the page started loading. ≤2.5 s (at the 75th percentile) is good.≤ 2,500 ms2,501–4,000 ms> 4,000 ms
INPInteraction to Next Paint — the input-to-paint latency at the 75th percentile of a page's interactions. ≤200 ms is good.≤ 200 ms201–500 ms> 500 ms
CLSCumulative Layout Shift — a unitless score for unexpected visual movement, taken from the largest burst (session window) of layout shifts, not the lifetime sum. ≤0.1 is good.≤ 0.10.11–0.25> 0.25

Beyond the three, CrUX also carries supporting metrics like FCPFirst Contentful Paint — the time from when a page starts loading to when any part of its content (text, image, SVG, or non-white canvas) first renders. Good is ≤1.8 s at the 75th percentile. It's a diagnostic metric, not a Core Web Vital. (First Contentful Paint), experimental TTFBTime to First Byte — the time from the start of a request to when the first byte of the response arrives. It's a diagnostic metric (not a Core Web Vital) and a major input to FCP and LCP; ≤0.8 s is good., and RTT (Round Trip Time, which replaced the retired ECT dimension in January 2025), plus LCP image subparts and navigation types.

What CrUX doesn’t have are lab-only diagnostics: Total Blocking Time, Speed Index, and Time to Interactive don’t exist in CrUX — you only get those from Lighthouse. And note the historical shift: INP replaced FID as a Core Web Vital in March 2024, and FID was removed from CrUX in August 2024 (and from BigQuery in September 2024). A lot of older guides still reference FID — they’re out of date.

Six ways to access CrUX

Cadence, quotas, and history depth below are current as of this writing — Google has changed them before (the CrUX Dashboard’s deprecation is a recent example), so treat this as a snapshot and check the linked official docs for the current numbers before you build anything that depends on them.

SurfaceGranularityUpdate cadenceBest for
PageSpeed InsightsURL → origin fallbackDailyQuick per-URL field check
Search Console (CWV report)URL + origin~WeeklySite-wide assessment by status
CrUX APIURL + originDaily (~2-day lag)Programmatic current data
CrUX History APIURL + originWeekly (up to 40 weeks)Trend lines without code/BigQuery
BigQueryOrigin onlyMonthly (2nd Tuesday)At-scale research, back to 2017
CrUX VisURL + originWeeklyVisual trends (replaced the Dashboard)

A few specifics worth knowing:

  • PageSpeed Insights is the fastest per-URL look. Field data on top, lab below; free, no API key.
  • Search Console’s Core Web Vitals reportThe Google Search Console report (under Experience) that shows how your indexed URLs perform on the Core Web Vitals — LCP, INP, and CLS — using real-user field data from CrUX, grouped by device, status, and clusters of similar-performing URLs. groups your indexed URLs by status (Good / Needs Improvement / Poor) with separate Mobile and Desktop views. Because it groups pages by pattern, a “page group” can mix fast and slow URLs — which is why a page can look fine in PSI but be flagged in GSC.
  • The CrUX API (POST …/v1/records:queryRecord) returns the current 28-day window with p75s and histogram bins; query by origin or url (mutually exclusive). It’s free, needs a Google API key, and is “limited to 150 queries per minute per Google Cloud project.”
  • The CrUX History API gives up to 40 weeks of weekly snapshots — trend data without touching BigQuery.
  • BigQuery is the at-scale option (history to 2017, country-level data the APIs don’t expose) but it’s origin-level only — no per-URL data in the standard tables.
  • CrUX Vis (cruxvis.withgoogle.com) is the visual tool. Note: the old CrUX Dashboard in Looker Studio was deprecated in November 2025 — its connector stopped updating. If a guide still points you at the Dashboard, it’s stale; use CrUX Vis instead.

Does CrUX move rankings?

CrUX is the field-data source for the page-experience signal, so yes, it feeds a ranking input — but I’d temper expectations on how much that’s worth. My standing view, from my Core Web Vitals guide: “I don’t expect much, if any, improvement in rankings from improving Core Web Vitals,” and “unless you are extremely slow, I generally won’t prioritize fixing them.” The stronger case for caring about your CrUX numbers is user experience, not a ranking bump. Understand the data; don’t panic about it.

Where this fits

CrUX is the field-data engine under the Core Web Vitals hub. The metrics it reports each have their own deep dives — Largest Contentful Paint, Interaction to Next Paint, and Cumulative Layout Shift — and the two main tools that surface CrUX are PageSpeed Insights (field + lab) and Google Lighthouse (lab only). If you only remember one thing: the field/lab split is why a green lab score and a failing CWV assessment can both be true at once.

Add an expert note

Pin an expert quote

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