A client came to us with a site that took four seconds to become usable on mobile. Bounce rates were high, conversions were soft, and every marketing pound was working against a slow first impression. Here’s the teardown of how we got it under one second — and which changes actually moved the needle.
Where the four seconds went
Before touching anything, we measured. A waterfall and a field-data report told the real story: a heavy JavaScript bundle blocking render, render-blocking web fonts, unoptimised hero images, and a stack of third-party scripts each adding hundreds of milliseconds. The database wasn’t the problem. The front end was.
The changes that mattered most
- Ship less JavaScript. Code-splitting and removing unused dependencies cut the main bundle dramatically. Less script to download, parse and execute is the highest-leverage fix on almost every slow site.
- Fix the fonts. Self-hosting the fonts, subsetting them and using
font-display: swapremoved a render-blocking round trip to a third-party origin. - Right-size the images. Modern formats, responsive
srcset, explicit dimensions and lazy-loading below the fold turned the largest payload on the page into a fraction of its former size. - Tame the third parties. We deferred analytics and chat widgets, and dropped a tag manager that was pulling in scripts nobody used.
- Cache aggressively. A proper edge and page cache meant most visitors were served a fully-rendered page in tens of milliseconds.
The result
Largest Contentful Paint dropped from just over four seconds to under one on a mid-range phone. Bounce rate fell, pages-per-session rose, and the same traffic started converting noticeably better — all without changing a word of the marketing.
None of this was exotic. It was measurement, then a handful of disciplined changes applied in the right order. Speed is rarely one big fix; it’s a dozen small ones that respect the user’s device and network.