Skip to content
GDPR compliant. Hosted in DE.
14-day free trial →
Four subparts, not one numberTarget split 40 / under 10 / 40 / under 10Field data over lab values
Performance 14 min read 24 Jul 2026

LCP Subparts: Where Your Load Time Actually Goes

LCP is not one number but four subparts: TTFB, resource load delay, load duration and render delay. How to break it down and prioritise what actually moves it.

X

XICTRAQ Team

XICTRAQ

Core Web VitalsLCPPerformanceWeb VitalsMonitoring
8%
of LCP goes on the image download for origins with poor LCP — 350 of 4,270 ms (web.dev, Common misconceptions about how to optimize LCP)
1,290 ms
median resource load delay for origins with poor LCP — almost four times the download itself (web.dev, Common misconceptions about how to optimize LCP)
20%
is the combined ceiling for both delay shares — around 40% each goes to TTFB and load duration (web.dev, Optimize Largest Contentful Paint)
LCP broken down: four subparts, one numberThe web.dev target split versus the median of real origins with poor LCPTTFBResource load delayResource load durationElement render delayLCP threshold 2,500 msTarget splitweb.dev guidance~40% · 1,000 ms~40% · 1,000 ms2,500 msPoor LCPMedian across origins53% · 2,270 ms30% · 1,290 ms4,270 ms01,0002,0003,0004,000ms1TTFB2,270 msTarget ~40% · Actual 53%2Resource Load Delay1,290 msTarget <10% · Actual 30%3Resource Load Duration350 msTarget ~40% · Actual 8%4Element Render Delay360 msTarget <10% · Actual 8%The image download is the smallest itemResource load delay, at 1,290 ms, is almost four times the download (350 ms) - and architecturally avoidableDelay : download ≈ 4 : 1Target split: web.dev - Optimize Largest Contentful Paint · Median per subpart (CrUX, origins with poor LCP): web.dev - Common misconceptions about how to optimize LCP
Largest Contentful Paint is reported as a single number: 2.4 seconds, 3.8 seconds, 4.2 seconds. That number says nothing about where the time went. In reality, LCP is the sum of four subparts: time to first byte, resource load delay, resource load duration and element render delay (web.dev, Optimize Largest Contentful Paint). Only this breakdown answers the question that matters for prioritisation: which measure will actually move the value? This article breaks a real LCP value into its four sections, places Google's target split alongside it, and shows why the common reflex of "making the image smaller" targets the smallest item of all.

LCP is a sum, not a measurement

The threshold is well known: sites should strive for an LCP of 2.5 seconds or less for at least 75% of page visits (web.dev, Optimize Largest Contentful Paint). Around 40% of sites in the Chrome UX Report miss this recommended threshold (web.dev, The most effective ways to improve Core Web Vitals). What the target keeps quiet about is the composition. Two pages with an identical LCP of 3.8 seconds can have completely different problems and therefore need completely different measures.

The device split shows how widespread the issue is: in the 2025 Web Almanac, 74% of desktop pages and 62% of mobile pages achieve a good LCP, while poor values occur on mobile at 13% — nearly double the desktop rate of 7% (HTTP Archive, Web Almanac 2025, Performance). That distribution only tells you how many pages have a problem, though, not which one.

The specification supplies the building blocks for the answer. The LargestContentfulPaint interface exposes loadTime, renderTime, size, url and element, among others (W3C, Largest Contentful Paint, Working Draft of 13 July 2026). Combined with navigation and resource timing data, these timestamps let you reconstruct when the browser received the first byte of the document, when it requested the LCP resource, when that download finished and when the element finally rendered.

Chrome explicitly names these four sections LCP breakdown in its performance insights and states the rule concisely: reduce the time of each phase as much as possible, especially the delay phases; most of the LCP time should be spent loading resources, not sitting in delays (Chrome for Developers, LCP breakdown). That rule is the core of the whole topic.

Why the breakdown is needed at all

The overall value is a symptom, not a diagnosis. An LCP of 3.8 seconds might consist of 2.9 seconds of server time and 0.9 seconds of everything else — or of 0.7 seconds of server time and 3.1 seconds of waiting before the browser even requests the hero image. In the first case image optimisation is ineffective; in the second it is ineffective too, because the download is not too slow, its start is too late. The overview of all Core Web Vitals places LCP in the wider context. This article is strictly about the breakdown as a prioritisation tool.

The four subparts in detail

The four sections run back to back: each begins where the previous one ends, and their sum makes up the LCP value. The definitions below come from Google's documentation (web.dev, Optimize Largest Contentful Paint; Chrome for Developers, LCP breakdown).

Time to First Byte (TTFB)

The time from when the user initiates loading the page until the browser receives the first byte of the HTML response. Includes DNS resolution, connection setup, the TLS handshake, redirects, server processing and network latency. Target share: around 40% of LCP.

Resource load delay

The time between TTFB and the moment the browser starts loading the LCP resource. This subpart is pure waiting: the resource has not been requested yet, even though it could have been. It is zero when no resource needs loading. Target share: under 10%.

Resource load duration

The duration of the download of the LCP resource itself. Here — and only here — do image format, compression, dimensions and transfer speed have an effect. With a text LCP this subpart is zero. Target share: around 40%.

Element render delay

The time between the resource download finishing and the LCP element rendering fully. This is where blocking stylesheets, late fonts, JavaScript hydration and blocked main thread time show up. Target share: under 10%.

Two of these four sections are waiting time (resource load delay, element render delay), two are work (TTFB, resource load duration). This distinction carries the entire prioritisation: waiting time is waste and can in principle be pushed to near zero. Work can be accelerated, but not abolished.

The target split: 40 / under 10 / 40 / under 10

Google gives concrete target shares of total LCP for the four subparts (web.dev, Optimize Largest Contentful Paint). Converted to the 2,500-millisecond budget, these produce absolute guide values:

SubpartTarget share of LCPAbsolute on a 2,500 ms budgetCharacter
Time to first bytearound 40%around 1,000 msWork — accelerable, bound by physics
Resource load delayunder 10%under 250 msWaiting — architectural, often eliminable
Resource load durationaround 40%around 1,000 msWork — format, compression, bandwidth
Element render delayunder 10%under 250 msWaiting — rendering blockers

Both delay shares combined should therefore stay under 20% of LCP — around 500 milliseconds for both waiting periods together on a 2.5-second budget. Google puts it plainly: the vast majority of the LCP time should be spent loading the HTML document and the LCP source (web.dev, Optimize Largest Contentful Paint). One qualification comes straight from Google itself: these time breakdowns are guidelines, not strict rules (web.dev).

The target split is a diagnostic grid, not a quota

Nobody has to hit exactly 40% TTFB. The value of the split lies in the deviation: if a subpart clearly exceeds its target share, it is the candidate for the next measure. If a subpart sits well below it, there is nothing to gain there — no matter how easy optimising it might be. It is this second case that gets overlooked most often in practice.

What field data shows instead

Google analysed the four subparts across the Chrome UX Report and grouped origins by their LCP rating. The values below are the median across all origins in a group, taken from the 75th percentile of each individual subpart per origin (web.dev, Common misconceptions about how to optimize LCP).

SubpartGood LCPNeeds improvementPoor LCP
TTFB600 ms1,360 ms2,270 ms
Resource load delay350 ms720 ms1,290 ms
Resource load duration160 ms270 ms350 ms
Element render delay230 ms310 ms360 ms
Sum of subpartsaround 1,340 msaround 2,660 msaround 4,270 ms

Work out the shares and the picture flips against the target split. For origins with poor LCP, around 53% falls on TTFB and around 30% on resource load delay — but only around 8% on downloading the LCP resource, which is precisely where most optimisation projects begin (own calculation based on web.dev, Common misconceptions about how to optimize LCP). Google confirms the order of magnitude directly: the majority of origins with poor LCP spend less than 10% of their p75 LCP time downloading the LCP image (web.dev).

A methodological note belongs here: the sum of the four median values is an approximation, not the exact p75 LCP of any page that actually exists. Medians of individual subparts do not add up cleanly to the median of the sum. For the proportions — which is all this article uses them for — the calculation still holds, because the gaps between the subparts are substantial.

The median site with poor LCP spends almost four times as long waiting to start downloading the LCP image as it does actually downloading it, waiting 1.3 seconds between TTFB and the image request.

— web.dev, Common misconceptions about how to optimize LCP (Google)

Why "make the image smaller" is the wrong answer

The reflex is understandable. The LCP element is an image on 76% of mobile pages and 85.3% of desktop pages (HTTP Archive, Web Almanac 2025, Performance). If an image determines the metric, working on the image seems obvious. The subpart arithmetic shows that this conclusion does not hold.

Take the median values of a page with poor LCP — around 4,270 milliseconds — and run four scenarios. For context: an LCP is good up to 2,500 milliseconds, needs improvement up to 4,000 milliseconds, and counts as poor above that (web.dev, Optimize Largest Contentful Paint).

  1. Halve the image size. Resource load duration drops from 350 to 175 milliseconds. New LCP: around 4,095 milliseconds. The value stays in the "poor" category and the improvement amounts to roughly 4%.
  2. Remove the image entirely. Even if the download vanished completely, LCP would only fall to around 3,920 milliseconds — barely out of the "poor" category, but still around 1.4 seconds above the target. The theoretical maximum gain from all image optimisation combined is 350 milliseconds.
  3. Eliminate resource load delay. If the wait before the download disappears, LCP drops from 4,270 to around 2,980 milliseconds — a jump from "poor" to "needs improvement" through one architectural change, without altering a single byte of the image.
  4. Both together. Delay eliminated and image halved: around 2,805 milliseconds. Even that is not enough for a good LCP — because the largest item remains untouched. With TTFB at 2,270 milliseconds, only 230 milliseconds of the 2,500-millisecond budget would be left for everything else.

The calculation is deliberately rough, because the median values come from different distributions. The ranking of the levers does not change because of it, though: for pages with poor LCP, downloading the LCP resource is the smallest of the four items. Optimising there improves precisely the section that already matches the target picture.

The special case that feeds the reflex

There are pages where the image genuinely is the problem: uncompressed shots at original resolution, a multi-megabyte hero image over a mobile connection, an uncompressed image served from a third-party host. On 16% to 18% of pages the LCP image sits on a foreign host (HTTP Archive, Web Almanac 2025, Performance), which forces additional connection setups. Such cases exist — but they become visible as soon as the subparts are available: resource load duration immediately shows whether the image plays any role at all. Incidentally, external hosts in the loading path are not purely a performance topic; which service providers a site embeds also belongs in the register of third-party services for a NIS2 supply chain.

Resource load delay: the subpart that can disappear

This subpart deserves the most attention because it is structurally different from the other three. Google puts the difference precisely: TTFB can be improved, but any improvements are bound by physics — resource load delay, by contrast, can potentially be eliminated and is in practice only bound by your serving architecture (web.dev, Common misconceptions about how to optimize LCP).

Resource load delay is the time during which the browser could be loading the LCP image but is not — because it does not yet know the image exists, or because it has been told the image is unimportant. Both are decisions made by the site, not properties of the network. The typical causes are well measured:

  • The image is not in the HTML. 35% of LCP images have source URLs that are not discoverable in the initial HTML response (web.dev, The most effective ways to improve Core Web Vitals, based on the Web Almanac). The browser's preload scanner cannot request what it cannot see — the image waits until JavaScript or CSS supplies it.
  • The image hides behind data-src. Around 5.9% of mobile pages obscure their LCP image source behind a data-src attribute (HTTP Archive, Web Almanac 2025, Performance). This couples the download inescapably to JavaScript execution.
  • The LCP element is lazy-loaded. 16% to 17% of pages lazy-load their LCP image — a share that has held steady since 2024 (HTTP Archive, Web Almanac 2025, Performance). Google is unusually direct here: the LCP image should not be loaded with loading="lazy", because doing so creates unnecessary resource load delay (web.dev, Optimize Largest Contentful Paint).
  • The image has no priority. fetchpriority="high" is used on 17% of mobile pages with an LCP image, up from 15% the previous year (HTTP Archive, Web Almanac 2025, Performance). Without that hint the browser initially assigns the image a low priority and queues it behind stylesheets and scripts.
  • The image hangs off a request chain. Median LCP rises from 2,150 milliseconds with no upstream dependency to 2,850 milliseconds with two dependencies (web.dev, based on HTTP Archive data). Every link in the chain is waiting time.

The countermeasures are comparatively cheap and carry none of the trade-offs of a server migration: serve the LCP resource as a regular img element with a discoverable src in the HTML, keep loading="lazy" off the LCP element, set fetchpriority="high" on the likely LCP image and — where the image originates in CSS or JavaScript and cannot move into the HTML — pull it forward with link rel="preload" (web.dev, Optimize Largest Contentful Paint). Preload is currently used on just 2.1% to 2.2% of pages (HTTP Archive, Web Almanac 2025, Performance), even though it exists for exactly this case.

Where a plugin or theme sets these attributes, the route runs through its configuration — and that assumes the components in use are known along with their versions. The same inventory list needed for prioritising vulnerability feeds such as EUVD and CVE pays off a second time here.

Lazy loading is not the problem — its reach is

The measurement is unambiguous: sites using browser-level lazy loading had a median p75 LCP of 3,546 milliseconds versus 2,922 milliseconds for sites without — a gap of 624 milliseconds (web.dev, The performance effects of too much lazy loading). In an A/B test, switching lazy loading off on archive pages improved LCP by 13% on desktop and 15% on mobile (web.dev). The resolution costs nothing: skipping lazy loading only for above-the-fold images preserved 51% to 70% of the byte savings while removing the LCP penalty (web.dev). Lazy loading belongs below the fold, not on the LCP element.

TTFB: the largest item with the hardest limit

For origins with poor LCP, TTFB at 2,270 milliseconds is by far the largest single item, around 53% of the total (web.dev, Common misconceptions about how to optimize LCP; own calculation). For origins with good LCP it is 600 milliseconds (web.dev). The gap between the two groups is 1,670 milliseconds — more than the gap across all three remaining subparts combined, which comes to 1,260 milliseconds (own calculation based on web.dev).

That makes TTFB the most important item and simultaneously the most awkward. It contains portions that cannot be optimised away: signal travel time between user and data centre is bounded by the speed of light, the TLS handshake needs round trips, DNS resolution needs at least one query. What can be moved is server processing time, the number of redirects, caching behaviour and geographic distance. The article on systematically reducing server response time covers these levers in detail; the effect of a CDN on delivery distance is frequently the single biggest one.

The uncomfortable consequence of the TTFB figure

If TTFB is 2,270 milliseconds, only 230 milliseconds of the 2,500-millisecond budget remain for load delay, download and rendering combined. That is arithmetically close to unreachable. A page with this TTFB will not achieve a good LCP, regardless of how carefully everything downstream is optimised. This is not discouragement but a prioritisation statement: in that situation, every hour spent on image optimisation is an hour spent at the wrong end.

Element render delay: the remainder nobody measures

The fourth subpart is the least conspicuous and surprisingly stable in field data: 230 milliseconds with good LCP, 310 with needs improvement and 360 milliseconds with poor LCP (web.dev, Common misconceptions about how to optimize LCP). The gap between the best and worst group is only 130 milliseconds — the narrowest spread of all four sections.

On average that makes render delay the smallest lever, but not an irrelevant one. With a text LCP — 23.7% of mobile and 14.4% of desktop pages (HTTP Archive, Web Almanac 2025, Performance) — resource load delay and resource load duration drop out entirely, because no resource needs loading (Chrome for Developers, LCP breakdown). LCP then consists only of TTFB and render delay, and the whole image optimisation debate misses the point. The typical culprits:

  • Render-blocking stylesheets and scripts. As long as a blocking asset is loading, the browser renders nothing — not even the LCP image that finished downloading long ago.
  • Late web fonts. With a text LCP, a font that has not loaded yet delays the rendering of the text directly.
  • Client-side rendering and hydration. If the content only comes into existence through JavaScript, rendering moves behind the execution of the bundle. If the bundle breaks, the content does not render at all — a case for frontend error monitoring. With single-page applications there is the added wrinkle that soft navigations change the measurement itself.
  • A blocked main thread. Long tasks delay rendering in the same way they delay interactions and therefore INP — both metrics share the cause here.

Field data instead of a single lab run

This article's entire argument stands or falls with data quality. A single lab measurement on a developer machine with a fibre connection also produces four subparts — but those of one person, not those of your customers. Holding the target split against such a single value leads systematically to the wrong priorities, because lab measurements do not reflect the TTFB reality of poor networks or the cache states of genuine returning visitors.

The Chrome UX Report illustrates well why field data is structurally different — and where its limits lie. Only users who have enabled usage statistic reporting, sync their browser history, have no sync passphrase set and use a supported platform are included; Chrome on iOS, Android WebView and other Chromium browsers are excluded (Google, Chrome UX Report documentation). In addition, origins and individual pages need a minimum number of visits to be included at all (Google, Chrome UX Report documentation).

CriterionSingle lab measurementField data from real visits
Network and deviceOne configuration, usually the best oneThe distribution your customers actually have
TTFBOften near optimal — short distance, warm cacheIncludes distance, mobile networks and cold starts
Significance per subpartExact for this one run75th percentile across many page views
CoverageEvery page, any time, reproducibleOnly pages with sufficient traffic (Google, CrUX)
Response to regressionsImmediate — hence good for the CI pathDelayed, because a percentile has to build up first

Both data sources have their place, and the differences are covered in depth in the article comparing field and lab data. For subpart prioritisation, though, the order is clear: the decision about which subpart to work on belongs with field data. The check on whether a change worked belongs additionally in the lab. The Lighthouse score alone does not carry that decision, because it rests on a simulated single run.

That is why Web Vitals collection in XICTRAQ starts at the real visit: the tracker measures LCP, CLS and INP in your visitors' browsers, cookieless and without third parties, on the devices and connections that actually occur. Unlike the Chrome UX Report, the distribution comes from your own traffic — with no minimum visitor count and without excluding entire browser populations. How the values come together in the performance tab is visible in the live demo of the dashboard; how to build performance budgets with alerting from them is a topic of its own.

Limits of subpart analysis

The breakdown is a prioritisation tool, not an oracle. Four caveats belong with it honestly:

  • The LCP element changes. The specification provides that whenever a new largest content is found, a new entry is created for it, and the algorithm terminates as soon as scroll or input events occur (W3C, Largest Contentful Paint, Working Draft of 13 July 2026). Which element ends up counting can vary with viewport, consent banner and scrolling behaviour — and so can the composition of the subparts.
  • The subparts are not independent. A high TTFB shifts every subsequent section along the timeline. Reducing TTFB also changes when the preload scanner runs and how priorities play out in the network stack. The four values can be measured separately, but not optimised separately.
  • Aggregated values hide segments. The median across origins describes no real customer. A good overall value can contain a poor mobile cohort. Conversely, for origins with poor LCP the image load duration is only around 20% slower on mobile than on desktop (web.dev, Common misconceptions about how to optimize LCP) — so the large difference between device groups originates elsewhere.
  • The target split is a guideline. Google says so explicitly (web.dev, Optimize Largest Contentful Paint). A page with a 1,200-millisecond LCP, 70% of which falls on TTFB, violates the split and still has a good LCP. The split only becomes interesting once the overall value breaches the threshold.

Bringing the subparts into prioritisation

The practical order follows directly from the numbers and can be summarised as a working pattern:

  1. Get the subparts from field data, not from a single run. Without the split, every measure is guesswork. That holds even when the overall value is green — a subpart close to its limit is the next regression.
  2. Add up the delay shares. If resource load delay and element render delay together exceed 20% of LCP, that is where the first lever sits — regardless of how large the image is. For origins with poor LCP this share sits at around 39% (own calculation based on web.dev, Common misconceptions about how to optimize LCP).
  3. Tackle resource load delay first. In our experience this subpart offers the best effort-to-effect ratio, because it is architectural: make the LCP resource discoverable in the HTML, take lazy loading off the LCP element, set fetchpriority, break up request chains.
  4. Only then TTFB. The largest item, but the most expensive rebuild. The work is still worth it once TTFB consumes more than half the budget — at that point there is usually no other route to the target.
  5. Resource load duration last — unless the measurement says otherwise. If this subpart genuinely accounts for around 40% or more, image optimisation is exactly right. In the field data of poor origins, at around 8%, it is not (web.dev, Common misconceptions about how to optimize LCP; own calculation).

Above all, the breakdown prevents one thing: months of work that measurably moves nothing. Optimising 350 milliseconds of download while 1,290 milliseconds of waiting time stay untouched means working carefully on the smallest item. The four subparts are the cheapest information available about where that work should go instead — and they cost nothing beyond the willingness to measure before optimising.

Sources and studies

This article draws on data and documents from: web.dev — Optimize Largest Contentful Paint (Google; definition of the four subparts, target split of around 40% / under 10% / around 40% / under 10%, the explicit note on their guideline character, the 2.5-second threshold at a minimum of 75% of page visits, recommendations on HTML discoverability, fetchpriority, preload and lazy loading). web.dev — Common misconceptions about how to optimize LCP (Google; median values per subpart by LCP group from the Chrome UX Report: TTFB 600/1,360/2,270 ms, resource load delay 350/720/1,290 ms, resource load duration 160/270/350 ms, element render delay 230/310/360 ms; "less than 10% of their p75 LCP time downloading the LCP image"; "almost four times as long waiting as downloading"; image load duration around 20% slower on mobile than desktop; request chains 2,150 ms to 2,850 ms; the framing of TTFB as bound by physics versus resource load delay as eliminable). Chrome for Developers — LCP breakdown, Performance insights (Google; naming and definition of the four sections, the rule to reduce delays first, zero values for text LCP, the 2.5-second threshold). W3C — Largest Contentful Paint (Working Draft of 13 July 2026, Web Performance Working Group; the LargestContentfulPaint interface with loadTime, renderTime, size, id, url and element; new entry whenever new largest content is found; algorithm termination on scroll or input events). Google — Chrome UX Report (CrUX) documentation (user eligibility criteria, excluded platforms such as Chrome on iOS and Android WebView, origin and page eligibility with a minimum visitor count). HTTP Archive — Web Almanac 2025, Performance chapter (good LCP 74% desktop / 62% mobile, poor LCP 7% / 13%; image as LCP element 85.3% desktop / 76% mobile; text LCP 14.4% / 23.7%; lazy loading of the LCP image 16–17%, data-src 5.9% mobile; fetchpriority="high" 17% mobile versus 15% in 2024; preload 2.1–2.2%; LCP image on a foreign host 16–18%). web.dev — The most effective ways to improve Core Web Vitals (Google; 35% of LCP images not discoverable in the initial HTML response; 40% of sites in the Chrome UX Report miss the LCP threshold). web.dev — The performance effects of too much lazy loading (Google; median p75 LCP of 3,546 ms with versus 2,922 ms without lazy loading; A/B test 13% desktop / 15% mobile; 51–70% byte savings with selective use). All percentage shares per subpart are our own calculations based on the median values cited and are marked as such in the text.

How do I get hold of the four LCP subparts in the first place?
The raw data comes from the browser: the LargestContentfulPaint interface provides loadTime, renderTime, url and element, among others (W3C, Largest Contentful Paint, Working Draft of 13 July 2026); combined with navigation and resource timing, the four sections can be reconstructed from them. In Chrome DevTools the split is directly visible as LCP breakdown (Chrome for Developers). For prioritisation, field measurement across real visits is in our experience more meaningful than a single lab run, because customers' networks and devices typically differ considerably from the development environment.
Do I have to hit the 40 / under 10 / 40 / under 10 target split exactly?
As a rule, no. Google explicitly describes the breakdown as guidelines rather than strict rules (web.dev, Optimize Largest Contentful Paint). It is meant as a diagnostic grid: a subpart clearly exceeding its target share is typically the most rewarding place to start. As long as the overall value stays under 2.5 seconds, the internal distribution normally plays no role in the rating.
So does image optimisation do nothing for LCP?
That would be too sweeping. There are pages where resource load duration genuinely accounts for the largest share — there, image optimisation is the right lever. In field data this tends to be the exception for poor LCP, though: the majority of origins with poor LCP spend less than 10% of their p75 LCP time downloading the LCP image (web.dev, Common misconceptions about how to optimize LCP). The recommendation is therefore not "ignore images" but: measure which subpart dominates first, then decide.
Why is resource load delay considered easier to fix than TTFB?
Because it is different in nature. Google describes TTFB as improvable but bound by physics, whereas resource load delay can potentially be eliminated and is in practice only bound by your own serving architecture (web.dev, Common misconceptions about how to optimize LCP). The usual measures — making the LCP resource discoverable in the HTML, keeping lazy loading off the LCP element, setting fetchpriority — are typically changes to markup and configuration rather than infrastructure. The effort is in our experience considerably lower than rebuilding server delivery.
We have a text LCP. Are the subparts relevant at all then?
Yes, but in reduced form. When no resource needs loading, resource load delay and resource load duration are zero by definition (Chrome for Developers, LCP breakdown). LCP then consists essentially of TTFB and element render delay, which usually simplifies prioritisation considerably: server time and rendering blockers remain as the levers. A text LCP occurs on around 23.7% of mobile and 14.4% of desktop pages (HTTP Archive, Web Almanac 2025, Performance).
Is CrUX data from the Google tools enough for subpart analysis?
For many sites it is a good starting point, but it has known limitations. CrUX only captures users who have enabled usage statistic reporting, sync their history and have no sync passphrase set; Chrome on iOS, Android WebView and other Chromium browsers are missing (Google, Chrome UX Report documentation). In addition, a page needs a minimum number of visits to be included (Google, Chrome UX Report documentation). Your own field measurement in a tracker generally also covers low-traffic pages and the excluded browser populations — the two sources typically complement each other rather than replace one another.
Start in 60 seconds

Let XICTRAQ watch your website.

Permanent free plan available. No credit card, no installation, no hidden fees.