Largest Contentful Paint (LCP)
Also known as: LCP, largest contentful paint
LCP is the time, measured in seconds, for the largest visible element on a page to render. Part of Google's Core Web Vitals, LCP measures perceived loading speed — when the user feels like the page has 'loaded.' The threshold for 'Good' is ≤ 2.5 seconds; 'Needs Improvement' is 2.5–4.0; 'Poor' is > 4.0. LCP is one of three Core Web Vitals that directly factor into Google ranking.
What LCP actually measures
Google’s algorithm identifies the largest content element visible in the initial viewport — typically a hero image, hero video, large heading, or main copy block — and measures the time from page request start to that element being fully painted.
The metric must be at or below the ‘Good’ threshold for 75% of real user visits (the 75th percentile) for the page to “pass” LCP.
Common LCP elements
- Hero image (most common)
- Hero video poster frame
- Large H1 with custom font
- Main article paragraph (for text-heavy pages)
- Large embedded card / product image
You can identify your LCP element using Chrome DevTools → Performance panel → Web Vitals overlay.
Causes of poor LCP
The four most common:
- Large, unoptimized hero images — multi-megabyte JPEGs served at full resolution on mobile
- Render-blocking CSS/JS — large stylesheets that block rendering until parsed
- Slow TTFB (server response) — origin server takes 1+ second before any bytes arrive
- Client-side rendering of critical content — content that needs JS to appear delays LCP
Optimization tactics
In rough order of impact:
- Preload the LCP image —
<link rel="preload" as="image" href="...">in<head> - Serve modern image formats — AVIF (best), WebP (universally supported)
- Right-size images — responsive
srcsetfor each viewport width - CDN with edge caching — Cloudflare, Fastly, Vercel — reduces TTFB
- Eliminate render-blocking resources — async/defer scripts, critical CSS inline
- Server-side render the LCP element — never have the largest element appear via JS after page load
Measurement sources
- CrUX (Chrome User Experience Report) — 28-day real-user data; this is what Google ranking uses
- PageSpeed Insights — surfaces CrUX data plus lab simulation
- Search Console Core Web Vitals report — aggregated per-URL CrUX
- Lighthouse — lab data only, not used for ranking but useful for debugging
Lab data and field data often disagree. Field (CrUX) wins for SEO purposes.
Resocial perspective
LCP is one of the three CWV metrics our nightly audit watches. Regressions trigger immediate tickets to engineering. Our Technical SEO service treats LCP as a continuously-monitored metric, not a once-a-year audit finding.
- Resocial service →
/services/seo/technical-seo/ - Read on the blog →
/blog/technical-seo-complete-guide/