Skip to content

Glossary LCP

What Is LCP?

Definition

Largest Contentful Paint (LCP) measures how long the largest content element visible without scrolling takes to render. Google rates it good up to 2.5 seconds, measured at the 75th percentile of real visits over the past 28 days.

A tower crane lowering a large precast concrete panel on a building site — beside the title LCP
The big piece is set; the rest is still arriving
On this page 6
  1. What LCP actually measures
  2. The thresholds and why the 75th percentile counts
  3. The four sub-parts it breaks into
  4. The most common causes of a poor LCP
  5. What to actually do
  6. Common mistakes
In brief

Which elements enter the calculation and why it is rarely the one you assume, the four sub-parts the metric breaks into, why lab and field scores disagree, and what to touch first when the value will not come down.

A tower crane lowering a large precast concrete panel on a building site — beside the title LCP
The big piece is set; the rest is still arriving

What LCP actually measures

Largest Contentful Paint measures the moment the largest visible content element finishes rendering. The clock starts when the user begins loading the page and stops at that one element, not at the last thing to arrive.

Google counts only a fixed set of candidates: <img> images, images inside an <svg>, the poster frame of a <video>, any element carrying a CSS background image, and block elements containing text. The browser keeps noting the largest candidate as it paints, and the value locks in as soon as the user first interacts.

That has a practical consequence people rarely expect: the element setting your LCP is seldom the one you assume. On a product page it is usually the main photo, in an article the headline or the lead image, on a video homepage the poster frame. Look it up before optimising rather than guessing.

Two questions get mixed up here. One is how long the whole page takes to load, which is the territory of page speed in general. The other is when the visitor sees something they recognise as the page, and that is what LCP measures. A site can keep pulling scripts through Google Tag Manager for several more seconds without moving the value, as long as the main element is already painted.

That distinction explains why LCP entered Core Web Vitals rather than a total-load metric. What it tries to capture is perception, not the browser's workload. For traffic arriving from search, the moment the page looks usable weighs more than the moment it stops working.

The thresholds and why the 75th percentile counts

Google sets three bands: up to 2.5 seconds LCP counts as good, between 2.5 and 4.0 seconds it needs improvement, above 4.0 seconds it is poor. The thresholds are the same for mobile and desktop, though the actual values are collected separately.

The part most often misread is the aggregation. It is not an average but the 75th percentile of all visits over the past 28 days: the value three out of four loads stay below. A mean hides slow users behind fast ones. The 75th percentile forces the fourth-worst case to still be usable.

That is why a site can feel quick in the office and fail anyway. The team laptop on fibre sits in the 20th percentile, not the 75th. The numbers that count come from the Chrome User Experience Report, gathered from real browsers, and show up in Google Search Console or PageSpeed Insights.

The fourth-worst load is what gets assessed, not the average one

The four sub-parts it breaks into

LCP is not an opaque number. It breaks into four consecutive sub-parts, and knowing which one dominates tells you exactly where the work sits.

  1. Time to first byte: how long the server takes to start responding.
  2. Resource load delay: the gap between the first byte and the moment the browser even requests the LCP element's image or font.
  3. Resource load duration: how long that download takes.
  4. Element render delay: the time between having the resource and actually painting it, usually blocked by CSS or JavaScript.

On most sites measured, the first two sub-parts account for the bulk of the total. That shifts the work away from the image and towards the server and the load order, which is technical SEO rather than design.

The last two sub-parts are the ones most often mistaken for an image problem. If render delay dominates, the cause sits in the stylesheet or a blocking script, not in the file. Swapping the JPEG for WebP then moves nothing, and that is the most common reason a team decides the metric is broken.

This diagnosis belongs to the technical side of on-page SEO and overlaps with the crawler's work: what holds up the human browser usually holds up the robot too, and on a tight crawl budget that shows in indexing.

The most common causes of a poor LCP

The same four or five causes come back in audit after audit.

  • Lazy loading on the hero image. A blanket loading="lazy" across every image also hits the one setting your LCP, and the browser then requests it late on purpose.
  • Slow server with no caching. If the first byte lands after a second, 1.5 remain for everything else.
  • Render-blocking CSS and JavaScript. The resource is there and the browser is not allowed to paint it.
  • Client-side rendering. The page arrives empty and the content shows up once the JavaScript has run.
  • Unsized, uncompressed images. A three-megabyte JPEG takes as long as it takes, however good the connection.

Lazy loading deserves its own explanation, because it is the most frequent cause and the easiest to fix. The loading="lazy" attribute tells the browser not to download an image until the user scrolls near it. For everything below the first screen that is a clear win: it saves data and frees bandwidth for what is actually visible.

The trouble starts when the CMS applies it to every image by default, hero image included. The browser then stops requesting the very file that sets the LCP early and waits to learn where it lands in the layout. In a template using responsive design that decision comes late, and the value gets worse without anyone touching the content. The rule of thumb: lazy load every image except the first visible one, which should also carry fetchpriority="high".

What to actually do

Order matters: identify the element first, measure which sub-part dominates second, and only then change anything.

  • Remove loading="lazy" from the LCP element and give it fetchpriority="high" so the browser asks for it sooner.
  • Preload the image or font that sets the LCP if the browser discovers it late because it lives in CSS.
  • Serve the image in a modern format at the size it actually occupies, with width and height declared.
  • Cut time to first byte with page caching, a delivery network, and less work per request on the server.
  • Take CSS and JavaScript that the first screen does not need out of the critical path.

After each change, wait. Field data is computed over 28 days, so a genuine improvement takes weeks to show up fully in Search Console, even when a lab test shows it at once.

It helps to separate what gets measured from what gets decided. LCP is a technical KPI: it says how long something takes, not whether the page convinces. A landing page that loads in two seconds and misses the search intent still will not convert, and no millisecond fixes that. So speed work is planned alongside CRO, not instead of it.

Whether the change worked shows in two readings together. Field data in Search Console confirms the actual assessment; a heatmap or metrics from web analytics show whether behaviour really changed, looking at bounce rate and dwell time before and after.

Common mistakes

  • Optimising an image that is not the LCP element, then wondering why the value will not move.
  • Treating a tool's lab score as reality; the assessment runs on real user data.
  • Looking only at desktop when most visits arrive on mobile, where mobile-first indexing decides.
  • Applying lazy loading to every image as a blanket rule, the first one included.
  • Re-measuring the next day and drawing conclusions from a window that still holds 27 days of old data.

One last misunderstanding, costlier than it looks: treating LCP as a grade you have to pass. The bands are not an exam, they are a description. Going from 4.2 to 3.8 seconds improves the experience for half your visitors even while the label still reads "needs improvement", and in an e-commerce shop that shows in conversion long before the report changes colour.

Manuel Riveiro Rodriguez CEO & Digital Strategist

A technical audit covers this and everything else in one pass.

Request an audit

Frequently asked

Which element sets the LCP on my page?

The largest from a fixed set of visible candidates: images, images inside an SVG, a video's poster frame, elements with a CSS background image, and text blocks. Which one it is cannot be inferred from the design. PageSpeed Insights and the browser's performance panel point it out explicitly.

Why is my lab score good and my field score bad?

Because they measure different things. A lab test simulates a single load under fixed conditions. Field data collects real visits with their devices and networks and aggregates them to the 75th percentile over 28 days. The lab test is for debugging, not for knowing how you are assessed.

How long until an improvement shows?

In the lab, immediately. In field data, weeks: the window covers 28 days, so right after the change the value still carries the old behaviour. Measuring the next day and concluding it did nothing is a misreading, not a result.

Does LCP affect rankings?

It belongs to the page experience signals Google uses as a factor. That is one factor among many, with modest weight next to content relevance. An excellent LCP does not rescue a page that misses the search intent. A poor one can cost positions between otherwise equivalent results.

Does lazy loading help LCP?

Yes, but never on the LCP element itself. Deferring images below the first screen frees bandwidth and helps. Applying it to the hero image delays exactly what is being measured. The rule of thumb is simple: lazy load everything except the first visible image.

Sources

  1. web.dev, "Largest Contentful Paint (LCP)": Google's reference documentation on which elements count as candidates, the 2.5 and 4.0 second thresholds, and the four sub-parts the metric breaks into.
  2. Google Search Central, "Core Web Vitals and page experience": confirms the assessment uses the 75th percentile of real user data and places the metrics within the page experience signals.
  3. Chrome User Experience Report: the source of the field data, with the rolling 28-day window that explains why an improvement takes weeks to show.