What is a good Core Web Vitals score?
Core Web Vitals are Google's three user-experience metrics: LCP, CLS, and INP. Here are the thresholds that count as good, and what each metric actually measures.
The three metrics and their thresholds
Largest Contentful Paint (LCP) measures loading: how long until the biggest visible element renders. Good is 2.5 seconds or less; over 4 seconds is poor.
Cumulative Layout Shift (CLS) measures visual stability: how much the page jumps around while loading. Good is 0.1 or less; over 0.25 is poor.
Interaction to Next Paint (INP) measures responsiveness: how quickly the page reacts when a visitor taps or clicks. Good is 200ms or less; over 500ms is poor.
Lab data vs. field data
Lab tests (like Lighthouse) load your page in a controlled environment — repeatable, but simulated. Field data (the Chrome UX Report) comes from real visitors over the previous 28 days. Google's page-experience signals use field data, and a page needs to hit the good threshold for 75% of visits to count as passing.
INP in particular only exists as field data — it needs real interactions from real visitors.
Which one to fix first
Fix whichever metric is worst, but know their causes: LCP problems come from slow servers, large images, and render-blocking resources. CLS comes from images and embeds without reserved space. INP comes from heavy JavaScript. They're mostly independent problems with independent fixes.
Common questions
- Do Core Web Vitals affect rankings?
- Yes — they're part of Google's page-experience signals. They are one factor among many; content relevance still dominates.
- What replaced First Input Delay (FID)?
- INP (Interaction to Next Paint) replaced FID as a Core Web Vital in March 2024. INP measures the full latency of interactions, not just input delay.
- Why do lab and field numbers differ?
- Lab tests simulate one device and network; field data aggregates thousands of real visits across devices, networks, and locations. Both are useful — field data is what counts.
Core Web Vitals, TTFB, page weight — with plain-language fixes.
Check your Core Web Vitals →