The short version
Lab tests and field data answer different questions. In our study of 19 web agencies, lab LCP was up to 16.7x the CrUX LCP (p75) among the seven sites with current field data. Use field data to prioritize observed problems and lab tests to investigate them.
You run a PageSpeed test and get a 34 on mobile. Panic? Not yet. That prominent Performance score comes from a Lighthouse lab test under controlled conditions. Real visits span different devices, networks, and cache states; some are faster than the lab test, and some are slower. We added field data to our benchmark of web development agencies to see how the results compared. The gap surprised us.
Two measurements, two different questions
PageSpeed Insights shows available field data above its lab results, but the prominent Lighthouse score often gets the attention. Lighthouse loads the page in a browser with controlled device and network settings. Those settings make comparisons easier, although results can still vary between runs. Lab tests are useful for tracking down technical problems and checking changes before release.
The Chrome UX Report (CrUX) is Google’s public source of real-user performance data. It represents an eligible subset of Chrome users, not everyone who visits a site. The CrUX API aggregates measurements over 28-day windows and reports distributions and percentiles. For Largest Contentful Paint (LCP), p75 means that 75% of the measured page loads had an LCP at or below that value. It is not a percentage of unique visitors, and it does not mean every load was fast.
What we measured
For the September 10, 2026 benchmark, we measured 19 agencies from the top 10 results for “website laten maken” (having a website built) in Belgium and the Netherlands. We ran three mobile Lighthouse tests per homepage through the PageSpeed Insights API and took the median for each metric. One day later, we retrieved the available CrUX data through PageSpeed Insights. The full method is documented in the benchmark.
One limitation up front: CrUX requires sufficient eligible traffic and public discoverability. Of the 19 agencies, 7 had usable current field observations. The other 12 are absent from the table below. A missing result is not a speed verdict, and the lookup alone does not tell us why it is missing.
Scope matters too. A URL-level CrUX record covers one page; an origin-level record combines measurements across that origin’s pages. The current observations came from PageSpeed Insights’ loadingExperience response, while the separate History API sweep below queried mobile data at the origin level. Homepage lab tests, current records, and origin history are not interchangeable measurements of the ranking URL.
The gap: up to 16.7x between lab and field
The seven sites show large differences between lab LCP and CrUX LCP (p75). The position in parentheses after each name is its organic ranking on the SERP for “website laten maken” (having a website built) in its own country on September 10, 2026: NL #1 means position 1 in Google Netherlands.
| Agency | Lab LCP | CrUX LCP (p75) | Lab/CrUX ratio | PSI field category |
|---|---|---|---|---|
| Conversal (BE #2) | 18.2 s | 1.09 s | 16.7x | Fast |
| Green Bananas (BE #4) | 18.8 s | 1.63 s | 11.5x | Average |
| Yourhosting (NL #1) | 21.4 s | 2.08 s | 10.3x | Average |
| Scrolla (NL #9) | 10.6 s | 1.31 s | 8.1x | Average |
| 2manydots (NL #7) | 14.5 s | 2.19 s | 6.6x | Fast |
| Stuurlui (NL #8) | 3.2 s | 1.21 s | 2.6x | Average |
| KMO Shops (BE #5) | 4.8 s | 2.51 s | 1.9x | Slow |
The median ratio is 8.1x. Conversal’s lab LCP is 18.2 seconds, compared with a CrUX LCP (p75) of 1.09 seconds. Yourhosting, number 1 in the Netherlands, records 21.4 seconds in the lab and 2.08 seconds in the current field data. Those percentiles describe measured page loads, not every visitor’s experience.
The final column preserves the categories returned by PageSpeed Insights’ loadingExperience.overall_category. They are not LCP-only ratings or a Core Web Vitals pass/fail result. A “Fast” or “Average” label there should not be read as a classification of the LCP value next to it.
Why the lab can diverge this much
A lab test cannot reproduce the full range of real visits. Google’s explanation of lab and field differences describes several possible reasons for a gap:
- Cache state and repeat visits: lab tests usually start with an empty cache. Some real visits benefit from cached resources or the back/forward cache, while others do not.
- Devices and networks: Lighthouse uses predefined conditions. Real visits can involve faster or slower devices and connections, as well as different locations and viewport sizes.
- User behavior and timing: scrolling or interacting can affect which element becomes the LCP element. A lab test captures one loading scenario; a CrUX percentile summarizes a distribution over a 28-day window.
These are possible explanations, not causes established for the seven sites. Our measurements do not prove that third-party scripts load serially only in the lab or that they cause no problems for real users.
Yourhosting’s history tells a more nuanced story
Yourhosting is a useful example. It had the lowest lab Performance score in the Dutch benchmark: 28, with a lab LCP of 21.4 seconds. That does not tell us how all its pages performed during real visits. The CrUX History API provides a separate view of mobile page loads across its origin.
Across the 25 weekly collection periods retrieved on September 11, Yourhosting’s CrUX LCP (p75) ranged from 1.78 to 2.89 seconds. Each period aggregates 28 days of page loads, so the windows overlap. Around 74 percent of measured loads had a “good” LCP in the most recent period. That is a much less severe picture than the lab result, but it is not “always fast”: some periods exceeded the 2.5-second good-LCP threshold. LCP alone also cannot establish whether all Core Web Vitals passed or whether page experience affected the ranking.
The separate History API sweep returned records for 12 origins, but only ten contained any numeric LCP values. Kreatix and Inspira had null values throughout their series. That is different from the seven usable current observations: a returned record is not necessarily a usable measurement. Both APIs use 28-day aggregations; history does not lower the eligibility threshold. Earlier eligible periods and differences in URL-versus-origin scope can affect availability. The history records are not part of the seven-site current-data comparison.
What this means for your ranking
A low lab score alone does not establish a ranking problem. Google uses Core Web Vitals as part of its ranking systems, but good scores do not guarantee a top position. Google says it still prioritizes relevant content even when page experience is weaker; good page experience can help when several results offer useful content. That is more cautious than treating speed as a guaranteed tiebreaker.
In our sample of 19 agencies, higher lab scores tended to go with slightly worse rankings (Spearman rank correlation +0.32 between position number and score). CrUX LCP (p75) had a near-zero correlation with position (−0.07), based on only seven current observations, not the 12 origins in the history sweep. These are indicative associations for one query and a data-center SERP snapshot, not evidence of cause. Our follow-up, why slow websites rank high in Google, compares these results with page authority and link data across the 19 agencies.
What we do with it
We will keep running lab tests. They provide a consistent testing method without requiring visitor data, including for the 12 agencies without a current field sample. Adding CrUX data gives readers another perspective, with its own coverage and scope limits. Neither source replaces the other.
For your own site, start with available field data to identify problems, then use lab tests to investigate them and check improvements. If field data is unavailable, lab tests still give you a starting point. The practical steps are in the guide to improving load time.
Do this yourself
You can check your own site with these tools:
- PageSpeed Insights (pagespeed.web.dev) shows available CrUX field data above the lab score and diagnostics. Check the collection dates, device category, and whether the record covers the URL or origin.
- Search Console’s Core Web Vitals report groups similar pages on your site and reports their status based on CrUX field data. Review all the Core Web Vitals, not just LCP.
- Google’s CrUX History API documentation explains how to retrieve historical data for eligible URLs and origins. It returns 25 weekly collection periods by default, as in our Yourhosting analysis, but some periods may have no eligible data.
Use field data to prioritize the problems observed during real visits, and lab tests to investigate them. Keep the scope and limitations of both measurements next to the numbers.

