From kilobytes to LCP
LCP is the moment the biggest thing in the viewport finishes rendering. For an image, web.dev splits that time into four parts: server response, resource load delay (how long before the browser even requests the image), download time, and render delay. Compression shrinks only the download part, but on phones it’s often the largest. Play with the numbers:
- Server response 455 ms
- Load delay 85 ms
- Image download 983 ms
- Render 80 ms
Estimated LCP 1.60 s: good. On this connection the image must be about 1885 KB or less to finish inside 2.5 s.
fetchpriority="high" and not lazy-loading the hero matter as much as bytes.Checklist
- Right dimensions. Serve roughly the displayed width × device pixel ratio, via
srcsetandsizes. Use the resizer to make each width. - Modern format. AVIF or WebP with a JPEG fallback in
<picture>. See WebP vs AVIF. - Sensible quality. 70–80 for photos; check with the compare slider in the compressor.
- Discoverable hero. Put the LCP image in the HTML as an
<img>, not a CSS background or a JS-injected element, and addfetchpriority="high". - No lazy hero.
loading="lazy"on everything below the fold, never on the LCP image. - Reserve space.
widthandheightattributes (or CSSaspect-ratio) stop layout shift as images arrive.
Check your image markup
Paste the <img> or <picture> HTML for your hero or product images (or the “Properly size images” lines from a Lighthouse report). An AI reviewer lists concrete fixes for LCP and CLS. Only the text you paste is sent. No images, no URLs fetched.
Sources: web.dev articles “Largest Contentful Paint (LCP)”, “Optimize LCP” and “Optimize Cumulative Layout Shift”. The calculator is a simplified model for intuition; measure real pages with PageSpeed Insights or the Chrome UX Report.