Core Web Vitals Explained: LCP, CLS, and INP
A clear breakdown of Google's Core Web Vitals metrics, what they measure, and how they impact your search rankings.
Core Web Vitals are a set of three specific metrics that Google uses to evaluate the real-world user experience of a web page. They focus on loading speed, visual stability, and interactivity. Understanding these metrics is essential for anyone who cares about both user experience and search rankings.
Largest Contentful Paint (LCP) measures how long it takes for the largest visible element on the page to finish rendering. This is usually a hero image, a large text block, or a video thumbnail. Google considers an LCP of 2.5 seconds or less to be good. Anything above 4 seconds is rated poor. LCP is the metric that most closely reflects the user's perception of how fast your page loads.
Common causes of slow LCP include large unoptimized images, slow server response times, render-blocking CSS and JavaScript, and client-side rendering that delays content from appearing. To improve LCP, serve images in modern formats, use a CDN, inline critical CSS, and ensure your server responds quickly.
Cumulative Layout Shift (CLS) measures the visual stability of your page. It quantifies how much the visible content shifts around during loading. You have probably experienced this yourself, you start reading an article and then the text jumps down because an ad or image loaded above it. A CLS score of 0.1 or less is considered good.
Layout shifts are caused by images and videos without explicit dimensions, dynamically injected content, web fonts that cause text to reflow, and late-loading third-party embeds. Fix these by always setting width and height on media elements, reserving space for dynamic content, and using font-display: swap or optional for web fonts.
Interaction to Next Paint (INP) replaced First Input Delay in March 2024 as the responsiveness metric. While FID only measured the delay of the first interaction, INP measures the latency of all interactions throughout the entire page lifecycle and reports the worst one. An INP of 200 milliseconds or less is considered good.
Poor INP is usually caused by long-running JavaScript tasks that block the main thread. Heavy event handlers, large DOM updates, and third-party scripts are common culprits. To improve INP, break up long tasks using requestIdleCallback or setTimeout, debounce expensive event handlers, and minimize the amount of JavaScript that runs on each interaction.
These three metrics together give a comprehensive picture of how your page feels to real users. Google incorporates them into its page experience ranking signals, which means poor Core Web Vitals can directly hurt your search visibility.
Tracking these metrics over time is critical. A single measurement can be noisy, but a trend across multiple reports reveals real patterns. Lightbucket tracks all three Core Web Vitals as part of every Lighthouse audit, so you can monitor changes and catch regressions before they impact your rankings.