· updated 2026-10-07
Core Web Vitals do not measure “speed” in general but three specific aspects of the user experience. Each is fixed differently.
LCP — largest contentful paint
Threshold: 2.5 s. Usually the hero image or heading. What helps: fetchpriority="high" and preloading that image, no lazy loading above the fold, inlined critical CSS, and a good TTFB.
CLS — unexpected layout shift
Threshold: 0.1. The cause is almost always the same: elements without declared dimensions. What helps: width and height on every image, aspect-ratio on embeds, reserved space for adverts and notice bars, and fonts loaded with font-display: swap — or system fonts.
INP — responsiveness to interaction
Threshold: 200 ms. It replaced FID and is stricter. The main culprit is too much JavaScript. What helps: removing unnecessary plugin scripts, the defer attribute, breaking up long tasks, and cutting third-party code.
One detail that matters
Lighthouse shows lab data, while ranking uses field data from real users (CrUX) over 28 days. So improvements do not appear immediately after a fix. Watch Search Console → Core Web Vitals, not a single one-off test.
We treat these metrics as acceptance criteria on every website project.