Performance

Core Web Vitals in plain English: the three numbers that matter

What LCP, INP and CLS actually measure, the thresholds Google uses, how the web is doing, and the fixes that move each number.

Raihan
· Updated 5 November 2026 · 4 min read
On this page 5 sections
  1. 01The three metrics
  2. 02Lab data versus field data
  3. 03How the web is doing
  4. 04What usually fixes each one
  5. 05Check your own site in five minutes

Key takeaways

  • Core Web Vitals measure loading (LCP), responsiveness (INP) and visual stability (CLS) for real visitors.
  • A page passes when at least 75% of visits are good: LCP within 2.5 s, INP within 200 ms, CLS no more than 0.1.
  • Only 48% of mobile sites passed all three in mid-2025. Loading speed (LCP) is the one most sites miss.
  • Google’s assessment uses the last 28 days of real-user data, so fixes take up to four weeks to show.
  • Lighthouse scores are for debugging; the field data in PageSpeed Insights and Search Console is what counts.

Core Web Vitals are Google’s attempt to put numbers on how a page feels. They are worth understanding even if you never think about search rankings, because each one maps to something visitors notice: waiting, lag and things jumping around.

The three metrics#

  • Largest Contentful Paint (LCP) measures loading: how long until the biggest thing in view, usually the hero image or headline, has appeared.
  • Interaction to Next Paint (INP) measures responsiveness: how quickly the page visibly reacts to taps, clicks and key presses, across the whole visit. It replaced First Input Delay as a Core Web Vital on 12 March 2024.
  • Cumulative Layout Shift (CLS) measures stability: how much the content moves unexpectedly while someone is reading or about to tap.
Where “good” ends and “poor” beginsEach metric is assessed at the 75th percentile of real page loads, separately for mobile and desktop.
  • Good
  • Needs improvement
  • Poor
LCP
2.5 s4 s
INP
200 ms500 ms
CLS
0.10.25
Show the data
MetricThresholds
LCPGood ≤ 2.5 s · Poor > 4 s
INPGood ≤ 200 ms · Poor > 500 ms
CLSGood ≤ 0.1 · Poor > 0.25

Source: web.dev — Web Vitals

The 75th percentile matters. Passing does not mean your fastest visit was fast; it means three out of four visits were good. Slow phones and patchy connections count.

Lab data versus field data#

Lab data (Lighthouse)Field data (Chrome UX Report)
Where it comes fromOne simulated load on a throttled deviceReal Chrome users visiting your site
Time windowA single runA rolling 28 days
Measures INP?No, it uses Total Blocking Time as a proxyYes
Used by Google Search?NoYes, when there is enough traffic
Best forFinding and debugging problemsConfirming fixes worked for real people

A green Lighthouse score with failing field data usually means real visitors have slower devices than the test, or something like a cookie banner, chat widget or personalisation runs only for them.

How the web is doing#

Share of mobile websites with good Core Web VitalsOrigins in the Chrome UX Report, July 2025.
Good CLS81%
Good INP77%
Good LCP62%
All three good48%
Show the data
MetricMobile origins
Good CLS81%
Good INP77%
Good LCP62%
All three good48%

Source: HTTP Archive Web Almanac 2025

Desktop does better, at 56% passing all three. On both, LCP is the bottleneck: most sites that fail, fail on loading.

What usually fixes each one#

LCP: get the main content on screen sooner

  • Serve the hero image at the size it is displayed, in WebP or AVIF, and never lazy-load it.
  • Tell the browser it matters with fetchpriority="high".
  • Cache full pages so the server answers in milliseconds, and put a CDN in front of the site.
  • Remove render-blocking CSS and JavaScript that the first screen does not need.
<img src="/hero-1600.avif"
     srcset="/hero-800.avif 800w, /hero-1600.avif 1600w"
     sizes="100vw" width="1600" height="900"
     fetchpriority="high" alt="Our studio at work">

INP: keep the main thread free

  • Audit third-party scripts. Chat, heatmaps and tag managers are the usual cause of slow interactions.
  • Load non-essential widgets after the first interaction or when they scroll into view.
  • Break long JavaScript tasks into smaller pieces so the browser can respond in between.

CLS: reserve space for everything

  • Give every image, video and embed a width and height, or an aspect-ratio.
  • Reserve space for anything injected later: banners, ads, consent prompts.
  • Load web fonts with font-display: swap and a fallback font of similar proportions.
img, video { max-width: 100%; height: auto; }
.video-embed { aspect-ratio: 16 / 9; }

Check your own site in five minutes#

  1. Open PageSpeed Insights and enter your address. The top section, “Discover what your real users are experiencing”, is field data. If it says there is not enough data, use the lab section instead.
  2. In Google Search Console, open the Core Web Vitals report to see which groups of pages fail on mobile and desktop.
  3. In Chrome DevTools, the Performance panel shows live LCP, INP and CLS while you click around.
  4. After a fix, wait 28 days and check the field data again.

Core Web Vitals are one of many signals Google uses. A fast page with the wrong content still loses, so treat them as a floor for experience rather than a ranking trick.

Sources and further reading

  1. Web Vitals — web.dev web.dev
  2. Interaction to Next Paint (INP) — web.dev web.dev
  3. Web Almanac 2025: Performance — HTTP Archive almanac.httparchive.org
  4. PageSpeed Insights pagespeed.web.dev
  5. Core Web Vitals report — Search Console Help support.google.com

Free website check

How does your site measure up?

Run the free check: security, search, accessibility and speed basics in about 20 seconds. No email needed.

Want a person to look? One-off audits from £400, at a fixed fee.

Keep reading

Ready to start?

Let’s build something great together.

Book a free 15-minute consultation. We will listen, ask the right questions and tell you honestly what we would do first.

Prefer email? sales@zenotia.com