means that content such as images or embedded elements is loaded only when it enters the user's visible area, rather than immediately on page load. This reduces the initial amount of data and can improve loading time, especially on long pages with many images.

Correct application is crucial:

  • Images below the visible area can sensibly be lazy loaded.
  • The most important image in the visible area, often the element, should not be lazy loaded.

A common mistake is loading="lazy" on the hero or LCP image. This defers exactly the element that is decisive for a good Largest Contentful Paint (LCP). It is better to prioritise the LCP image with fetchpriority="high" instead and to use lazy loading only for secondary content.

Benefits and pitfalls #

Lazy loading cuts initial page weight and speeds up the first . The classic pitfall: lazy-loading the hero image itself. Everything above the fold should load eagerly — otherwise the largest element appears late and LCP gets worse instead of better. Always reserve width and height so the layout does not shift.

SEO and AI crawler considerations #

renders lazy-loaded content, but simpler often do not execute JavaScript. Native loading="lazy" with a real src attribute stays for all of them; JavaScript-only solutions that swap a data-src can hide images from those bots entirely.