Core Web Vitals explained
LCP, INP, and CLS in plain language, what each measures, why search engines care, and how to improve them.
A short tour of the metrics
Core Web Vitals are a small set of metrics Google publishes to summarize the user-perceived performance of a page. They’re not the only thing that matters for SEO, but they’re a useful proxy for whether a page actually feels fast and stable.
Why Core Web Vitals matter beyond the rankings
Google has been explicit that Core Web Vitals are a ranking signal, and that is the reason they show up in most SEO conversations. But the more interesting reason to invest in them is that they are a clean, measurable proxy for whether the page actually works for the person using it. A page that fails LCP is a page that is making the user wait too long for the main content; a page that fails INP is a page that responds sluggishly to taps and clicks; a page that fails CLS is a page that is moving content around under the user's finger. Each of those is a real user-experience problem regardless of what Google does with the data. Investing in Core Web Vitals because they correlate with users who actually have a good time on the page produces decisions that hold up even if the ranking weighting changes.
How to instrument and improve them
The most useful data for Core Web Vitals comes from real users, not lab tools. The Chrome User Experience Report (CrUX) is the data Google itself uses for search ranking signals. You can access aggregated CrUX data through PageSpeed Insights or Search Console's Core Web Vitals report, and you can collect your own first party field data using the web-vitals JavaScript library and your analytics tool of choice. Lab tools like Lighthouse are useful for development but don't always match what real users experience.
Once you have field data, prioritize fixes by the page templates with the most impressions and the worst metrics, usually one or two templates account for the majority of the failures. Common high impact fixes: properly sized hero images with explicit dimensions for LCP and CLS; deferring or removing third party scripts to improve INP; reserving space for embeds and ads to prevent CLS; and serving fonts with font-display: swap or optional. Most sites can move from failing to passing within a single sprint of focused work if the right pages are targeted.
LCP \u2014 Largest Contentful Paint
Measures how long the largest meaningful element on the page (often a hero image, headline, or main content block) takes to render. Target: under 2.5 seconds at the 75th percentile.
Common culprits: unoptimized hero images, render-blocking JavaScript or CSS, slow servers, and fonts that delay text rendering.
INP \u2014 Interaction to Next Paint
Replaced FID in 2024. Measures the latency of interactions across the entire page lifetime, not just the first one. Target: under 200ms at the 75th percentile.
Common culprits: heavy JavaScript on the main thread, third party scripts (chat, analytics, A/B test tools), and event handlers that do too much synchronously.
CLS \u2014 Cumulative Layout Shift
Measures how much visible content shifts unexpectedly during page load. Target: under 0.1.
Common culprits: images and ads loading without reserved dimensions, web fonts swapping in and changing layout, and content injected after first render.
How they\u{2019}re measured
Google distinguishes between field data (real user metrics from Chrome users, surfaced in the Chrome User Experience Report and Search Console) and lab data (synthetic tests like PageSpeed Insights and Lighthouse). Field data is what affects rankings; lab data is faster to iterate against.
A pragmatic improvement order
- Establish current field metrics from Search Console / CrUX.
- Fix the largest LCP and CLS issues first \u2014 usually image and layout work.
- Audit and trim JavaScript to bring INP into range.
- Set performance budgets so regressions are caught early.
Site failing Core Web Vitals?
Send us a URL and we'll share a quick read on what's likely costing you.
Start a conversation