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.

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
- Compress and correctly size the LCP image, serving a resolution appropriate to the actual device rather than one file for everyone.
- Preload the LCP resource explicitly with a fetchpriority hint, so the browser fetches it before lower-priority assets.
- Eliminate render-blocking resources ahead of the LCP element wherever possible.
- Improve server response time through caching, a CDN, or reducing backend processing on the critical request path.


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.
