concept Delivery & performance
Core Web Vitals: LCP, INP and CLS
Core Web Vitals measure loading, responsiveness and visual stability through LCP, INP and CLS. Field assessment uses eligible observations and the 75th percentile, not one favorable test.
What it means
Largest Contentful Paint (LCP) is a loading milestone concerning the largest eligible visible content element. Interaction to Next Paint (INP) describes interaction responsiveness across the observed visit under its measurement rules. Cumulative Layout Shift (CLS) describes layout instability with a unitless score.
They answer different questions: when important visible content appears, how responsive interactions are and how stable the layout is. A page can perform well in one dimension and poorly in another. The example below keeps those dimensions separate rather than producing one combined score.
Try it
Example: inspect the synthetic baseline, then change LCP (ms) from 2200 to 5000. Read which label changes and why. Select Compare with baseline to show the baseline and current outcomes together. Editing an input clears that comparison; Reset restores the starting inputs, errors and comparison state. No real website is tested or changed.
Classify three web-vitals values
Change one condition and inspect the computed result, its cause, and the model boundary.
Threshold classification of sample values, not a real-user 75th percentile or WCAG score.
Compare LCP 2200ms, INP 180ms and CLS 0.080 independently; field guidance uses distributions and eligibility rules.
| Input | Supplied value |
|---|---|
| LCP (ms) | 2200 |
| INP (ms) | 180 |
| CLS × 1000 | 80 |
Synthetic local learning example. No account, real network, server, filesystem, credential, command or production change is accessed.
About this model
Threshold classification of sample values, not a real-user 75th percentile or WCAG score.
These are bounded teaching rules. Actual behavior needs the linked subject specifications and independent observations. The examples are not live checks.
LCP good; INP good; CLS good. Compare LCP 2200ms, INP 180ms and CLS 0.080 independently; field guidance uses distributions and eligibility rules.
Keep INP (ms) at 180 and CLS × 1000 at 80. Only LCP changes, so you can attribute the changed classification to that input crossing its boundary.
Reset restores LCP to 2200 ms, INP to 180 ms and CLS × 1000 to 80, removes input errors and clears the comparison. It preserves your independent choices to open or close FAQ answers and About this model.
How it works
The classifier first interprets each input in its own units, then compares it with that metric’s boundaries. LCP and INP are entered in milliseconds. CLS has no time unit; this interface takes CLS × 1000, so an input of 80 becomes 0.080 before it is explained to you.
| Metric | Good | Needs improvement | Poor |
|---|---|---|---|
| LCP | ≤ 2500 ms | above 2500 and ≤ 4000 ms | above 4000 ms |
| INP | ≤ 200 ms | above 200 and ≤ 500 ms | above 500 ms |
| CLS, unscaled | ≤ 0.100 | above 0.100 and ≤ 0.250 | above 0.250 |
Equality matters. Values of 2500 ms, 200 ms and CLS 0.100 are still good. Values of 4000 ms, 500 ms and CLS 0.250 are still needs improvement; poor begins strictly above those boundaries. Each comparison stands on its own. Adding milliseconds to a unitless score, or letting one good label compensate for another poor label, would lose that distinction.
Field assessment adds a separate step: obtain eligible observations and evaluate the 75th percentile for each metric within the relevant device class. The percentile describes where roughly three quarters of those observations fall; it is not the average and cannot be calculated from this scene’s single supplied value. Threshold classification and evidence collection answer different questions.
Worked example
The synthetic baseline is LCP = 2200 ms, INP = 180 ms and CLS × 1000 = 80, meaning CLS = 0.080. These are teaching inputs, not captured production observations.
The intermediate comparisons explain the outcome: 2200 is below the LCP good limit of 2500 ms; 180 is below the INP good limit of 200 ms; and 0.080 is below the CLS good limit of 0.100. Each independent comparison therefore returns good. No visitor distribution has been evaluated, so the three good sample labels do not establish a field assessment.
What changes when the condition changes
Change LCP (ms) to 5000 while leaving INP at 180 and CLS × 1000 at 80.
LCP poor; INP good; CLS good. Compare LCP 5000ms, INP 180ms and CLS 0.080 independently; field guidance uses distributions and eligibility rules.
The LCP value has moved from below the good boundary to above the 4000 ms poor boundary. That changes only its classification: the other two inputs have not changed, so their labels remain good. Good responsiveness and visual stability do not cancel a poor loading value. Editing the number demonstrates this classification rule; it does not make a real page slower.
In practice
Before interpreting a report, record what was measured: the page or scope, device class, collection method, observation population and collection period. Keep a controlled lab result separate from a field percentile. This makes it possible to distinguish a changed measurement context from a changed experience.
Use a poor metric to choose what to investigate, not to guess a fix. Seek diagnostic evidence tied to the affected loading milestone, interaction or layout instability. A threshold label identifies a category; it does not identify the responsible resource or code.
Stop short of a diagnosis if the value’s origin, units or observation scope are unknown. Do not change hosting, caching or production code solely because this scene shows a poor label. This page explains interpretation, not a deployment procedure.
Limits and unknowns
This scene is a local Example, not a live check. It classifies the numbers you enter; it does not observe your website, browser, visitors or deployment. It cannot establish a real-user 75th percentile, diagnose a cause, predict the effect of a fix or award a WCAG score. Successful task completion and accessibility require their own evidence.
The input ranges are 1–30000 ms for LCP, 1–10000 ms for INP and 0–5000 for CLS × 1000. These are teaching-interface limits, not definitions of which values can occur on the web. An empty, nonnumeric or out-of-range input is invalid: no calculated outcome applies until you correct it or use Reset, and comparison is unavailable while it is invalid.
Valid numbers receive threshold labels even when their measurement origin is unknown. That does not resolve the unknown site-level conclusion. Without JavaScript, the initial example remains readable, but the interactive controls are inactive.
What to carry forward
Read each metric as an answer to a different performance question, not as a substitute for the others. A threshold label tells you how a value compares with guidance; its measurement context tells you whether it supports a claim about your visitors. When that context is missing, establish the evidence before choosing a fix.
Frequently asked questions
Editorial questions, answered from the sources listed for this article.
Does LCP wait for every page resource to finish?
No. LCP concerns the largest eligible visible content element, not completion of every page resource or all network activity. Do not use an LCP value as proof that every resource has finished loading.
Can I replace INP with the duration of the first click?
No. INP represents interaction latency across the observed visit under its measurement rules. Timing only the first click can omit later interactions, so that duration is not necessarily the visit’s INP. Keep a selected interaction timing labeled as such.
What does a CLS input of 100 mean in this scene?
It means CLS 0.100: divide the scene’s input by 1,000. CLS is unitless, so this is neither 100 milliseconds nor a percentage. A scaled input of 100 is exactly the upper good boundary, and the scene still classifies it as good.
Can one good lab run prove good field Core Web Vitals?
No. If you have only a good lab run, report it as a lab result, not as proof of good field Core Web Vitals. Field claims need representative eligible real-user observations and the relevant percentile. When those observations are unavailable, the field conclusion remains unknown; a favorable synthetic run does not fill that gap.
Sources & model boundaries
Primary references used for this explanation. The interactive example is an educational model, not a live check.
- web.dev: Web Vitals
Core Web Vitals and field assessment. Different metrics and 75th-percentile field evaluation are not one synthetic score
Checked .
- web.dev: Largest Contentful Paint
Definition and good/poor thresholds. LCP loading milestone; 2.5/4.0-second boundaries
Checked .
- web.dev: Interaction to Next Paint
Definition and thresholds. INP interaction responsiveness; 200/500-ms boundaries
Checked .
- web.dev: Cumulative Layout Shift
Definition and thresholds. Unitless layout-shift score; 0.1/0.25 boundaries
Checked .