Get in touch
Have a project in mind? Tell us a bit about it.
Core Web Vitals get treated like a mysterious ranking lever that needs constant fiddling, when in practice the underlying idea is simple: Google wants to rank pages that load fast, respond quickly to input, and don’t jump around while someone’s trying to read or click. The metrics measuring that have changed names and thresholds a few times, but the goal hasn’t moved. Here’s what’s actually worth your attention and what isn’t.
1. Largest Contentful Paint is still the one to fix first
LCP measures how long it takes the biggest visible element on the page — usually a hero image or a large block of text — to render. Slow LCP is almost always one of a few causes: unoptimised images, render-blocking scripts loading before content, or a slow server response to the initial request.
Fix it: serve properly compressed, correctly sized images (not a 4000px image scaled down with CSS), defer anything that isn’t needed to render the visible page, and check your server response time separately from everything else — a slow host will cap your LCP no matter how well the front end is optimised.
2. Interaction responsiveness matters more than people think
The metric measuring this has shifted from First Input Delay to Interaction to Next Paint, which looks at responsiveness across the whole page visit rather than just the first click. Heavy JavaScript — especially large bundles that block the main thread — is the usual culprit when a page feels sluggish to interact with even after it’s visually loaded.
- Audit third-party scripts regularly — chat widgets, tracking pixels, and embedded tools are frequent offenders, and most sites accumulate more of them over time than anyone realises.
- Break up long-running JavaScript tasks instead of running them as one blocking chunk.
- Load anything non-critical (chat widgets, below-the-fold embeds) after the main content, not alongside it.
3. Layout shift is usually a content problem, not a code problem
Cumulative Layout Shift measures how much visible content jumps around as a page loads — images popping in without reserved space, fonts swapping and reflowing text, ads or embeds injecting themselves after the fact. It’s one of the more fixable metrics because the causes are usually straightforward once you know where to look.
Fix it: always set explicit width and height (or aspect-ratio) on images and embeds so the browser reserves space before they load. Use font-display strategies that avoid an invisible-then-reflow swap. Never inject dynamic content above what a visitor is already reading.
4. A good score isn’t the same as a fast site for real visitors
Lab tools like PageSpeed Insights and Lighthouse test under controlled conditions that don’t reflect your actual visitors — their devices, their connection speed, their location relative to your server. A page that scores well in a lab test can still feel slow to someone on a mid-range phone on a weak connection.
Fix it: pay attention to field data (real user metrics from the Chrome UX Report, where available) alongside lab scores, not instead of them. They measure different things and both matter.
5. Chasing a perfect score has diminishing returns
There’s a meaningful difference between a genuinely slow site and one that’s already fast but not hitting a perfect 100. Past a certain point, squeezing out the last few points of a Lighthouse score takes disproportionate effort for negligible ranking or conversion benefit.
Fix it: get every metric into the “good” threshold Google defines, then redirect further effort toward content, structure, and conversion — not toward chasing a perfect score nobody but you will ever see.
The bottom line
Core Web Vitals reward the same thing a good visitor experience rewards: a page that loads fast, responds immediately, and doesn’t move around while someone’s trying to use it. Fix the real offenders — bloated images, unnecessary scripts, unreserved layout space — and the score takes care of itself. Chasing the number directly, without fixing what’s actually causing it, rarely works.