Shwetank Ojha
Core Web VitalsIntermediate

Largest Contentful Paint

Largest Contentful Paint is a Core Web Vital measuring how long it takes for the largest visible element on a page, usually a hero image or main heading, to finish rendering, with 2.5 seconds or under counting as a good score at the 75th percentile.

19 April 20262 min read
Largest Contentful Paint: how long the biggest visible element on a page takes to render
TL;DR. Largest Contentful Paint measures how long the biggest visible element on a page, typically a hero image, video poster frame, or large heading, takes to finish rendering, with 2.5 seconds or under counting as good at the 75th percentile of real visits. It remains the hardest Core Web Vital to pass in practice: field data shows only around 55 to 59 percent of mobile origins currently clear that bar, well behind the pass rates for the other two vitals.

What is Largest Contentful Paint?

Largest Contentful Paint identifies the single largest element visible within the browser viewport, without scrolling, and times how long it takes from navigation start until that element finishes rendering. On most pages this element is a hero image or a large block of heading text; on a video landing page it's often the poster frame. LCP approximates the moment a visitor perceives the page as actually loaded, rather than just technically responding.

Key highlights

  • The threshold has held steady since LCP's introduction in 2020: 2.5 seconds or under is good, 2.5 to 4 seconds needs improvement, and anything past 4 seconds is poor, all evaluated at the 75th percentile over a rolling 28-day window of real-user data.
  • PageSpeed Matters' 2026 field-data analysis puts mobile LCP pass rates around 55 to 59 percent, meaningfully behind INP's roughly 74 percent and CLS's roughly 72 percent pass rate on the same traffic.
  • The 75th percentile rule is unforgiving by design: optimizing for a typical fast visit while ignoring the slower quarter of real traffic will not pass the metric, no matter how good the median looks.
LCP score thresholds: 2.5 seconds or under is good, 2.5 to 4 seconds needs improvement, past 4 seconds is poor

What usually causes a slow LCP

  • An oversized or uncompressed hero image, often served at desktop resolution to mobile visitors who never needed it.
  • Render-blocking CSS or JavaScript that delays the browser from even starting to paint the page.
  • A slow server response time, since nothing else on the page can render until the initial HTML document actually arrives.
  • Third-party scripts, ad networks, chat widgets, analytics tags, competing for bandwidth and main-thread time during the critical loading window.

Fixing a slow LCP

  1. Compress and correctly size the LCP image, serving a resolution appropriate to the actual device rather than one file for everyone.
  2. Preload the LCP resource explicitly with a fetchpriority hint, so the browser fetches it before lower-priority assets.
  3. Eliminate render-blocking resources ahead of the LCP element wherever possible.
  4. Improve server response time through caching, a CDN, or reducing backend processing on the critical request path.
Largest Contentful Paint: candidate elements
Largest Contentful Paint: optimization checklist

Frequently asked questions

What counts as a good LCP score?

2.5 seconds or under, measured at the 75th percentile of real visits. Between 2.5 and 4 seconds needs improvement, and past 4 seconds is poor.

Why is LCP the hardest Core Web Vital to pass?

Because it depends on the slowest-loading resource on the page, usually a large image or video frame, which is more sensitive to network conditions and server response time than interaction or layout metrics are.

Does the LCP element change between page loads?

It can, especially on pages with dynamic content like carousels or lazy-loaded sections above the fold, which is why testing across multiple real loads matters more than checking a single lab result.

Real-world example

An e-commerce product page's LCP element was a large hero image served without dimensions from an uncompressed source file. Adding explicit width and height attributes, converting the image to WebP, and preloading it as a priority resource brought LCP from 4.1 seconds down to 2.1 seconds at the 75th percentile, moving the page from the Poor bucket into Good. (Illustrative example, not a documented case.)

SO

Shwetank Ojha

SEO & AIO Strategist

Helping businesses dominate search results through data-driven SEO strategies, AI-powered optimization, and content systems that compound growth.