Tutorial · images · Published 2026-08-16 · 3 min read

Preload the hero image

Preload the hero image for a faster LCP, and learn when fetchpriority or font preload beats an image link preload.

The single biggest LCP win on a content page is making the hero image start downloading before the CSS and JavaScript finishes parsing. A normal <img> is discovered in order; a link rel="preload" in the head starts the fetch earlier, and where the hero is a CSS background-image, preload is the only way to start it before the stylesheet.

Why preload wins

The browser discovers an <img> during parsing, after the stylesheet and script nodes that precede it. On a rich page, the hero can lose 300 to 900 ms before its GET starts. A preload hint in the <head> declares the hero first, so the request fires in parallel with the HTML itself.

SetupFirst hero bytes start
Plain <img> after styles/scriptsAfter the break in the stream
link rel="preload" in headAt the discovery of the link node
CSS background-image + no preloadAfter the stylesheet arrives

The LCP candidate rules

Google scores the LCP of the largest visible image. For the hero:

  1. Preload exactly one image with the image type and the as="image" hint, the LCP image, not three.
  2. Make sure the preloaded URL is the one the browser will actually use. If your responsive srcset picks a 800px variant but you preloaded the 1200px original, the browser downloads the wrong weight and LCP does not move.
  3. Preload the same URL your srcset would choose on the widest common viewport, or use imagesrcset to preload with matching sizes.
<link rel="preload" as="image" href="/hero-1600.webp"
      imagesrcset="/hero-1600.webp 1600w, /hero-800.webp 800w"
      imagesizes="(max-width: 900px) 100vw, 1600px">

The exceptions

<img fetchpriority="high" decoding="async"
     src="hero-1600.webp"
     width="1600" height="900" alt="Example hero">

Measure before and after

Test with a WebPageTest or Lighthouse run on a throttled mobile profile, then A/B the preload:

  1. Record LCP with and without the link preload.
  2. If LCP does not move, look at what the browser actually requested: the start time of the hero request tells the story.
  3. When a preload helps, the image load no longer sits at the end of the critical waterfall; the same critical rendering path order starts with the hero.

When to involve a professional

If preloading the hero moved the LCP line but the whole page still fails the metric because other images or fonts preload before it (pushing the hero request down the queue), you have a priority-order puzzle, not a one-line fix. A performance engineer can reorder the head and value the fetchpriority matrix across pages.

Need a website built, fixed, optimised, migrated or replaced?

This technical resource is written by CSMBAC, a small design and development studio. If you would rather hand the problem to a professional, the website service page explains how we build enquiry-ready websites.

Explore website services