Core Web Vitals are Google's answer to a hard problem: how do you measure 'does this page feel fast and stable' in a way that's consistent, automatable, and actually correlates with real user experience?
1LCP: When Does The Page Feel Loaded?
Largest Contentful Paint measures the render time of the largest visible element within the viewport — typically a hero image, a large block of text, or a prominent heading. This is a far better proxy for 'the page feels loaded' than older metrics like the generic load event, which fires only after every last resource (including invisible or below-the-fold assets) finishes.
Google classifies LCP of 2.5 seconds or less as 'Good', 2.5 to 4 seconds as 'Needs Improvement', and anything beyond 4 seconds as 'Poor'. Common LCP culprits include unoptimized hero images, slow server response times, and render-blocking resources delaying the largest element's appearance.
2INP: How Responsive Does The Page Feel?
Interaction to Next Paint measures the time between a user interaction (click, tap, keypress) and the next visual frame reflecting that interaction's result, sampled across every interaction during a page visit rather than just the first one. It replaced First Input Delay in 2024 specifically because a single first-interaction measurement missed responsiveness problems that emerged later in a session, like a page that feels fine initially but becomes sluggish once heavy JavaScript finishes loading.
A 'Good' INP is 200 milliseconds or less. Common causes of poor INP include long-running JavaScript tasks blocking the main thread, excessive event listener work, and large, unoptimized component re-renders in JavaScript frameworks.
3CLS: How Visually Stable Is The Page?
Cumulative Layout Shift quantifies unexpected visual movement — content jumping around as the page loads, most infamously the experience of a button shifting right as a user's finger is about to tap it, caused by an ad, image, or embed loading in without previously reserved space.
A 'Good' CLS score is 0.1 or less, calculated from how much of the viewport moved and how far. The standard prevention technique is reserving space for dynamic content upfront: explicit width/height attributes on images (or a matching aspect-ratio in CSS), and fixed-size placeholder containers for ads or embeds before they load.
4Step-by-Step Breakdown
Performance, Measured The Way Users Feel It. Core Web Vitals are three specific metrics Google selected to approximate real user-perceived experience: how fast the main content appears, how responsive the page feels to interact with, and how much it visually jumps around while loading. They're a confirmed, if modest, ranking factor.
LCP: Largest Contentful Paint. LCP measures how long it takes the largest visible element (usually a hero image or main heading) to render. It approximates 'when does this page feel loaded' from a real user's perspective, far better than older, more technical metrics like plain load time.
LCP Threshold. What is the 'Good' threshold for Largest Contentful Paint (LCP)?
- →1 second or less
- →2.5 seconds or less
- →5 seconds or less
INP: Interaction To Next Paint. INP measures how long the page takes to visually respond after a user interaction — a click, a tap, a keypress — across the entire page visit, replacing the older First Input Delay metric with a more comprehensive, whole-session measurement of interactivity.
INP Measurement Scope. How does INP differ from its predecessor metric, First Input Delay (FID), in what it measures?
- →They measure exactly the same thing under a new name
- →INP measures responsiveness across the entire session, not just the very first interaction
- →INP measures initial page load time instead of interactivity
CLS: Cumulative Layout Shift. CLS measures unexpected visual movement — a button shifting down right as a user is about to tap it, usually caused by images or ads loading without reserved space. It's scored as a unitless value based on how much content moved and how large the shift was.
Preventing Layout Shift. What's the most common cause of poor CLS scores, and the standard fix?
- →A slow server response time; fixed by faster hosting
- →Images/embeds loading without reserved space; fixed by declaring width/height
- →Excessive JavaScript; fixed by removing all scripts
Core Web Vitals Mastered. You now understand all three Core Web Vitals — loading speed via LCP, responsiveness via INP, and visual stability via CLS — and their passing thresholds, giving you a concrete, user-centered performance framework beyond generic load-time metrics.
Preload The LCP Image. Preloading the largest contentful paint image directly improves your LCP score.
Level Up 🚀
Advanced cheat sheets, SEO tricks, and interview prep for this topic.
Browser Support
Fully supported.
Fully supported.
Fully supported.
Fully supported.
Accessibility (A11y)
1Layout Stability (CLS) Directly Benefits Motor-Impaired And Low-Vision Users
Unexpected content shifts are especially disruptive for users with limited fine motor control or who are zoomed in and navigating a smaller effective viewport, making CLS both a performance and an accessibility concern.
SEO Implications
- 1
Core Web Vitals Are A Confirmed, Though Modest, Google Ranking Factor
They're one of many ranking signals and generally act as a tie-breaker among otherwise similarly relevant results rather than a dominant factor, but consistently poor scores can measurably affect visibility.
- 2
Field Data (Real User Measurement) Is What Actually Counts For Ranking, Not Lab Data
Google uses aggregated real-user Chrome data (the Chrome User Experience Report) for ranking purposes, not synthetic Lighthouse lab scores — a page can pass in Lighthouse but still fail in the field on slower real devices and networks.
Best Practices
Optimize For The Real-User (Field) Data In Search Console, Not Just Lab Scores
Lighthouse lab tests run under controlled, often best-case conditions; actual ranking impact depends on the aggregated real-world Chrome User Experience Report data, which better reflects your actual user base's devices and networks.
Always Reserve Explicit Space For Images And Embeds Before They Load
This single practice — width/height attributes or CSS aspect-ratio — eliminates the most common cause of poor CLS scores with minimal implementation effort.
Frequent Bugs
A page scores well in Lighthouse but Search Console reports poor Core Web Vitals for real users.
Lighthouse uses synthetic lab conditions; optimize based on real-user field data from the Chrome User Experience Report instead, which reflects actual device and network diversity.
Users report content jumping around while a page loads, especially on slower connections.
Add explicit width/height (or CSS aspect-ratio) to images and reserve fixed-size space for ads or embeds before they load, addressing CLS directly.
Real-World Examples
LCP Image Optimization
A hero image identified as the LCP element, optimized with preloading and modern format compression.
<link rel="preload" as="image" href="/hero.webp" fetchpriority="high">
<img src="/hero.webp" width="1200" height="600" alt="...">