Core Web Vitals Explained: LCP, CLS, and INP Complete Guide

Published on February 23, 2026

overview of core web vitals
overview of core web vitals

If you've ever opened Google PageSpeed Insights or Google Lighthouse and saw red warnings like:

  • Largest Contentful Paint ( LCP ) is too high
  • Cumulative Layout Shift ( CLS ) needs improvement
  • Interaction to Next Paint ( INP ) is poor

You probably optimized an image, removed one script from your header, refreshed again, and expected your performance score to turn green.

If you don't understand what these metrics actually measure, you're just guessing.

Core Web Vitals are not random numbers. They represent how real users experience your website—and this changes everything for your business.

Comparison of LCP, CLS, and INP
Comparison of LCP, CLS, and INP

Understanding the "Why": Beyond SEO

Most developers first hear about Core Web Vitals because of rankings.

Yes, they affect SEO. But if your only motivation is ranking, you're missing the bigger picture. Core Web Vitals directly impact:

1. Real User Experience

Users do not measure milliseconds. They feel friction.

  • If your hero section takes 4 seconds to appear:

    • They think your site is slow.
    • They assume your product is not professional.
    • They leave.
  • If the layout keeps shifting:

    • They lose trust.
    • They get frustrated.
    • They stop interacting.
  • If buttons respond late:

    • They click twice.
    • They think the site is frozen.
    • They abandon their action.

2. Conversion Rate Impact

Imagine this:

  • Product page loads slowly → bounce rate increases.
  • Add to cart button lags → duplicate clicks.
  • Checkout layout shifts → wrong input tapped.

Small delays at scale lead to massive revenue loss. Even a 100–200ms delay can affect conversions. Performance is directly tied to business growth.

3. Accessibility and Inclusion

Users with low-end devices, slow networks (2G/3G), or motor impairments are especially sensitive to layout shifts and input delays. Core Web Vitals help make your site usable for everyone.

How Core Web Vitals Work: The User Experience Perspective

Instead of thinking in terms of milliseconds and paint events, think in terms of how a user feels while using your website.

To make this simple, imagine this:

Website = Restaurant Experience

Restaurant Experience
Restaurant Experience

When someone visits your website, it's similar to entering a restaurant. The experience happens in stages.

Step 1: You enter the restaurant → LCP

The main dish arrives.

  • If the food comes fast, you feel good.
  • If it takes too long, you get irritated.

On a website: The "main dish" is the largest visible element, like a hero image, headline, or product image.

  • If it appears within 2–2.5 seconds, you have a Good LCP.
  • If it appears late, users feel the site is slow.

LCP = How fast users see the main content.


Step 2: You grab your glass → CLS

Suddenly, the table moves. Your glass spills. It’s annoying, right?

On a website: You try to click a button, and suddenly the content shifts because an ad loaded or an image finished rendering.

  • You click the wrong thing—that is CLS.
  • If there is no unexpected movement, you have a Good Experience.

CLS = How stable your layout is while loading.


Step 3: You call the waiter → INP

You raise your hand.

  • If the waiter responds instantly, that's great service.
  • If they ignore you for 3 seconds, that's a bad experience.

On a website: You click "Add to Cart" or open a menu. If nothing happens for half a second, it feels frozen.

  • INP = How fast your site responds to user interaction.

Comparison of LCP, CLS, and INP
Comparison of LCP, CLS, and INP

Largest Contentful Paint (LCP)

LCP
LCP

LCP measures how long it takes for the largest visible element on the screen to appear. Usually, these are hero images, large headings (headlines, sub-headlines), banner sections, or featured images.

A good LCP score is under 2.5 seconds. Scores between 2.5 – 4 seconds need improvement, and anything greater than 4 seconds is considered poor.

If your main content appears too late, users will feel the page is slow, even though other background processes might have loaded earlier.

LCP = How fast users see the main content.


Why LCP Fails?

Common reasons include:

  • Large unoptimized images (learn how to fix here)
  • Slow server response times
  • Render-blocking CSS
  • Loading too many blocking scripts during initial load
  • Slow font loading


Cumulative Layout Shift (CLS)

Cumulative layout Shift
Cumulative layout Shift

CLS measures how much elements move unexpectedly while content is loading. It ensures your website feels stable and predictable.

If there is no unexpected movement in the UI, it results in a good experience.

Why CLS Happens

  • Images without dimensions: If you don't define height and width, the browser doesn't know how much space to reserve.
    • Fix : Always define height and width or use aspect-ratio.
  • Ads injected between content: Popular in blog articles, these often push content down suddenly.
  • Late font swapping: Custom fonts loading after system fonts can cause text reflow, changing line heights and spacing.
    • Fix : Use font-display: swap and preload key fonts.
  • Dynamic content injected above existing content:
    • Examples: Cookie banners, promo banners, or announcement bars inserted at the top without reserved space.
    • Fix : Always reserve space or use an overlay instead of appending content.

Interaction to Next Paint (INP)

Interaction to Next Paint
Interaction to Next Paint

Earlier, we had FID (First Input Delay). Now, Google has replaced FID with INP (Interaction to Next Paint).


Why? Because FID only measures the first interaction, but users interact many times during a single visit.

INP measures the overall responsiveness of your page during the entire visit. It checks how long it takes your page to visually respond after a user interacts with it.

What INP Actually Measures

INP tracks the slowest interaction delay during the user's visit—it's not the average or just the first one; it’s the worst one. This includes interactions like:

  • Clicking buttons
  • Typing in input fields
  • Opening dropdowns
  • Submitting forms

An INP score under 200ms is considered good. Scores between 200ms–500ms need improvement, and anything above 500ms is poor.


Reasons Why INP Fails

  • Heavy JavaScript: If your page loads massive JS bundles, the browser has to process everything before reacting.
  • Long Main-Thread Tasks: The browser's main thread is like a single worker; if one task takes 800ms, everything else is paused.
  • Too Many Event Listeners: Multiple scroll, resize, or click listeners can overload the processor.
  • Third-Party Scripts: Analytics, ad networks, and tracking scripts often run heavy logic that blocks the main thread.

Final Thoughts

Core Web Vitals are not just about SEO; they are about providing a seamless experience for your users.

  • LCP: How fast they see content.
  • CLS: How stable the layout feels.
  • INP: How responsive interactions are.

When you fix these metrics, you aren't just chasing green scores—you're increasing conversion rates, dropping bounce rates, and building trust with your users.




linkedin | github | twitter