Cookie Consent by Free Privacy Policy Generator LCP Subparts – We’re Finally Getting a Breakdown of What Is Slowing Things Down - Chris Lever

LCP Subparts – We’re Finally Getting a Breakdown of What Is Slowing Things Down

LCP Subparts – We’re Finally Getting a Breakdown of What Is Slowing Things Down

Largest Contentful Paint has always been one of the hardest Core Web Vitals to diagnose and fix. It is a chained metric, meaning multiple factors contribute to the final LCP time. You could spend weeks optimising images only to find out the real problem is a slow server, delayed JavaScript execution, or the way the browser discovers the LCP element.

For the last few years, really, all we had was a single LCP value. That number told us the end result but did not explain where the delay was happening. Now, with LCP subparts, we finally get a breakdown of what is slowing things down. This makes it possible to fix the real issue instead of wasting time on optimisations that will not move the needle.

For those of us in technical SEO, this changes how we communicate LCP issues to clients and developers. If you have ever had a developer push back on an LCP recommendation or a client assume that optimising images should be enough, this update gives you the data to show exactly where the problem is and why their LCP is still slow.

Why LCP Is So Difficult to Fix

LCP measures how long it takes for the most important content on a page, usually an image or a large text block, to appear. Unlike First Contentful Paint, which only measures when something becomes visible, LCP waits for several processes to complete.

  • The server must start responding
  • The browser must find the LCP element
  • The browser must start downloading the LCP resource
  • The LCP resource must finish downloading
  • The LCP resource must appear on the screen

If any of these steps are slow, LCP suffers. The problem is that, before LCP subparts, we had no way of knowing which step was causing the issue.

The Four LCP Subparts and What They Tell Us

Google now breaks LCP down into four measurable subparts, but only for image-based LCPs. Since images are responsible for most slow LCP cases, this breakdown is an important step forward.

1, Time to First Byte (TTFB)

This measures the time between the request for the LCP image and when the browser receives the first byte of data. If this is slow, the problem is happening before the browser even starts downloading the image.

Common causes:

  • Slow server response times
  • No CDN in place, leading to high latency
  • Redirect chains adding unnecessary delays

Fixing this means looking at server-side optimisations. A good CDN can reduce latency, and caching strategies can speed up responses. Redirect chains should be minimised, and database queries should be optimised to avoid slow backend processing.

2, Resource Load Delay

This is the time between when the browser discovers the LCP image and when it starts downloading it. If this is slow, the browser is taking too long to locate the image.

Common causes:

  • The LCP image is loaded via JavaScript instead of being in the HTML
  • The browser is busy processing other resources before it finds the image
  • The LCP image is lazy-loaded without proper preloading

A common mistake is assuming that image optimisation alone will improve LCP. If the browser is not finding the LCP image early enough, reducing file size will not help. The best fix is to make sure the LCP image is in the initial HTML and not hidden inside JavaScript. Preloading the image using <link rel=”preload”> can also give the browser a head start.

3, Resource Load Duration

This is the actual time taken to download the LCP image once the browser starts fetching it. If this is slow, the problem is with the image file itself.

Common causes:

  • Large, uncompressed image files
  • Using outdated formats like PNG or JPG instead of WebP or AVIF
  • No responsive images, causing large files to load on mobile

Switching to modern image formats and using responsive images can make a significant difference. Enabling Brotli or gzip compression also helps reduce the amount of data transferred.

4, Element Render Delay

This measures the time between when the image is downloaded and when it actually appears on the screen. If this is slow, something is blocking rendering.

Common causes:

  • JavaScript execution delaying when the browser can render images
  • CSS blocking the image from appearing sooner
  • Layout shifts forcing the image to be repositioned

If everything else looks good but LCP is still slow, JavaScript and CSS are likely getting in the way. Reducing unnecessary JavaScript execution, deferring non-critical scripts, and ensuring CSS loads efficiently can help bring this number down.

How to Get Your LCP Subparts Data

Instead of relying on Lighthouse reports or guessing, you can now pull real-world LCP subpart data directly from the Chrome User Experience Report API.

Python Example

 

JavaScript Example (Node.js)

LCP has always been a difficult metric to fix because it depends on multiple factors, from server speed to JavaScript execution. LCP subparts finally give us clear, actionable data that tells us exactly where the problem is. A massive shoutout to Barry Pollard at Google for bringing this to us.

Instead of blindly optimising images or making changes that might not help, we can now target the specific bottleneck, whether it is TTFB, resource load delay, image size, or rendering issues.

For anyone working on Core Web Vitals, this is a major step forward. If you are serious about improving LCP, start analysing your subpart data. It will save you hours of trial and error and make it easier to communicate LCP issues to both developers and stakeholders.

Read Google’s latest blog on subparts – https://developer.chrome.com/blog/crux-2025-02

Comments:

Leave a Reply

Your email address will not be published. Required fields are marked *