Why your score is different on every run
Lighthouse is a single simulated run, not an average. What the variance means, how big a swing is real, and how to measure so the number can be trusted.
The short version
Lighthouse is a single simulated page load, not an average. One run, on one machine, at one moment, with the network and CPU artificially throttled to a mid-range phone profile. Run it again and you get a second sample from the same distribution — and samples differ. The score was never a constant; treating it like one is what makes it feel like it’s lying.
Where the variance comes from
- CPU contention. The machine running the test is doing other things — especially your own laptop with thirty tabs. Lighthouse throttles relative CPU speed, so a busy host machine changes the result. Datacenter runs (like this tool’s, via PageSpeed Insights) are calmer but not perfectly so.
- Simulated networking. Throttling models a 4G connection mathematically. Real request timing still varies — DNS answers faster or slower, a TLS handshake lands differently — and the model amplifies some of those differences.
- Your page genuinely differs per load. A/B tests serve different variants. Ad slots auction different creatives with different weights. Personalisation, cookie banners on first view, a carousel starting on a different slide — the runs differ because the page differs.
- Cold versus warm caches. A CDN edge that just evicted your page, a server-side cache that expired, a database that had to warm up: the first request after quiet hours is honestly slower than the tenth.
How much swing is real
A useful rule: a 5-point swing is noise; a 25-point swing is a finding. In between, suspect the page changed between runs — an A/B variant, a heavier ad, a cold cache — and look at the metric that moved rather than the composite score. The score compresses six measurements into one number; two runs can share a score for different reasons.
The method that gives you a trustworthy number
- Run the test five times, a minute apart.
- Read the median, not the best and not the mean — the median ignores one unlucky outlier in either direction.
- Compare medians before/after a change, never single runs.
- When the site has enough traffic, prefer field data over any lab number: it is a 28-day aggregate of real visits and has no run-to-run variance at all.
This is also why this tool leads with the specific fix and its estimated saving rather than the score: fixes are stable between runs even when the composite number wobbles.
When variance itself is the symptom
If your runs are wildly spread — 40 one minute, 75 the next — that spread is information. The usual culprits are third-party scripts that differ per load (ad auctions above all) and a server cache with a short lifetime, so half the runs hit a warm cache and half don’t. Fixing the variance source usually improves the median too.
Common questions
- Which score is the real one?
- None of them individually. Each run is one honest sample from a distribution. The real answer is the shape of several runs — which is why the method is median-of-five, not best-of-one, and why field data beats all lab runs when you have it.
- PageSpeed Insights gave me a different score than Lighthouse in my browser. Why?
- Different machine, different throttling, different extensions. PSI runs in Google's datacenter on calibrated hardware; your DevTools run competes with your open tabs and browser extensions, which inject scripts into the page being measured. PSI's number is the more comparable one.
- My competitor's score jumps around too. Can I compare us?
- Compare medians, not single runs, and better still compare field data — the Chrome UX Report numbers on both results. Field data is a 28-day aggregate of real visits and doesn't have run-to-run noise at all.
- Should I chase the last few points?
- Past 90, the remaining points are usually noise-sized and cost more than they pay. The score exists to point at problems; once the specific fixes are done, the milliseconds — and the conversion rate — are what matter, not the rounding.
- Does Google rank me on my Lighthouse score?
- No. Ranking uses field data — real Chrome visits — not anyone's lab run. A noisy lab score changes nothing about how Google sees your site; it only changes how you feel on a Tuesday.
Check a page against this
Enter any public URL. You’ll get the one change that recovers the most load time, what it’s worth, and the measurements underneath.
Other guides
- How to fix a slow LCP — Your main image or headline takes too long to appear.
- How to fix layout shift — Content jumps around while the page loads.
- How to fix slow INP — Taps and clicks take a moment to do anything.
- How to fix a slow server response — Your server is slow to start replying at all.
- How to eliminate render-blocking CSS and JS — CSS and JS files stop anything appearing on screen.
- Why you're seeing "no field data" — Google has no real-visitor data for your site yet.
- How to fix oversized and outdated images — Your images weigh far more than they need to.
- How to cut unused JavaScript — You ship JavaScript this page never runs.
- How to fix your cache headers — Returning visitors re-download files they already have.
- Fast on desktop, slow on mobile — Desktop looks fine; the phone test says otherwise.
- Why Search Console still shows the old numbers — You fixed it weeks ago and Search Console hasn't noticed.