Page Speed Test & Core Web Vitals Checker

Free, no signup. Core Web Vitals reports are usually a wall of numbers before they tell you anything useful. This leads with one sentence: whether the page passes, and the single thing to fix first — real Chrome user data when it exists, a Lighthouse lab audit when it doesn't.

field data first (CrUX) · lab fallback (Lighthouse) · mobile + desktop

Checks run from our server; we fetch the URL you enter and don't keep the results. Anonymous aggregate stats count a domain once via a rotating hash for research posts; URLs are never stored. Anonymous run-level outcome counters may be used for aggregate research; URLs, domains, IPs, and identifiers are never included, and no statistic is released below 100 runs.

Feedback
Report a bug

Found something broken in Cwv Checker? Let us know what happened — this goes straight to a private triage queue, not a public list.

What will be sent
 No tool inputs, uploads, pasted source, complete results, query parameters, or URL fragments are attached automatically. You can edit or remove the selected passage above. Browser and anti-abuse metadata is processed for spam prevention. 

Sample report

Say you check a product page:

https://example.com/product/blue-widget

…and Chrome has field data showing a slow mobile load. The tool returns:

Illustrative example — real results need a live CrUX/PageSpeed Insights lookup this static page can't make; the good/needs-improvement/poor bands shown match this tool's actual LCP/INP/CLS thresholds (2.5s/4s, 200ms/500ms, 0.1/0.25)

Not passing

This page does not pass Core Web Vitals because of LCP (loading) on mobile.

https://example.com/product/blue-widget

Mobile — what Google ranks on field · this URL
LCP 4.3 s
INP 158 ms
CLS 0.06
Desktop field · this URL
LCP 1.9 s
INP 120 ms
CLS 0.03

What to fix, in order

  1. Optimize the largest imageLCP

    Your largest element is likely an unoptimized image. Serve it in a modern format (AVIF/WebP), size it to the space it actually fills, and add fetchpriority="high" so the browser loads it first.

  2. Speed up server response (TTFB)LCP

    Your server is slow to send the first byte, which caps how fast LCP can ever be. Add full-page or edge caching, and check for slow database queries or origin round-trips.

  • Desktop passes on all three metrics, but mobile LCP sits at 4.3 s — past the 4 s "poor" line — so the page does not pass overall. See what the color bands mean ↓.
  • Google evaluates page experience on mobile, so the verdict names the mobile LCP result specifically as the one thing to fix first, even though desktop is clean.
  • The fix list is ordered, not just listed — image optimization and server response time both move LCP, so both appear ahead of any INP/CLS advice, which this page doesn't need here.
  • Confirm the fix actually landed on mobile specifically with the Mobile-Friendly Tester.

How to use it

  1. Paste a full page URL into the Single URL box (the scheme helps — https://example.com/page).
  2. Press Check vitals. The tool pulls field data for that exact URL first; if Chrome has none, it falls back to whole-site (origin) field data, then to a simulated Lighthouse lab audit — each card is labelled with the source it used.
  3. Read the verdict banner first: one sentence naming whether the page passes and, if not, the single worst metric holding it back.
  4. Scan the mobile and desktop cards side by side, then work down the numbered What to fix, in order list.
  5. Need diagnostics on a page that already has field data? Click Run a fresh lab audit instead for Lighthouse-driven fix detail. To compare several sites at once, switch to Bulk domains (up to 5) for an origin scorecard with CSV export.

Field data is Google's Chrome UX Report — the same 28-day real-user dataset Search uses for the page-experience signal; it updates daily, so repeat checks within 24 hours are served from cache. Lab numbers come from Lighthouse with simulated throttling: expect them to differ from field data and to vary between runs. Lab audits can't measure INP (it needs real users).

This checker reads Google's real-user 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. for a page and gives you a one-sentence verdict plus a prioritized fix list. For whole-site field-data trends over time, use the Core Web Vitals History & Competitor Comparison; to see what a bot renders versus what a user sees, use the Render Gap Checker.

What the results mean

The verdict badge summarises the whole page in one word:

  • Passes (green) — every Core Web Vital is "good" on every device that had data.
  • Not passing (red) — at least one Core Web Vital is "needs improvement" or "poor". The headline names the single worst-performing metric, on the worst device.
  • Partial data (amber) — the metrics that had data all passed, but at least one Core Web Vital was missing, so the pass can't be certified outright.
  • No field data (amber) — Chrome has no field measurements for this page or origin, so only simulated lab numbers are shown.

Each metric value is colour-coded against the official thresholds:

Core Web Vitals thresholds at the 75th percentile
RatingLCPINPCLS
Good ≤ 2.5 s≤ 200 ms≤ 0.1
Needs improvement 2.5–4.0 s200–500 ms0.1–0.25
Poor > 4.0 s> 500 ms> 0.25

Source: Google Web Vitals · Updated: 2026-07-12

  • Good (green) — LCP ≤ 2.5 s, INP ≤ 200 ms, CLS ≤ 0.1.
  • Needs improvement (amber) — between the good and poor lines.
  • Poor (red) — LCP > 4 s, INP > 500 ms, CLS > 0.25.
  • No data (grey) — no sample for that metric (INP from a lab audit reads "no lab INP").

For metric-specific causes and fixes, read the guides to Largest Contentful Paint, Interaction to Next Paint, and Cumulative Layout Shift.

The source tag on each card is deliberately loud, because mistaking lab numbers for real-user data is the most common CWV error:

  • field · this URL — real-user data for the exact page (best case).
  • field · whole site — origin-level real-user data, used when the specific URL has no sample.
  • lab · simulated — a Lighthouse audit with simulated throttling; numbers vary between runs and can't certify a pass.

How it works

Enter a URL and the tool calls a small server endpoint that queries the Chrome UX Report for both mobile and desktop. CrUX is Google's 28-day rolling dataset of real Chrome users — the same field data behind the page-experience signal. If the specific URL has no sample, the endpoint retries at origin level; if that is also empty, it runs a Lighthouse lab audit for at least some diagnostics.

The pass verdict logic, thresholds, and fix ranking live in shared, testable code. Ratings use the exact official cut-offs; the verdict picks the binding constraint by scoring how far each underperforming metric sits past its "good" line and breaking ties toward mobile. The fix engine cross-references the worst-performing metric with the Lighthouse audits that actually fired on the page (render-blocking resources, slow server response, unoptimized images, heavy third-party JS, layout-shift elements, and more) so the advice is specific — with a per-metric fallback so every underperforming metric always gets at least one concrete next step.

Features

  • Verdict-first: one plain-English sentence naming the single worst-performing metric on the worst device, instead of a wall of numbers.
  • Real-user field data first (CrUX), with automatic fallback to origin field data, then to a simulated Lighthouse lab audit — each source clearly labelled per card.
  • Mobile and desktop shown side by side, with mobile flagged as the device Google ranks on.
  • Prioritized, diagnostic fix list built from the Lighthouse audits that actually fired, not generic tips.
  • Optional fresh lab audit on pages that already have field data, for extra diagnostics.
  • Bulk mode: an origin scorecard for up to 5 domains (mobile field data) with CSV export.
  • Nothing you check is stored; repeat checks within 24 hours are served from cache.

Limitations

Field data needs traffic: low-traffic or brand-new pages get no CrUX sample, so you'll see origin data or lab numbers instead. Lab audits use simulated throttling — they vary between runs and can't measure INP, which requires real user interactions, so a lab-only result never certifies a pass. Field data lags reality by up to 28 days, so a fix you shipped yesterday won't show until the rolling window catches up. The tool reports and prioritizes problems; it does not change your site, and the fixes are starting points, not a guarantee of a passing score.

Frequently asked questions

What are the Core Web Vitals thresholds?

A page passes when its 75th-percentile score is "good" for all three metrics: Largest Contentful Paint (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.) at 2.5 seconds or faster, Interaction to Next Paint (INPInteraction to Next Paint — the input-to-paint latency at the 75th percentile of a page's interactions. ≤200 ms is good.) at 200 milliseconds or faster, and Cumulative Layout Shift (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.) at 0.1 or lower. LCP over 4 seconds, INP over 500 milliseconds, or CLS over 0.25 is "poor"; anything between the two thresholds is "needs improvement". The tool uses these exact official cut-offs.

Why do my Core Web Vitals scores differ from PageSpeed Insights?

They should match when both are reading the same source. This tool shows Chrome UX Report (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.) field data first — the same real-user dataset Search uses — and only falls back to a 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 audit when a page has no field data. Lab numbers use simulated throttling and vary between runs, so a lab score will not line up with a field score. If your PageSpeed number is a lab score and ours is field data, or vice versa, that is the difference.

Why does the checker say "no field data" for my URL?

CrUX only reports a URL once it has enough Chrome traffic to form a statistically stable sample over the trailing 28 days. Low-traffic or brand-new pages never cross that bar. When that happens the tool falls back to origin-level field data (the whole site) or a simulated Lighthouse lab audit, and it labels which source each card is using so you never mistake lab numbers for real-user data.

Can this tool measure INP?

It can report INP from field data, because INP is measured from real user interactions. It cannot produce an INP number from a lab audit — Lighthouse has no real users to interact with the page, so a lab-only result shows "no lab INP" for that metric. If you need an INP figure and the page has no field data, you need real traffic (or the Chrome DevTools INP tooling on your own interactions).

Which device does Google use for ranking — mobile or desktop?

Google evaluates the page-experience signal on mobile, so the tool marks the mobile card "what Google ranks on" and, when a page does not pass on both devices, names the mobile metric as the binding constraint. Desktop scores are shown for context but do not decide the mobile ranking assessment.

Next stepCore Web Vitals History & Competitor Comparison — look up the exact spec and expected values.

Feature requests for Cwv Checker

Upvote what you want most. New ideas can be submitted from the floating Feedback menu; requests appear here once approved, and the most-wanted rise to the top.

Loading…

➕ Request a feature

New requests are reviewed before they appear here.