Technical diagram showing the breakdown of LCP, CLS, and INP into their measurable subpartsDetailed guide

Core Web Vitals Technical Guide: LCP, CLS, and INP Broken Down

View contents

Core Web Vitals Technical Guide: LCP, CLS, and INP Broken Down

Introduction

Knowing that the LCP threshold is 2.5 seconds doesn't tell you what to fix when your page exceeds it. This guide breaks each Core Web Vital down into its measurable technical sub-components—the same ones Chrome DevTools and the Lighthouse report use—so you can diagnose the root cause instead of guessing. The UXR SEO Analyzer reports these three metrics in its "Performance" tab, but this technical breakdown is what lets you decide which guide in our Performance Technical Hub to apply first.

Each Core Web Vital is measured differently—LCP and INP are timing metrics, CLS is a unitless movement score—so a single generic fix rarely improves all three at once. Treating each subpart as its own diagnostic question is what separates targeted optimization from guesswork.

LCP: Four Measurable Subparts

According to Chrome's performance insights documentation, total Largest Contentful Paint time breaks down into four subparts. Ideally, most of the LCP time should be spent loading resources, not sitting in delays:

Subpart What it measures
TTFB From when the user initiates loading until the browser receives the first byte of the HTML
Resource load delay The time between TTFB and when the browser starts loading the LCP resource (0 if the element doesn't require a resource, e.g. a text node with a system font)
Resource load duration How long the LCP resource itself takes to load (0 if it doesn't require a resource load)
Element render delay The time between the resource finishing its load and the LCP element rendering fully

The target is an LCP of 2.5 seconds or better, reducing each phase—especially the delay phases, which add no value for the user. A slow LCP with high TTFB points at the server; a high load delay usually means the resource wasn't discovered early (a missing <link rel="preload">, or the resource hidden behind JavaScript).

CLS: The Layout Shift Formula

Unlike LCP and INP, CLS doesn't measure time—it measures visual movement. Each layout shift score is calculated as:

Layout Shift Score = Impact Fraction × Distance Fraction

Impact Fraction: percentage of the viewport affected by the shift
Distance Fraction: how far elements moved (as % of the viewport)

Example: an element covering 50% of the viewport (impact fraction = 0.5) that moves 25% of the viewport height (distance fraction = 0.25) produces a score of 0.5 × 0.25 = 0.125.

Layout shifts caused by user interaction, or occurring within 500ms of a user input, don't count toward CLS. CSS transform animations also don't trigger a layout shift, since they don't affect document flow.

INP: Three Interaction Subparts

INP also breaks down into three subparts, measured on the page's slowest interaction:

Subpart What it indicates when high
Input delay The interaction was delayed by other main thread work—the interaction itself may not be the direct cause
Processing duration The interaction's event handler was the direct cause of the slow INP
Presentation delay There was a rendering delay in displaying the result of the interaction after the event handler finished running

Chrome DevTools recommends focusing on reducing the slowest phase, and trying several different interactions while recording a trace to understand what contributes most to a page's INP. Enabling CPU throttling in DevTools helps diagnose slow interactions as they would appear on less powerful devices.

Common Diagnosis Mistakes

These are the most frequent mistakes when interpreting a Core Web Vitals breakdown:

Optimizing the wrong LCP phase

It's common to spend hours compressing an image (reducing resource load duration) when the real problem is render delay—for example, because the LCP element is hidden behind a web font that hasn't loaded yet, or because JavaScript must run before the browser can paint the element.

Confusing cumulative CLS with a single event

The CLS score a tool reports is the sum of all qualifying layout shifts during the page session (grouped into session windows), not a single event. A high score can come from many small shifts rather than one large one.

Optimizing INP by looking only at the average

INP is calculated on the slowest interaction of the user's session (or close to the highest percentile in field aggregates), not the average of all interactions. A single slow interaction—like opening a menu with a heavy listener—can define the whole page's INP even if everything else responds instantly.

Lab Data vs. Field Data

The LCP and INP breakdowns shown in Chrome DevTools' Performance panel come from lab data: a single page load under controlled conditions. Field data—reported by CrUX and Search Console—aggregates thousands of real sessions across varied devices and networks. A lab breakdown is ideal for debugging a specific cause; field data is what determines whether your page meets the "Good" threshold for 75% of real users, which is the criterion Google uses for ranking.

How These Breakdowns Connect to Our Guides

Reference Thresholds

Metric Good Needs Improvement Poor
LCP ≤ 2.5s 2.5s - 4.0s > 4.0s
CLS ≤ 0.1 0.1 - 0.25 > 0.25
INP ≤ 200ms 200ms - 500ms > 500ms

A Practical Diagnosis Example

Suppose a product page reports an LCP of 4.2 seconds—in the "Poor" zone. The breakdown shows: TTFB 300ms, resource load delay 2100ms, load duration 900ms, render delay 900ms. TTFB is fine; the obvious problem is the 2.1-second load delay, nearly half the total time.

That pattern almost always means the browser didn't discover the product image until late—typically because it's loaded via JavaScript after hydration, or because a blocking web font delayed parsing of the CSS that references it. The fix isn't compressing the image (that would only shrink the 900ms load duration); it's moving discovery earlier with a <link rel="preload"> in the <head>, or rendering the image in the initial HTML instead of injecting it with JavaScript.

How to Measure Each Breakdown

Chrome DevTools' Performance panel shows the LCP and INP breakdown directly on the timeline marker when you record a trace. The web-vitals JavaScript library exposes these same sub-components in production through its attribution API, letting you send the breakdown to your analytics system instead of just the final number.

Frequently Asked Questions

Why is my LCP slow if the resource downloads quickly?

Check the load delay and render delay. A resource that downloads quickly but is discovered late—because it's hidden behind JavaScript or missing a preload—still produces a slow LCP.

Can CLS be negative?

No. The score is always positive or zero; it accumulates over the page's lifetime within the session windows defined by the CLS algorithm.

How do I know if my slow INP is a JavaScript problem or a rendering problem?

The breakdown tells you directly: high processing duration points at your code; high presentation delay points at the rendering work that follows (style, layout, paint).

Do these breakdowns apply the same way on mobile and desktop?

The subparts are the same, but the numbers usually aren't. Mobile devices typically show higher input delay and processing duration because of slower CPUs, and higher TTFB on cellular networks. Always diagnose and test on the device class your real users use most, not just desktop.

References

  1. Chrome Developers - LCP breakdown
  2. Chrome Developers - INP breakdown
  3. web.dev - Cumulative Layout Shift (CLS)
  4. Chrome Developers - CrUX methodology: metrics

Related articles

Category hub

Hub

Performance Technical Hub: Complete Web Optimization Guide

Curated index of our technical performance guides: critical CSS, JavaScript, server response, and blocking resources.

In the same category

Introduction

Lcp Explained

Largest Contentful Paint (LCP) is one of Google's Core Web Vitals—a set of metrics that measure real-world user experience on your website

Introduction

Cls Explained

Cumulative Layout Shift (CLS) is one of Google's Core Web Vitals—a set of metrics that measure real-world user experience on your website

Introduction

Fcp Explained

First Contentful Paint (FCP) measures the time from when a page starts loading to when any part of the page's content is rendered on the screen

Other topics

Hub

Performance Seo Hub

Performance is a critical ranking factor and directly impacts user experience