Core Web Vitals in practice: the three fixes that usually matter
We audit a lot of existing sites. The reports are long, but the fixes that move the needle are almost always the same three. Here they are in the order we do them.
1. The hero image (LCP)
Largest Contentful Paint is usually the big image at the top. Typical problems: a 3 MB photo scaled down in CSS, lazy-loading applied to the one image that must load first, and the image discovered late because it comes from a script. The fix is mechanical: resize to the displayed size, serve AVIF or WebP with a fallback, add fetchpriority="high" and a preload for the hero, and never lazy-load above the fold.
2. Layout shifts (CLS)
Content that jumps while loading comes from images without dimensions, web fonts that swap late, and banners injected at the top of the page. Give every image a width and height, use font-display: swap with a metric-compatible fallback font, and reserve space for anything that appears after load. CLS should be near zero on a well-built site; there is no reason to accept a "needs improvement" score here.
3. JavaScript (INP)
Interaction to Next Paint measures how quickly the page responds to a tap or click. Long tasks from third-party scripts, oversized frameworks and analytics that run on every interaction are the usual causes. We start by removing what is not needed, then defer what is, then split the rest. Loading a chat widget after the first interaction instead of on page load alone often fixes the score.
How we measure
Lab tools are useful for finding causes, but the score that matters comes from real visitors. We look at field data first, then reproduce on a throttled mid-range phone, then fix, then check the field data again a few weeks later. Do not chase a perfect lab number on a fast laptop.
What we skip at first
Minifying an already small CSS file, tuning cache headers by a few seconds, or swapping one framework for another rarely changes anything a visitor can feel. Do the three fixes above, measure, and only then look further.