Back to Blog
๐Ÿ”
SEO

Core Web Vitals Explained: LCP, CLS, INP and How to Improve Them

Google uses Core Web Vitals as a ranking signal. This guide explains what LCP, CLS, and INP mean in plain English and the practical steps to improve each one.

Hafiz HanifHafiz Hanifยท May 5, 2026ยท 8 min read
โšก Quick Answer

Google uses three metrics โ€” LCP (loading), CLS (visual stability), and INP (responsiveness) โ€” to score your site's experience. Hit "Good" on all three and your rankings improve. The biggest single win for most sites: compress and properly size your hero images.

In May 2021, Google introduced Core Web Vitals as an official ranking factor. They're a real influence on search rankings, but more importantly they directly measure whether real visitors have a good experience on your site.

This guide walks through what each metric means in plain English โ€” and what you can actually do about each one.

The three Core Web Vitals

Three specific performance measurements that Google considers most important:

  1. LCP โ€” Largest Contentful Paint (loading speed)
  2. CLS โ€” Cumulative Layout Shift (visual stability)
  3. INP โ€” Interaction to Next Paint (responsiveness)

These replaced FID (First Input Delay) with INP as of March 2024.

โ˜…

The 80/20 rule for Core Web Vitals

For most sites, image optimization alone gets you from "Poor" to "Good" on LCP โ€” the single biggest ranking factor of the three. Start there.

LCP: Largest Contentful Paint

LCP measures how long it takes for the largest visible element on the page to finish loading. This is usually a hero image, a large video poster, or a large block of text.

Target: Under 2.5 seconds Needs improvement: 2.5s โ€“ 4s Poor: Over 4s

What affects LCP most?

  • Slow server response โ€” High Time to First Byte (TTFB) delays everything downstream
  • Render-blocking resources โ€” CSS and JavaScript that block the browser from rendering
  • Unoptimized images โ€” Large, uncompressed hero images are the most common LCP offender
  • Client-side rendering โ€” SPAs that render everything in JavaScript have slower LCP

How to improve LCP

  1. Compress your hero image โ€” Use WebP format, max 1920px wide, quality 75โ€“80%. Compress images here
  2. Add loading="eager" and fetchpriority="high" to your hero image
  3. Use a CDN โ€” Content Delivery Networks serve assets from servers close to the user
  4. Preload critical resources โ€” Use <link rel="preload"> for your LCP image
  5. Remove render-blocking CSS โ€” Inline critical CSS and defer non-critical stylesheets

CLS: Cumulative Layout Shift

CLS measures how much the page layout unexpectedly shifts while loading. Have you ever tried to click a button only for something to pop in above it and your click lands on the wrong element? That's a layout shift.

Target: Under 0.1 Needs improvement: 0.1 โ€“ 0.25 Poor: Over 0.25

Common causes of CLS

  • Images without dimensions โ€” If the browser doesn't know an image's size, it can't reserve space and the layout shifts when the image loads
  • Ads without reserved space โ€” Ad slots that inject content push everything else down
  • Web fonts causing FOUT โ€” Flash of Unstyled Text when a web font loads and changes text size
  • Dynamically injected content โ€” Banners, cookie notices, and "back to top" buttons that appear without reserved space

How to improve CLS

  1. Always specify width and height on <img> elements
  2. Reserve space for ads โ€” Use CSS to set a fixed height for ad slots
  3. Use font-display: optional or font-display: swap for web fonts
  4. Avoid inserting content above existing content โ€” Place banners and notices at the bottom or off-canvas

INP: Interaction to Next Paint

INP replaced FID (First Input Delay) in March 2024. It measures the responsiveness of your page to user interactions (clicks, taps, keyboard input). Specifically, it measures the time from when a user interacts to when the browser updates the display in response.

Target: Under 200ms Needs improvement: 200ms โ€“ 500ms Poor: Over 500ms

What affects INP?

  • Long JavaScript tasks โ€” Heavy computations that block the main thread
  • Excessive DOM size โ€” Large HTML documents take longer to update
  • Third-party scripts โ€” Analytics, ads, and chat widgets running JS on user interactions
  • Unoptimized event handlers โ€” Inefficient code running in click/input handlers

How to improve INP

  1. Break up long tasks โ€” Use setTimeout, requestIdleCallback, or scheduler.postTask()
  2. Minimize third-party scripts โ€” Audit every third-party script; remove anything non-essential
  3. Debounce input handlers โ€” Don't run expensive operations on every keystroke
  4. Use content-visibility: auto โ€” Defers rendering off-screen content

How to Measure Core Web Vitals

Google PageSpeed Insights (Free)

The easiest option โ€” paste your URL at pagespeed.web.dev and get both lab and field data with specific recommendations.

Chrome DevTools

Open DevTools โ†’ Performance tab โ†’ run a recording. The Performance panel shows LCP, CLS, and INP events.

Google Search Console

The "Core Web Vitals" report shows real-user data for your site across all URLs. This is field data, which is what Google actually uses for ranking.

Lighthouse (in Chrome DevTools)

Open DevTools โ†’ Lighthouse tab โ†’ run an audit. Provides a score and specific opportunities to improve.


Prioritizing Improvements

Not all improvements are equal. Focus first on:

  1. Image compression โ€” The biggest single win for most sites. Use our image compressor
  2. Adding image dimensions โ€” Prevents CLS, takes 5 minutes
  3. Removing unnecessary third-party scripts โ€” Often doubles performance
  4. Using a CDN โ€” Dramatically improves TTFB globally

The best tools and good hosting take you most of the way. Use our free Meta Tag Generator to also make sure your metadata is optimized for search rankings.

Hafiz Hanif

Hafiz Hanif

Full-Stack & Agentic AI Developer ยท Dubai, UAE

10+ years shipping products across UAE, USA, Saudi Arabia, and Pakistan. Currently leading engineering at MK Innovations / Homzly. I build ToolsMadeEasy on the side โ€” because useful tools should be free. More about me โ†’

Free to use, no signup

Try Our Free Online Tools

Browse All Tools