Your Lighthouse Score Is Only Half the Story
Source: Dev.to
A Lighthouse score of 95 feels great… until you check what your actual users experience
40 % of them are getting a Poor LCP.
Why?
Lighthouse runs in a controlled environment: fixed CPU, fixed network, no extensions, cold cache.
Your real users are on old Android phones, congested Wi‑Fi, with dozens of Chrome extensions installed. The test and reality can be very different.
We just shipped Field Data in Ahoj Metrics to close that gap. You can now look up real Chrome user‑experience data for any domain or URL, right alongside your Lighthouse audits.
What Is Field Data?
The data comes from Google’s Chrome User Experience Report (CrUX) – an aggregated, anonymised dataset of real performance timings collected from Chrome users who have opted‑in to sharing usage statistics.
When someone visits your site in Chrome, their browser quietly measures:
- How long things take to load
- How quickly the page responds to clicks
- How much the layout shifts around
Google aggregates this data across all opted‑in Chrome users and makes it available through the CrUX API.
A few important details about how CrUX works
| Detail | Explanation |
|---|---|
| 28‑day rolling window | The data represents the last 28 days of real user visits. No single bad day can spike the numbers, and no single good day can hide persistent problems. |
| 75th percentile (p75) | The reported value isn’t the average. It’s the experience of someone at the 75th percentile – 75 % of visitors had a better experience, 25 % had a worse one. Google wants you to optimise for the tail, not the middle. |
| Good / Needs Improvement / Poor distribution | Every page load is classified against Google’s thresholds. You can see what percentage of your users fall into each bucket (e.g., 80 % Good, 12 % Needs Improvement, 8 % Poor for LCP). This distribution tells you more than any single number. |
Lab Data vs. Field Data
Both are useful, but neither is complete on its own.
Lab data (Lighthouse)
- Runs in a controlled environment – same CPU, same network throttling, same browser config every time.
- Reproducible – great for finding issues, comparing before/after a deployment, and running automated tests in CI/CD.
- Synthetic – it doesn’t represent any real user.
Field data (CrUX)
- Measures what actual visitors experience – real devices, real networks, real browser configurations.
- Messy and variable, but it’s the truth.
- Used by Google for Core Web Vitals in Search ranking.
Why the numbers can disagree
- Lighthouse 68 → CrUX 85 % Good LCP – Most users are on fast connections with warm caches, so real experience is better than the lab predicts.
- Lighthouse 92 → CrUX 55 % Good LCP – Your audience skews toward mobile users in slower regions; the lab test doesn’t capture that.
Neither number is “right.” Lab data tells you what’s wrong. Field data tells you the impact. Use both to decide where to spend optimisation time.
The Five Metrics
Field Data in Ahoj Metrics shows five metrics:
| Metric | What it measures | “Good” threshold |
|---|---|---|
| LCP (Largest Contentful Paint) | How quickly the main content loads (hero image, large heading, video thumbnail) |
Note: The original content ends here; the “Good” threshold column was incomplete in the source.
Ahoj Metrics is a performance monitoring tool that runs Lighthouse audits from 18 global regions and now shows real Chrome user‑experience data via CrUX. Built with Rails 8, Solid Queue, and Fly.io.