/ โ† Core Web Vitals Fixes / CrUX vs Lab Mismatch
In this guide
  1. Two kinds of data, measuring different things
  2. Are you even looking at the same page?
  3. The 28-day window and update timing
  4. Why lab results look better than the field
  5. Why the field can look better than the lab
  6. Getting faster, more detailed field data
  7. The fix, step by step
  8. When there is no field data at all
  9. Questions and answers

Two kinds of data, measuring different things

Field data (CrUX)Lab data (Lighthouse)
Who is measuredReal Chrome users who have opted in to sharing usage statisticsOne simulated visit from a Google or local test machine
DevicesWhatever phones and computers your visitors ownA simulated mid-range phone, or a desktop profile
Time spanRolling 28 daysA single moment
Figure reported75th percentile of all visitsThe result of that one run
CacheMix of first and repeat visitsEmpty cache every time
What happens after loadScrolling, clicking, typing for the whole visitNothing; the test stops once the page settles
INPMeasuredNot measurable; TBT used as a stand-in
Used for Google's assessmentYesNo

The Chrome UX Report only includes data from Chrome on desktop and Android. It does not include Safari, Firefox, or Chrome on iPhone and iPad, which uses Apple's browser engine. If a large share of your visitors use iPhones, CrUX describes only part of your audience, and your own analytics may show a different device mix from the one CrUX is summarising.

The Core Web Vitals checker shows both kinds of data side by side for the same URL, which is the starting point for working out where the gap comes from.

๐Ÿ’ก A useful rule: field data answers "do we have a problem, and how big?"; lab data answers "what is causing it?". Arguments between the two usually end when each is used only for its own question.

Are you even looking at the same page?

Before blaming devices or networks, check what each report is actually describing. This catches more mismatches than any other check.

The 28-day window and update timing

Field data is a rolling 28-day summary. If you shipped a fix a week ago, around three quarters of the visits in the current figure happened before the fix. The number moves gradually as old visits drop out, and a big improvement can take around four weeks to show fully.

The same lag works in the other direction. A regression released today will not show as a fail in the field for days, while a lab test shows it at once. That is the main argument for combining both: the lab for instant feedback on every release, the field for the verdict.

โš ๏ธ Do not undo a fix because field data has not moved after a few days. Check a lab test and, ideally, your own real-user monitoring from after the release date before deciding the change did not work.

Why lab results look better than the field

Why the field can look better than the lab

The reverse happens too, and it is not a reason for concern on its own:

If the field passes comfortably and the lab fails, real visitors are having a good experience. Use the lab diagnostics to catch risks before they reach the field, but do not treat a lab fail as an emergency.

Getting faster, more detailed field data

CrUX tells you the result but not the cause, and not quickly. Your own real-user monitoring fills both gaps. Google's open-source web-vitals library measures the Core Web Vitals in each visitor's browser the same way Chrome does, and its attribution build explains what caused each result.

import { onLCP, onINP, onCLS } from 'web-vitals/attribution';

function send(metric) {
  const body = JSON.stringify({
    name: metric.name,
    value: Math.round(metric.name === 'CLS' ? metric.value * 1000 : metric.value),
    rating: metric.rating,
    page: location.pathname,
    navigationType: metric.navigationType,
    detail: metric.attribution
  });
  navigator.sendBeacon('/rum', body);
}

onLCP(send);
onINP(send);
onCLS(send);

Send the results to your own endpoint or into your analytics tool as events. Then report the 75th percentile by page template, device type and navigationType, which tells you whether a visit was a normal load, a reload, a back/forward restore or a prerender. Within a few days of a release you will know whether the fix is working, and the attribution tells you which element, script or interaction is responsible when it is not.

๐Ÿ’ก Your monitoring will include Safari and Firefox visitors where those browsers support the metric, so its totals will not match CrUX exactly. That is expected; compare trends and use CrUX for the official figure.

If you collect this data with an analytics tool that sets cookies, handle consent in the same way as the rest of your analytics. This is not legal advice.

The fix, step by step

Step 1

Check you are comparing like with like

Open the Core Web Vitals checker or PageSpeed Insights and confirm whether the field figure is for this exact URL or the whole origin, and whether you are looking at mobile or desktop. In Search Console, open the failing group and note the example URLs. Make sure the lab test used the same address, protocol and www setting, and compare only the same metric on the same device type before drawing any conclusion.

Step 2

Account for the 28-day window

Write down the date of every performance change released in the last month. If a fix went live less than four weeks ago, much of the field figure still reflects the old page. Use the CrUX History API view, or the trend in the checker, to see whether the line has started to turn after the release date rather than judging the single current number, and give recent fixes time before changing course.

Step 3

Test the way real visitors arrive

Look at your analytics for the most common landing URLs, including query strings from adverts and emails, and test those exact addresses. Check for redirects on the way in and whether a URL with utm_source or gclid gets a cache miss from your CDN or page cache. If it does, configure the cache to ignore marketing parameters so every visitor gets the cached page.

Step 4

Reproduce real devices and journeys in the lab

Rerun lab tests with heavier CPU throttling to imitate slower phones, with a cold cache, and with the cookie banner showing. Use the DevTools Performance panel to record a real journey rather than just a load: accept the banner, scroll the page, open the menu and use a filter or form. Watch for layout shifts and long interactions after load that the default lab test would never reach.

Step 5

Add your own real-user monitoring

Install the web-vitals library with its attribution build and send LCP, INP and CLS, with the page path, device type, navigation type and attribution details, to your analytics or a simple collection endpoint. Report the 75th percentile per template. Within a few days you will see which pages, devices and elements are behind the field figure, instead of waiting a month for CrUX to change.

Step 6

Fix from the field data and track it weekly

Pick the template and metric that fail most often in your real-user data and use the lab tools only to find the cause behind it. After each release, check your own monitoring within days and the CrUX weekly trend over the following month, then start validation in Search Console. Keep a dated log of changes so any later movement in the field figure can be traced to a release.

When there is no field data at all

PageSpeed Insights sometimes shows no field data for a URL, or even for the whole origin, and Search Console may say there is not enough data. CrUX only publishes figures for pages and origins with enough eligible visits, and it only includes pages that are publicly available. A new site, a low-traffic page or a page behind a login will often have none.

This is not a penalty and not a failure. Without field data, Google has no Core Web Vitals figure to use for that page. In that situation:

For the metrics themselves, see the LCP guide, the INP guide and the guide to mobile-only failures, which covers the most common reason field results trail behind lab ones.

Questions and answers

1. Why does PageSpeed Insights say my page passes in the lab but fails Core Web Vitals?

The top section of PageSpeed Insights shows field data from real Chrome users over the last 28 days, and that is the Core Web Vitals assessment. The lower section is a single Lighthouse lab run on a simulated phone. Real visitors may have slower devices, arrive through redirects, see a cookie banner, interact with the page and scroll it, none of which the lab run covers. Trust the field section for the verdict and use the lab section to look for causes.

2. How long does it take for field data to update after a fix?

The Chrome UX Report is a rolling 28-day window, refreshed daily in PageSpeed Insights and the CrUX API. After a fix, the figure improves gradually as older visits drop out, and it can take around four weeks to reflect the change fully. Search Console can lag a few more days, and its validation process monitors the issue over 28 days. Your own real-user monitoring, for example with the web-vitals library, shows the effect within days.

3. Why is Search Console showing different results from PageSpeed Insights?

Both use Chrome UX Report data, but they present it differently. PageSpeed Insights shows the exact URL if it has enough traffic, or the whole origin if not. Search Console groups similar URLs together and gives the group one status, and its report can be a few days behind. So a single page may look fine in PageSpeed Insights while its group fails in Search Console because other pages built on the same template are slow.

4. Does CrUX include iPhone users?

No. The Chrome UX Report collects data from Chrome on desktop and Android. Chrome on iPhone and iPad uses Apple's browser engine and is not included, and neither are Safari and Firefox. If many of your visitors use iPhones, CrUX reflects only part of your audience. That is still the data Google uses for its assessment, but your own real-user monitoring can include other browsers where they support the metrics, giving you a fuller picture of how all visitors fare.

5. Why is my field data better than my Lighthouse result?

Real visits include returning visitors with files already cached, pages restored instantly from the back and forward cache, prerendered pages, and people on fast devices and connections. Lighthouse always tests a first visit with an empty cache on a deliberately modest simulated phone. If the field data passes, real visitors are having a good experience. Keep using the lab diagnostics to catch risks, but a lab fail with a field pass is not an emergency.

6. Why does my page have no field data?

The Chrome UX Report only publishes figures for pages and origins that have enough eligible visits from Chrome users who share usage statistics, and only for publicly available pages. New sites, low-traffic pages and pages behind a login often have none. It is not a penalty. Check whether origin-level data exists, use lab tests to catch problems, and consider adding your own real-user monitoring if you want to see how actual visitors experience the page.

7. Should I trust my own real-user monitoring or CrUX?

Use both for different jobs. CrUX is the official data behind Google's Core Web Vitals assessment and Search Console, so it is the number to report and aim at. Your own monitoring is faster, covers more browsers, and with the attribution build tells you what caused each slow result. The totals will not match exactly because the audiences differ. Watch whether the two move in the same direction after a release rather than expecting identical numbers.

Compare your field and lab data

The Core Web Vitals checker pulls real-user field data from the Chrome UX Report and runs a Lighthouse lab test on the same URL, showing both side by side so you can see where they disagree.

Open Core Web Vitals Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Core Web Vitals Fixes  ·  Mobile-Only Core Web Vitals Failures  ·  Poor Interaction to Next Paint  ·  Core Web Vitals Guide  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.