The average is true and useless
Two thirds of the sites we put through the proxy scored higher on mobile. That is the number a vendor prints, and on its own it earns nothing: it hides both what happened to the other third and how much anyone gained.
| Change in mobile score | Sites | Share |
|---|---|---|
| Higher | 254 | 67% |
| Lower | 106 | 28% |
| Unchanged | 21 | 6% |
The distribution behind it is wide. The 10th percentile of the change is −8 points and the 90th is +25, with the median at +4. A stricter reading — mobile up and desktop not down by more than two points, which is the test we use before a result may appear on this site — leaves 230 of 379, or 61%.
The starting score decides almost everything
Split the same 381 sites by the score they had before we touched them and the blur resolves:
| Original mobile score | Sites | Improved | Regressed | Median change |
|---|---|---|---|---|
| 0–29 | 11 | 73% | 18% | +9 |
| 30–49 | 97 | 79% | 20% | +11 |
| 50–69 | 174 | 73% | 22% | +5 |
| 70–89 | 71 | 49% | 46% | 0 |
| 90–100 | 28 | 25% | 46% | 0 |
Below 50, the service does what it says on almost four sites in five, and the typical gain is large enough to survive the measurement noise several times over. Between 50 and 69 it still works, at half the size. Above 70 it is a coin flip, and above 90 the likelier single outcome is a small loss.
Nothing about the software changes across those rows. The same thirty-odd optimizations run in the same order. What changes is how much was left to fix — and on a site that already inlines its critical CSS, prioritises its hero image and defers its analytics, a generic optimizer arrives with nothing to do and a small amount of overhead to add.
The sites that lost points weren’t the broken ones
The 106 regressions are not a set of catastrophes. Their median loss is 5 points — inside the range a repeat measurement produces on its own — and only 13 sites lost 20 or more.
What separates them is where they started. The median regressing site began at 67; the median improving site began at 56. The losses come from the top of the sample, not the bottom, which is the same finding as the table above arriving from a different direction.
That is also the reason we publish this. A speed service that reports averages will happily sell to the site sitting at 78, because the average says two thirds of customers improve. Our own measurements say that site has even odds, and the honest recommendation for it is a tuned profile or nothing at all.
Score is not the only axis
One number moved much more consistently than the score did. Speed Index — how quickly the visible area of the page fills in — was faster through the proxy on 73% of sites, with a median ratio of 1.22×.
The two disagree because the score is a weighted average of several metrics, and a page can paint visibly sooner while a single component of the score, most often layout stability or total blocking time, moves the other way and cancels it out. Neither number is the truth on its own. If what you care about is when the visitor sees the page, the Speed Index figure is the relevant one; if what you care about is the number in the report your client will run, the score is.
Platform is a weaker signal than starting score
| Platform | Sites | Improved | Regressed | Median change |
|---|---|---|---|---|
| Bitrix | 22 | 82% | 18% | +9 |
| Duda | 47 | 79% | 19% | +9 |
| WooCommerce | 44 | 73% | 25% | +3 |
| Tilda | 33 | 70% | 27% | +8 |
| Squarespace | 29 | 69% | 21% | +3 |
| Wix | 29 | 66% | 31% | +5 |
| Webflow | 26 | 65% | 27% | +4 |
| Elementor | 30 | 60% | 30% | +2 |
| WordPress | 51 | 55% | 39% | +3 |
| Next.js | 22 | 50% | 50% | −1 |
The spread here is narrower than the spread by starting score, and each group carries its own selection story: our Duda sites came from one batch of small local businesses, our Next.js sites are developer-facing products that render their first screen in the browser. We would not defend a single row of this table as a fact about the platform. It is here because leaving it out, having run it, would be choosing which of our own results to show.
What we do with this internally
Three things, and none of them is a talking point.
Sites arriving above 70 get told the honest range before anything is measured. A page in the 90s does not need us and we would rather say so than sell it a coin flip.
Regressions get read as bugs first. Several of the 106 above turned out to be defects in our own filters rather than facts about the sites — that is how we found a minifier that was truncating a runtime and a filter that was moving scripts a site’s own optimizer had already scheduled. Both had been quietly inflating scores elsewhere by preventing code from running at all, which is the failure mode this whole line of measurement exists to catch.
And the 30–49 band is where the service is actually worth buying. That is not the segment with the best story, but it is the one where the median outcome is eleven points and the downside is a rounding error.
Addendum, 26 August 2026: how much of the 28% survives a second run
Everything above is the state of our base on 4 August 2026, and it stays as it was measured. This section is a later measurement of one number in it: the 28% of sites that scored lower.
That share came from one run per side. We have since re-read 386 audits that hold an archived earlier run alongside the current one, which lets the same comparison be counted twice:
| Sites that scored lower through the proxy | Sites | Share |
|---|---|---|
| in the current run | 100 | 26% |
| in the earlier run | 150 | 39% |
| in both runs | 70 | 18% |
| in one run but not the other | 92 | 24% |
The headline barely moved: 26% against the 28% above. What moved is what it can be used for. Of the 100 sites that scored lower in the current run, 30 had not scored lower in the earlier one, and 24% of all sites change the sign of their result between two runs of the same comparison. A site being “worse through the proxy”, established once, is a weaker statement than it looks.
The criterion degrades further the harder you lean on it. Wanting a list of sites we actually harm, we took the dozen with the largest recorded losses and re-measured each two to four times per cell, with a cache-buster so that PageSpeed could not hand back a stored verdict. Five of them are now faster through the proxy than the original, one of them by 34 points. The reason is visible in the runs themselves: on that site the original alternates between 49 and 89, and both modes are stable across four measurements. Selecting on “lower in two runs” finds sites whose score is bimodal before it finds sites we slow down.
None of this argues the number the other way, and 67% is not a floor we have just raised. It is a limit on what any single before-and-after pair is worth — ours included — and the mechanism behind it has its own study in why the same page scores differently between runs.
The 386-audit count was taken on 24 August 2026, the twelve-site re-measurement on 20 August 2026. Neither replaces the figures above, which describe a different base on a different day.
Method and limits
381 audited sites where a completed run holds a PageSpeed score for both the original site and the same page served through our proxy, measured minutes apart in the same Lighthouse mobile configuration. The proxy runs its generic profile — the same filter set every site gets, with no per-domain tuning. We excluded 12 runs that our own render-fidelity check flagged as unreliable, where the proxied page failed to load enough of itself for the comparison to mean anything; those runs mostly show large gains, so excluding them lowers our numbers rather than raising them.
Measured on 4 Aug 2026 across 381 sites. These figures are frozen at that date — we don't quietly restate a published study when the audit base grows.
What this doesn't show
- Not a random sample. These are 381 sites we chose to audit, weighted toward sites somebody suspected were slow, and toward the platforms we ran batches on. The overall 67% is a property of that mix; the breakdown by starting score is the part that generalises further, because it holds inside every band.
- PageSpeed scores move on their own. Running the identical page three times in a row during an unrelated investigation gave us 53, 67 and 86 — so a single site moving five points either way tells you nothing. That is why everything here is reported as bands of dozens of sites and why we describe a median of ±0 as "no measurable change" rather than as zero.
- One page per site, almost always the homepage. A homepage is not representative of a catalogue page or an article, and the resource mix differs enough that the bands would likely shift.
- This measures the generic profile only. Sites on a tuned per-domain profile — where individual optimizations are measured and the harmful ones switched off — are not in this sample, and the whole point of that tier is the cases where the generic set underperforms.
- The platform table at the end is confounded by which sites we batched. Each platform's group was assembled separately and the groups differ in size, sector and country, so read it as a description of these audits, not a ranking of platforms.
Sources
- Lighthouse performance scoring — Chrome for Developers, Google
The Performance score is a weighted average of the metric scores.
- Lighthouse performance scoring — Chrome for Developers, Google
When your Performance score fluctuates it's usually because of changes in underlying conditions.