QuestionsWeb Performance

Lab vs. field data (Lighthouse vs. RUM)

MeasurementEasyWeb Performance

Lighthouse says your site scores 95, but users complain it's slow. How can both be true?

What it tests

Understanding the lab/field distinction and why a lab score isn't the user's experience.

Approach & answer

Because Lighthouse and real-user monitoring measure fundamentally different things. Lighthouse is LAB data: a single synthetic run on one machine, under a simulated network/CPU throttle, from your location, with a cold cache and no real interactions. It's reproducible and great for debugging and catching regressions in CI — you control every variable — but it's ONE sample of ONE environment. FIELD data (Real User Monitoring, and Google's CrUX dataset) is collected from actual visitors: every device (including cheap phones), every network (including 3G), every geography, every cache state, and real interaction patterns. So a 95 in the lab and unhappy users are perfectly consistent — your lab machine is a fast laptop on fast wifi near the server; your users might be on mid-tier Android over spotty mobile, far from your origin, hitting slow third-party scripts that only fire on real interaction. Key consequences: (1) Core Web Vitals for ranking/assessment use FIELD data at the 75th percentile, not your lab score. (2) Some metrics essentially don't exist in the lab — INP needs real interactions to measure. (3) The right workflow is both: use lab (Lighthouse/DevTools) to find and fix causes reproducibly, and use field (RUM/CrUX) to know what real users actually experience and to prioritize. Trust the field for 'are users happy'; trust the lab for 'what specifically is slow and did my fix work'.

Use this technique when

Reconciling a good Lighthouse score with real complaints; deciding which tool answers which question.

Code

LAB (Lighthouse, DevTools)          FIELD (RUM, CrUX)
--------------------------          -----------------------------
1 synthetic run                     millions of real sessions
your machine + simulated throttle   every device / network / geo
cold cache, no interactions         real caches, real interactions
reproducible -> debug & CI          representative -> "are users happy?"
INP not measurable (no input)       INP measured end-to-end
p ~ single sample                   Core Web Vitals judged at p75

Use BOTH: lab to find & verify fixes, field to measure reality.

References