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.