Chrome UX Report (CrUX)
A public Google dataset with performance metrics from real Chrome user experiences. The source of field data for PageSpeed Insights and Search Console.
The Chrome UX Report (CrUX) is a public Google dataset containing aggregated user experience data (Core Web Vitals, FCP, TTFB) for millions of sites, collected from real Chrome browser users who have opted into statistics collection. CrUX is used in PageSpeed Insights, Google Search Console, and the CrUX API.
What Is CrUX
CrUX (Chrome UX Report) is an official Google dataset that collects real‑world performance data from web pages based on visits from Chrome browser users who have opted into statistics. Unlike synthetic tests (Lighthouse), CrUX shows how a page performs in the field. The data is anonymised and aggregated over a 28‑day rolling period.
What Metrics Does CrUX Collect
CrUX includes key performance metrics that reflect user experience:
- LCP (Largest Contentful Paint) — render time of the largest content element (good ≤ 2.5 s).
- INP (Interaction to Next Paint) — interaction delay (good ≤ 200 ms). Replaces FID.
- CLS (Cumulative Layout Shift) — layout instability (good ≤ 0.1).
- FCP (First Contentful Paint) — first content paint (good ≤ 1.8 s).
- TTFB (Time to First Byte) — server response time (good ≤ 800 ms).
CrUX presents metrics as a distribution:
- 'good' → percentage of users meeting the threshold
- 'needs improvement'
- 'poor'
Example: LCP: good: 85%, needs: 10%, poor: 5%Where Is CrUX Used
- PageSpeed Insights — the 'Field Data' tab comes from CrUX. If a page is not in the dataset, you will see only lab data.
- Google Search Console → Core Web Vitals report — also uses CrUX data, grouped by URL or page group.
- CrUX API — programmatic access for developers (query metrics for any site with sufficient traffic).
- BigQuery — public CrUX dataset for advanced analysis (requires SQL skills).
Requirements for CrUX Inclusion
For a site or specific page to appear in CrUX reports, several conditions must be met:
- Sufficient Chrome traffic — a minimum number of real visitors (exact threshold unknown, but typically a few hundred unique views over 28 days).
- Public site — not behind login, not localhost, not staging.
- HTTPS — most modern sites use it; without HTTPS, data may not be collected.
- Statistics enabled — users must not block data sending (the default in Chrome is enabled).
CrUX API
The CrUX API allows you to programmatically fetch metrics for any URL or origin. Useful for automated Core Web Vitals monitoring.
// Example CrUX API request (JavaScript)
const response = await fetch('https://chromeuxreport.googleapis.com/v1/records:queryRecord?key=YOUR_API_KEY', {
method: 'POST',
body: JSON.stringify({
origin: 'https://example.com',
formFactors: ['PHONE', 'DESKTOP']
})
});
const data = await response.json();
console.log(data.record.metrics);Common questions
Discuss your project?
Share your goals and website context — I will suggest a practical next step.