How to Improve Core Web Vitals: Fixes for LCP, INP, and CLS
By Editorial Team · Published
Learn how to improve Core Web Vitals with practical fixes for LCP, INP, and CLS. Diagnose issues and speed up your site with this step-by-step guide.
# How to Improve Core Web Vitals: Fixes for LCP, INP, and CLS
Core Web Vitals are Google's user experience metrics — and while they are a confirmed ranking signal, their bigger impact is usually on your users. Slow, janky, shifting pages frustrate visitors long before they affect rankings. The good news: most Core Web Vitals problems come from a short list of fixable causes. This guide walks through what each metric measures, how to diagnose your specific issues, and the fixes that actually move the needle.
## What the Three Metrics Actually Measure
Google measures Core Web Vitals at the 75th percentile of real user visits, using these thresholds:
| Metric | Measures | Good score | Usual culprits |
|---|---|---|---|
| **LCP** (Largest Contentful Paint) | How fast the main content appears | ≤ 2.5s | Slow server response, oversized hero images, render-blocking CSS/JS |
| **INP** (Interaction to Next Paint) | How fast the page responds to clicks and taps | ≤ 200ms | Heavy JavaScript, long tasks, third-party scripts |
| **CLS** (Cumulative Layout Shift) | How much the page jumps around while loading | ≤ 0.1 | Images without dimensions, late-loading ads and fonts, injected content |
Note that INP replaced FID as the interactivity metric in March 2024, so older audits referencing FID are out of date.
## Start With Field Data, Not Lab Data
Before changing anything, know which metric is actually failing and for which pages. There are two types of data:
- **Field data** comes from real Chrome users via the Chrome User Experience Report (CrUX). Google Search Console's Core Web Vitals report shows this per page group. This is what Google evaluates.
- **Lab data** comes from controlled test runs (like Lighthouse). It won't match your field data, but it's far better for debugging because you can see exactly what happens during load.
A sensible workflow: use Search Console to find failing page groups, then run lab tests on the worst URLs to find the cause. Running a [free SEO audit](https://seodone.ai) gives you lab-level diagnostics for LCP, INP, and CLS in one pass, so you can skip straight from "this page fails" to "here's why."
## How to Improve LCP
LCP almost always refers to a hero image, a large headline, or a background image. Your job is to make that specific element appear faster.
1. **Optimize the LCP image.** Compress it, serve it in WebP or AVIF, size it responsively with `srcset`, and never serve a 3000px-wide image into a 600px slot.
2. **Preload the hero image.** Add `` so the browser starts downloading it immediately instead of waiting for CSS to parse.
3. **Reduce server response time (TTFB).** Enable page caching, use a CDN, and check whether slow database queries or missing object caching are dragging down your first byte.
4. **Eliminate render-blocking resources.** Inline critical CSS, defer non-essential JavaScript, and preload web fonts.
5. **Do not lazy-load the LCP image.** This is the most common self-inflicted wound. `loading="lazy"` on your hero image delays it deliberately. Lazy-load below-the-fold images only.
## How to Improve INP
INP measures the worst (or near-worst) interactions on your page. If a click takes half a second to visually respond, that's usually JavaScript blocking the main thread.
1. **Find and break up long tasks.** Use Chrome DevTools' Performance panel to record a typical interaction. Any task over 50ms blocks the page. Split large work into chunks with `setTimeout`, `requestIdleCallback`, or `scheduler.yield()`.
2. **Ship less JavaScript.** Audit your bundles, remove unused dependencies, code-split so routes only load what they need, and prefer server-side rendering for content pages.
3. **Tame third-party scripts.** Chat widgets, heatmaps, A/B testing tools, and tag managers are frequent INP killers. Load them lazily or after user interaction, and remove the ones you don't actively use.
4. **Optimize event handlers.** Show visual feedback immediately (a spinner, a pressed state), then do the heavy processing. Perceived responsiveness counts.
## How to Improve CLS
CLS is usually the easiest of the three to fix because the causes are mechanical.
- **Set explicit `width` and `height` (or an aspect-ratio) on every image and video**, so the browser reserves space before loading.
- **Reserve space for ads, embeds, and dynamic content** with fixed-size placeholders, so late-arriving content doesn't push everything down.
- **Load fonts carefully.** Use `font-display: swap` with a fallback font of similar size, or preload your primary font to reduce the swap window.
- **Never inject new content above existing content** after the page has rendered — banners, cookie notices, and promo bars included. Animate them in from a reserved slot instead.
## Prioritization Checklist
Work top-down. Fixes that help every user beat fixes that help one page.
| Priority | Symptom | Do this first |
|---|---|---|
| 1 | LCP fails site-wide | Fix TTFB and caching at the server/CDN level |
| 2 | LCP fails on image-heavy pages | Compress and preload hero images; un-lazy them |
| 3 | INP fails on specific interactions | Profile in DevTools; break up long tasks |
| 4 | INP fails after adding a tool | Audit and delay third-party scripts |
| 5 | CLS fails everywhere | Add dimensions to images and embeds in your templates |
| 6 | CLS fails on one template | Reserve space for ads or injected content on that template |
## Don't Stop at Speed: Connect Vitals to Conversions
Faster pages set the stage, but they don't sell anything by themselves. Once your vitals are green, look at what happens next: is your CTA visible without scrolling? Does your hero actually explain what you do? Does the page guide visitors toward action? The [CRO analysis features](https://seodone.ai/features) examine your pages from a conversion perspective alongside performance and SEO, so you can fix what slows users down and what stops them from converting — in the same workflow.
Core Web Vitals improvement isn't a one-time project, either. New plugins, redesigned templates, and third-party scripts quietly reintroduce problems. Re-check your key templates after every significant change.
## Run Your Free Audit
You don't need to guess which of these fixes applies to your site. Run the [free SEO audit](https://seodone.ai) to get your Core Web Vitals breakdown, prioritized performance issues, and CRO insights for any URL — then work the list from the top.