Guide

Core Web Vitals explained: LCP, INP, and CLS

Google uses Core Web Vitals to quantify how real visitors experience your pages: how fast the main content appears, how quickly the page responds to taps and clicks, and whether layout jumps around while loading. These three metrics feed Search Console reports, Lighthouse audits, and — indirectly — how much organic traffic and ad revenue a content site can earn. This guide explains what each metric captures, the thresholds Google considers "good," and fixes that work on static sites and heavy web apps alike.

Why Core Web Vitals matter

Lab tools like Lighthouse run in a controlled browser and give you a snapshot. Core Web Vitals are different: they come from the Chrome User Experience Report (CrUX), aggregated from real Chrome sessions (with privacy safeguards). Google evaluates your site at the 75th percentile — if at least 75% of page loads meet the "good" threshold for each metric, that URL passes.

Passing is not a magic ranking button, but failing badly correlates with higher bounce rates, lower ad viewability, and weaker SEO on competitive queries. For publishers monetizing with display ads, slow LCP means fewer impressions load before the user leaves; high CLS pushes ad slots (and CTAs) under the user's thumb at the wrong moment. Performance is part of the product — the same philosophy behind building for end-user utility first, not developer convenience.

The three metrics at a glance

Metric Measures Good Needs work Poor
LCP Largest Contentful Paint — when the biggest visible element renders ≤ 2.5 s 2.5–4.0 s > 4.0 s
INP Interaction to Next Paint — responsiveness to input (replaced FID in 2024) ≤ 200 ms 200–500 ms > 500 ms
CLS Cumulative Layout Shift — unexpected visual movement ≤ 0.1 0.1–0.25 > 0.25

INP replaced First Input Delay (FID) as a Core Web Vital. FID only measured the delay before the browser could start handling the first interaction; INP tracks latency across all interactions until leave, which better reflects sluggish SPAs and long main-thread tasks.

Largest Contentful Paint (LCP)

LCP marks when the largest above-the-fold element finishes rendering — usually a hero image, a large text block, or a video poster. It stops updating after user input or when the page goes to background, so it reflects perceived load speed, not total page weight.

Common LCP culprits

Quick wins

Preconnect to your font and CDN origins (rel="preconnect"), preload the LCP image if it is predictable, and compress HTML at the edge. On content sites, the LCP element is often the headline plus lead paragraph — keep that markup in the initial HTML response, not behind a React effect.

Interaction to Next Paint (INP)

INP measures the latency from a user interaction (click, tap, key press) until the browser paints the next frame showing visual feedback. High INP feels like "the site is frozen" even when LCP looked fine.

What drives bad INP

Wallet connect flows and in-browser games are especially sensitive: signing popups plus animation loops plus analytics can stack. If you ship interactive checkout like our accept Solana payments guide, keep the pay button handler thin — defer verification polling off the critical path.

Cumulative Layout Shift (CLS)

CLS sums unexpected layout movement during the page lifetime. User-initiated shifts (opening a menu you clicked) do not count; an ad slot expanding and pushing the "Buy" button down does.

Typical CLS sources

Display-ad monetization and CLS pull in opposite directions unless you design for it from the start: stable article column width, ad slots with min-height, and no late-loading widgets above the fold. That tradeoff is worth planning before you paste ad tags into every template.

How to measure Core Web Vitals

Field data (what Google uses)

Lab data (for debugging)

Lighthouse in Chrome DevTools or CI gives reproducible scores but often pessimistic INP on dev machines. Use lab runs to test fixes; use field data to confirm real users improved. Test mobile with 4x CPU slowdown — desktop fiber hides main-thread sins.

A practical optimization workflow

Static content sites have an advantage: HTML arrives ready to read. Our Garden Dice build log documents choices like pre-rendered OG images and schema markup — the same mindset applies here: ship HTML that works before JavaScript, keep bundles small, and measure after deploy.

Checklist for content publishers

Related reading