Core Web Vitals Thresholds
Core Web Vitals use defined thresholds to classify real-world page experience as good, needs improvement, or poor. The main metrics are LCP for loading, INP for responsiveness, and CLS for visual stability.
Largest Contentful Paint (LCP) measures loading performance by recording when the largest relevant content element becomes rendered in the viewport. A good result is at most 2.5 seconds, while values above 4.0 seconds are poor.
Interaction to Next Paint (INP) measures responsiveness across a page's user interactions. A good INP is at most 200 milliseconds; values above 500 milliseconds are poor. INP replaced First Input Delay (FID) as a Core Web Vital in 2024.
Cumulative Layout Shift (CLS) measures unexpected visual movement during a page's lifetime. A good CLS is at most 0.1, while values above 0.25 are poor. Lower CLS means the layout remains more stable while users interact with the page.
The thresholds describe user experience rather than merely laboratory performance. Core Web Vitals are commonly evaluated using field data, and the classification is based on the distribution of measurements rather than a single synthetic test run.
Key points
- LCP: good ≤ 2.5 s; poor > 4.0 s.
- INP: good ≤ 200 ms; poor > 500 ms.
- CLS: good ≤ 0.1; poor > 0.25.
- The middle range between good and poor is classified as needs improvement.
- INP measures interaction responsiveness and replaced FID as a Core Web Vital in 2024.
Interview questions
What are the current Core Web Vitals and their good thresholds?
The three Core Web Vitals are LCP, INP, and CLS. Good LCP is 2.5 seconds or less, good INP is 200 milliseconds or less, and good CLS is 0.1 or less. LCP represents loading performance, INP represents responsiveness, and CLS represents visual stability.
What happens when a Core Web Vital falls between the good and poor thresholds?
It is classified as needs improvement. For example, an LCP greater than 2.5 seconds but no more than 4 seconds is in that middle range. This distinction helps teams identify pages that do not meet the good target without treating them as the worst category.
Why did INP replace FID?
FID captured only the delay associated with a page's first user interaction. INP evaluates interaction latency more broadly, considering interactions throughout the page's lifetime. This makes INP a better representation of sustained responsiveness during real use.
How would you explain Core Web Vitals thresholds to a product team?
I would describe them as standardized boundaries for three aspects of user experience: loading, responsiveness, and visual stability. The good targets are LCP at or below 2.5 seconds, INP at or below 200 milliseconds, and CLS at or below 0.1. I would also distinguish field measurements from a single lab test because real-user data can reveal behavior that a controlled test misses.
A page has LCP 3.1 s, INP 150 ms, and CLS 0.04. How would you classify the three metrics?
The LCP is in the needs-improvement range because it is above 2.5 seconds but no more than 4 seconds. The INP is good because 150 milliseconds is at or below 200 milliseconds. The CLS is also good because 0.04 is at or below 0.1.