Technical

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:

  1. Large, unoptimized hero images — multi-megabyte JPEGs served at full resolution on mobile
  2. Render-blocking CSS/JS — large stylesheets that block rendering until parsed
  3. Slow TTFB (server response) — origin server takes 1+ second before any bytes arrive
  4. 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 srcset for 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.

Looking for hands-on help with this?

Free SEO audit

60+ dimensions, 48-hour turnaround.

Get a Free SEO Audit

Enterprise RFP

Tailored proposal in 5 business days.

Submit an Enterprise RFP