How to fix Largest Contentful Paint

LCP is usually a too-large hero image or a late font. Shrink the bytes, start the request earlier, and do not lazy-load the first paint.

Last updated:

Largest Contentful Paint is the time until the largest visible content (usually a hero image or headline) finishes painting. Fix it by making that resource smaller and requesting it sooner. On most marketing sites the LCP element is an image that is too wide, the wrong format, or lazy-loaded.

Typical LCP causes

  • A 3000px JPEG used as a hero
  • The hero marked loading="lazy"
  • A display font that blocks text LCP
  • No preconnect to the image or font host
  • Slow TTFB from an uncached origin (DNS will not fully fix this)

What PicPerf Turbulence changes

Eligible <img> URLs go through PicPerf (modern formats, width hints). The first images in the document are not given lazy-load. Missing width/height attributes are filled in (helps CLS, sometimes LCP stability). Google Fonts are preloaded; Adobe Fonts can be self-hosted at the edge. Transformed HTML is cached so repeat TTFB is an edge hit.

For the no-code path, see Core Web Vitals without code. For numbers, see the research note.

Frequently asked questions

  • Make the LCP element smaller and start it earlier. Compress and resize the hero image, serve AVIF or WebP when smaller, preload or self-host the LCP font, and avoid delaying the image with lazy-load. PicPerf Turbulence does the image and font parts automatically from DNS.

  • It often helps when LCP is an image: URLs go through PicPerf, widths are hinted, the first images are not lazy-loaded, and fonts start earlier. It will not fix LCP that is a slow server-rendered text block waiting on TTFB.

Related guides

PicPerf Turbulence rewrites every HTML page at the edge. No code changes.

Start a 14-day Turbulence trial