How to Fix Core Web Vitals: LCP, INP and CLS Explained
A practical guide to the three Core Web Vitals, what LCP, INP and CLS measure, why they affect SEO, and the concrete fixes that move each one into the green.
- →Core Web Vitals are three metrics Google uses to measure real user experience: LCP, INP and CLS.
- →LCP (loading) should be under 2.5s; INP (interactivity) under 200ms; CLS (visual stability) under 0.1.
- →Fix LCP by optimizing the largest image and reducing render-blocking resources.
- →Fix INP by breaking up long JavaScript tasks so the page responds quickly to input.
- →Fix CLS by setting dimensions on images and reserving space for dynamic content.
Core Web Vitals are Google's way of measuring whether your pages feel fast and stable to real users, and they're a ranking factor. If Search Console flags them red, you're losing both experience and visibility. This guide explains what each one measures and, more importantly, exactly how to fix it.
What are Core Web Vitals?
There are three Core Web Vitals, each measuring a different part of the experience:
| Metric | Measures | Good target |
|---|---|---|
| LCP (Largest Contentful Paint) | How fast the main content loads | Under 2.5 seconds |
| INP (Interaction to Next Paint) | How quickly the page responds to input | Under 200 ms |
| CLS (Cumulative Layout Shift) | How much the layout jumps around | Under 0.1 |
Do Core Web Vitals affect SEO? Yes. They're part of Google's page experience signals, so passing them supports rankings, and failing them can hold a page back, especially when competitors pass.
How to fix LCP (loading speed)
LCP is usually your hero image or headline. To get it under 2.5 seconds:
- •Optimize the largest image: serve modern formats (AVIF/WebP), size it correctly, and compress it.
- •Preload the LCP image so the browser fetches it early.
- •Remove render-blocking resources: defer non-critical JavaScript and inline critical CSS.
- •Use a CDN and caching so the HTML and assets arrive fast.
- •Self-host fonts and use font-display: swap so text doesn't wait on font downloads.
<!-- preload the hero image so LCP starts immediately -->
<link rel="preload" as="image" href="/hero.avif" fetchpriority="high" />In Next.js, use next/image for automatic formats and sizing, and add priority to the hero image so it preloads. That alone fixes most LCP problems.
How to fix INP (responsiveness)
INP measures the delay between a user interaction (tap, click, keypress) and the screen updating. Long JavaScript tasks block the main thread and make the page feel sluggish. To improve INP:
- 1.Break up long tasks: split heavy work into smaller chunks so the browser can respond between them.
- 2.Ship less JavaScript: code-split and lazy-load what isn't needed immediately.
- 3.Defer non-urgent work until after the interaction is handled.
- 4.Avoid large, expensive re-renders on every keystroke, debounce where it makes sense.
How to fix CLS (visual stability)
CLS happens when content moves after it appears, an image loads and shoves text down, or an ad pops in. Fixing it is mostly about reserving space in advance:
- •Always set width and height (or aspect-ratio) on images and video so the browser reserves space.
- •Reserve space for ads, embeds and banners with a min-height.
- •Avoid inserting content above existing content after load.
- •Preload fonts and use font-display: optional/swap carefully to avoid text reflow.
The most common CLS bug is an image with no dimensions. Add width and height, and the layout stops jumping. It's often a one-line fix.
How to measure Core Web Vitals
Measure with real tools, not just your fast laptop:
- •PageSpeed Insights: field data (real users) plus lab diagnostics for a single URL.
- •Google Search Console: the Core Web Vitals report shows which page groups pass or fail across your whole site.
- •Chrome DevTools Lighthouse and the Performance panel: for debugging specific issues locally.
Prioritize field data (real-world) over lab scores. A page can score 100 in the lab and still fail for real users on slow phones, which is what Google actually ranks on.
The short version
Fix LCP by optimizing and preloading the largest image and removing render-blockers. Fix INP by shipping less JavaScript and breaking up long tasks. Fix CLS by giving images and dynamic content reserved space. Measure with PageSpeed Insights and Search Console field data, and re-check after each change.
Most Core Web Vitals failures come down to a handful of fixable causes: an unoptimized hero image, too much JavaScript, and images without dimensions. Fix those three and the green usually follows without a full rebuild.
Frequently asked questions
How do I fix Core Web Vitals?+
Fix LCP by optimizing and preloading the largest image and removing render-blocking resources. Fix INP by shipping less JavaScript and breaking long tasks into smaller ones. Fix CLS by setting width and height on images and reserving space for dynamic content. Then re-measure with PageSpeed Insights and Search Console.
What are the three Core Web Vitals?+
LCP (Largest Contentful Paint) measures loading, target under 2.5 seconds. INP (Interaction to Next Paint) measures responsiveness to input, target under 200 milliseconds. CLS (Cumulative Layout Shift) measures visual stability, target under 0.1.
Do Core Web Vitals affect SEO?+
Yes. Core Web Vitals are part of Google's page experience signals, so passing them supports your rankings and failing them can hold a page back, particularly when competing pages pass. They matter most as a tiebreaker between otherwise similar content.
What causes a high CLS score?+
The most common cause is images or embeds without set dimensions, so content shifts when they load. Ads and banners inserted after load, and web fonts that reflow text, also contribute. Setting width and height on media and reserving space for dynamic content fixes most CLS issues.
How do I measure Core Web Vitals?+
Use PageSpeed Insights for a single URL (it shows both real-user field data and lab diagnostics), the Core Web Vitals report in Google Search Console for your whole site, and Chrome DevTools Lighthouse for local debugging. Prioritize field data because that reflects real users.
I build fast, SEO-ready sites and rank them on Google and AI search.