There's a gap between what your site scores and how it feels.
You can hold a green Lighthouse result and still have customers bouncing, because the score was taken on a fast connection on a machine that isn't representative of anything. Feel is what people actually experience.
Where the time really goes
Images nobody compressed. Still the single most common cause. A 4MB hero that could be 90KB, shipped at full resolution to a phone. We converted one recent project's imagery from 28MB to 6.4MB without a visible difference.
Fonts blocking the first paint. The browser has the text and refuses to show it until the font arrives. That's the flash of nothing everyone recognises.
Third-party scripts loading before your content. Analytics, chat widgets, tag managers, cookie banners, a heatmap tool somebody installed in 2023 and forgot. Each one is a request to a server you don't control, executing before your page can finish.
Layout that jumps. Technically fast, feels broken. An image with no dimensions pushes the paragraph down just as someone starts reading it.
Doing work on every scroll frame. Animation and scroll effects that recalculate constantly. A browser has about 16 milliseconds per frame; go over and it visibly stutters.
Fast on your laptop on office wifi means nothing. Test on a mid-range Android over throttled 4G, because that's where a large share of your real traffic lives.

What it costs
The research is consistent enough to plan around: every extra second of load time costs you conversions, and mobile users abandon fastest. On a site doing £40k a month, a second of delay is not a rounding error. It's a salary.
And it compounds. Speed is a ranking factor, so slow costs you the visitor and the chance to get them next time.
How we approach it
- Measure the right thing. Real devices, throttled connections, the pages that actually make you money, not the homepage because it's easiest.
- Fix the biggest number first. Usually images. Usually boring. Usually most of the win.
- Audit the third parties. Every script has to justify its place. Most can't.
- Then optimise the code. Bundle splitting, lazy loading, caching. Real gains, but smaller than the two above.
We do this on our own site too. Rebuilding the animation on this one took a stuttering median frame time of 29.3ms down to 23.1ms, because measuring it was the only way to know which changes helped and which made it worse. Two of ours made it worse.
The honest bit
Some of this is cheap. Compressing images and removing a dead tracking script is an afternoon and you'll feel it.
Some of it isn't. If the site is slow because it's a page builder loading half a megabyte of CSS to render a heading, no amount of optimisation fixes that. The architecture is the problem.
If you're not sure which one you've got, send us the URL. We'll tell you honestly, and if it's the cheap kind we'll tell you that too.


