Introduction
Core Web Vitals are three user-experience metrics designed to quantify loading, responsiveness, and visual stability. Largest Contentful Paint, or LCP, measures how quickly the main content becomes visible. Interaction to Next Paint, or INP, measures how promptly the page responds after user interaction. Cumulative Layout Shift, or CLS, measures unexpected movement of visible content. Together, they describe different failure modes; a page can load quickly and still feel broken if a button moves or a click takes too long to produce visual feedback.
For current assessment, the recommended good thresholds are LCP at 2.5 seconds or less, INP at 200 milliseconds or less, and CLS at 0.10 or less. The needs-improvement ranges are LCP above 2.5 up to 4.0 seconds, INP above 200 up to 500 milliseconds, and CLS above 0.10 up to 0.25. Results beyond those ranges are poor. These are classification boundaries, not guarantees of satisfaction. A result of 2.51 seconds is technically outside the good LCP range, even though it is close to the boundary.
A useful first step is to record the page, device category, connection conditions, metric value, data source, date range, and percentile. Without these dimensions, a number such as “LCP is 2.8 seconds” is incomplete. The same URL can behave differently on a fast desktop connection and a slower mobile connection, and one test run cannot represent the full distribution of user experiences.

Measuring LCP
LCP identifies the largest image, text block, or other eligible content element visible in the viewport during loading. Its value is the elapsed time from navigation start until that element is rendered. For example, if navigation starts at 0.00 seconds and the largest visible heading is painted at 2.34 seconds, the LCP measurement is 2.34 seconds. If a later image becomes the largest eligible element at 3.10 seconds, the final LCP can become 3.10 seconds instead. The target is therefore the final relevant content presentation, not merely the first visible pixel.
To analyze a slow LCP, separate the total time into major contributors: server response time, resource load delay, resource load duration, and render delay. Suppose a page has 0.70 seconds of response time, 0.45 seconds before the hero image begins loading, 1.20 seconds to download it, and 0.35 seconds of render delay. The approximate LCP is 0.70 + 0.45 + 1.20 + 0.35 = 2.70 seconds. This falls in the needs-improvement range. The arithmetic indicates that removing 0.20 seconds from server response alone would produce approximately 2.50 seconds, while reducing image transfer by 0.50 seconds would produce approximately 2.20 seconds. The better action depends on whether the bottleneck is server processing, request priority, image bytes, or main-thread work.
LCP should be segmented by page template and device class. An article page may have a large headline as its LCP element, while a product page may have a product image. A sitewide average can hide a failing template. Confirm which element was measured before selecting an optimization, because compressing a logo will not help if the measured LCP element is a late-rendered text block delayed by font loading.
Measuring INP
INP measures responsiveness across the visit. It observes qualifying interactions such as clicks, taps, and keyboard actions, measures the delay until the next rendered update, and uses the slowest representative interaction as the page’s INP. The delay includes time when the main thread is busy with tasks such as JavaScript execution, event handling, layout, and rendering. A low first interaction does not prove that the page is responsive if a later menu, filter, or form submission is slow.
Consider three observed interaction latencies of 80, 140, and 420 milliseconds. The slowest observed latency is 420 milliseconds, which is in the needs-improvement range because it is above 200 and no more than 500 milliseconds. If the 420-millisecond interaction comes from opening a filter panel, inspect that interaction’s event handler and the work immediately after it. A long task that occupies the main thread for 300 milliseconds can delay visual feedback even when the network is fast.
INP is different from First Input Delay. First Input Delay measured only the initial input delay before an event handler began, while INP evaluates the interaction’s path to the next paint and reflects responsiveness throughout the visit. In laboratory tools, INP may not be available as a representative real-user distribution because scripted interactions are limited and may not reproduce production behavior. Lighthouse commonly reports Total Blocking Time as a laboratory proxy for responsiveness, but TBT is not the same metric and must not be relabeled as INP.
Measuring CLS
CLS quantifies unexpected visual movement by combining layout-shift scores within session windows. A layout shift occurs when visible content changes position without a user action that reasonably explains it. The score for an individual shift depends on the impacted area and the distance moved, so a small movement affecting a large portion of the viewport can matter more than a large movement affecting a small region. CLS is unitless, not measured in milliseconds.
Suppose a page produces three relevant shift contributions during a session window: 0.04 when an image receives its dimensions, 0.03 when a banner is inserted, and 0.02 when a font change alters line wrapping. The cumulative score is 0.04 + 0.03 + 0.02 = 0.09, which is good. If a later shift of 0.05 occurs within the same qualifying session window, the total becomes 0.14 and moves into needs improvement. Always inspect the shift sources and their timing rather than trying to reduce the score by averaging it with unrelated visits.
Common causes include images or advertisements without reserved dimensions, late-injected promotional content, dynamically inserted consent interfaces, and font swaps that change text geometry. A user-initiated expansion can be legitimate, but content inserted before the user expects it can still create a poor experience. Record the impacted elements, the movement distance, and the trigger. Fixes should reserve space, stabilize component dimensions, and avoid inserting content above existing content after rendering.

Field Data And Laboratory Data
Field data, also called real-user monitoring data, comes from actual visits. It includes variation in devices, browsers, networks, geographic locations, cache states, and user behavior. Public Chrome UX Report data is aggregated and anonymized, while a site’s own RUM implementation can provide more detailed URL and interaction context. Field data is valuable for deciding whether users experience a problem, but it changes as traffic composition changes.
Laboratory data comes from a controlled test run, commonly through tools such as Lighthouse or PageSpeed Insights’ Lighthouse report. The test uses specified hardware emulation, network settings, browser state, and scripted behavior. It is useful for repeatable diagnosis and regression testing. However, one laboratory run is not a population estimate. It can miss a slow third-party script used only in production, a regional server issue, or an interaction that the script never performs.
Core Web Vitals field assessment commonly uses the 75th percentile over an eligible observation period and segment. If 1,000 mobile visits are ordered from fastest to slowest, the 75th-percentile result is near the point below which 75% of visits fall and above which the slowest 25% remain. For LCP, a 75th-percentile value of 2.40 seconds is good; a value of 2.70 seconds is not, even if the mean is 1.90 seconds. Report the percentile, sample size, device segment, URL grouping, and date range together.
Practical Analysis Workflow
Start by establishing a baseline for LCP, INP, and CLS using the same page template, device segment, and collection period. Store both the classification and the numerical value. Next, use field data to identify the user-facing problem and its distribution. A failing mobile 75th percentile deserves a different priority from a small desktop-only tail, especially when mobile traffic is the majority of sessions.
Then reproduce the page in a laboratory environment and inspect the measured element, request waterfall, main-thread tasks, and layout-shift sources. For an LCP of 3.20 seconds, determine whether the largest contribution is server response, image loading, or render delay. For an INP problem, identify the slow interaction and the long task surrounding it. For CLS, capture which element moved and whether space was reserved before content arrived.
After a change, rerun the controlled test under comparable conditions, but do not declare success from that result alone. Monitor field data until the relevant sample is large enough and the same segment can be compared. For example, a laboratory LCP improvement from 3.1 to 2.2 seconds is evidence that the test scenario improved; it is not proof that the mobile 75th-percentile field LCP has moved from 2.8 to 2.4 seconds. Keep a change log so metric movement can be connected to deployment dates and traffic changes.
Common Errors And Summary
The most common error is treating a single score as universal truth. Avoid mixing mobile and desktop results, averages and percentiles, or laboratory proxies and field metrics. Another error is optimizing the wrong element: LCP needs the actual largest content element, INP needs the slow interaction and its processing path, and CLS needs the element that moved. A third error is changing several systems at once, which makes the measured effect difficult to attribute.
Use LCP to quantify main-content loading, INP to quantify interaction responsiveness, and CLS to quantify unexpected visual movement. Use laboratory data for controlled diagnosis and field data for real-user validation. Apply the thresholds consistently: good means LCP no higher than 2.5 seconds, INP no higher than 200 milliseconds, and CLS no higher than 0.10 at the relevant field-data percentile. Every conclusion should state the metric, unit, percentile, segment, source, and observation period.
Before reporting a result, ask five questions: Which page or template was measured? Which users or test conditions were included? Which percentile or aggregation was used? What element or interaction caused the value? Can the result be reproduced and then validated in field data? These questions turn a metric reading into an actionable performance analysis.
Lesson Checkpoint
Review what you learned and get feedback on your work.