What Is LCP (Largest Contentful Paint)? Thresholds, Causes, and Fixes
Largest Contentful Paint measures how long the main content of a page takes to appear. Learn the thresholds, what element counts, the four parts of LCP time, the most common causes of a slow LCP, and how to measure it from real visitors.
Short answer: Largest Contentful Paint is the time from navigation to the moment the largest image or text block in the viewport is rendered. It is one of the three Core Web Vitals. Google's guidance is 2.5 seconds or less for a good experience, measured at the 75th percentile of real visits. On most pages the LCP element is a hero image or a headline.
Table of Contents
- What LCP Measures
- Thresholds
- The Four Parts of LCP
- Common Causes of Slow LCP
- Measuring It Properly
- Key Takeaways
What LCP Measures
It answers the visitor's question "has the page shown up yet?". The browser tracks the largest element painted in the visible area and reports the time of the last such candidate before the user interacts.
Elements that can be the LCP element include images, video poster images, elements with a CSS background image, and blocks of text.
Thresholds
| LCP | Rating |
|---|---|
| 2.5 seconds or less | Good |
| 2.5 to 4 seconds | Needs improvement |
| Over 4 seconds | Poor |
The assessment uses the 75th percentile: three quarters of visits should be at or under the threshold. An average hides the slow tail, which is where visitors on older phones and weaker networks sit.
The Four Parts of LCP
LCP time is the sum of four phases. Knowing which is large tells you what to fix.
| Phase | What it is | Typical fix |
|---|---|---|
| Time to first byte | Server responds with HTML | Caching, CDN, faster backend (TTFB) |
| Resource load delay | Gap before the browser starts fetching the LCP resource | Make the image discoverable in HTML; preload; do not lazy-load it |
| Resource load duration | Download time for the resource | Smaller, modern-format image; CDN |
| Element render delay | Gap between download and paint | Less render-blocking CSS and JavaScript |
On many sites the largest part is not the download. It is the delay before the browser even learns the image exists.
Common Causes of Slow LCP
- The hero image is lazy-loaded.
loading="lazy"on an above-the-fold image delays it. - The image is set in CSS or injected by JavaScript, so the browser's preload scanner cannot find it early.
- The image is far larger than displayed. A 3000-pixel image in a 400-pixel slot (image optimisation).
- Slow server response. Nothing can start until the HTML arrives.
- Client-side rendering. The page is blank until JavaScript downloads, runs, and fetches data.
- Render-blocking scripts and stylesheets in the head.
- Web fonts blocking text. If the LCP element is a headline, text hidden while a font loads delays it.
- Third-party scripts competing for bandwidth and the main thread (auditing them).
- A carousel as the hero, which loads several large images at once (carousels).
A quick fix for a hero image:
<img src="/hero-800.webp" width="800" height="450"
fetchpriority="high" alt="Product dashboard">No loading="lazy", explicit dimensions, and a high fetch priority.
Measuring It Properly
There are two kinds of measurement.
- Lab tests (Lighthouse and similar) run on one simulated device. Good for debugging. They do not represent your visitors.
- Field data comes from real visits. It reflects actual devices, networks, and pages.
Field data is what matters, and it often disagrees with the lab. A page scoring well on a developer's laptop can be poor at the 75th percentile on mid-range Android phones over mobile data (low-end devices).
Break field data down by:
- Page. One slow template hides behind a site-wide figure.
- Device type.
- Country or region.
DeepSync's performance report collects LCP, INP, CLS, and related timings from real sessions and shows them by page, so a slow page can be found and then watched in a recording to see what the visitor experienced (performance). Web vitals are part of the Pro plan.
Then connect speed to outcomes: compare conversion for sessions with good and poor LCP on the same page (vitals and conversion). Keep in mind slow sessions also differ in device and network, so treat the gap as a guide to priority, not an exact forecast.
Find your LCP element first
Open the page in browser developer tools and check which element is reported as LCP. Teams often optimise the wrong image.
Key Takeaways
- LCP is when the main content appears; aim for 2.5 seconds at the 75th percentile.
- It has four parts; find which one is large.
- Never lazy-load the LCP image.
- Measure from real visitors, by page and device.
Conclusion
LCP is the visitor's first impression of speed. Find the element, find the slow phase, and fix that one thing.
Frequently Asked Questions
Related articles
Stay in the loop
Get the latest insights on product analytics and user behavior delivered to your inbox.



