Guide

What Is Lazy Loading and How Does It Help Your Website?

Lazy loading is a technique where images, videos, and other media are not loaded until they’re actually needed — typically when the visitor scrolls close enough to see them. Instead of downloading every image on a page the moment someone lands on it, the browser only loads what’s visible in the viewport, then fetches additional content as the user scrolls down.

This matters because images are usually the heaviest part of a web page. A long blog post or product listing page might contain 30 or 40 images. Without lazy loading, all of them are downloaded immediately, even if the visitor only reads the first screen before leaving. With lazy loading, only the top few images are fetched upfront, dramatically reducing initial page weight and speeding up the all-important first load.

How Lazy Loading Works Technically

The simplest modern implementation requires just one HTML attribute: “loading=”lazy”” on an <img> or <iframe> tag. All major browsers now support this natively, with no JavaScript required. When the browser sees this attribute, it skips downloading the resource immediately and instead monitors the scroll position. When the element gets within a defined distance of the viewport (the “lazy load threshold”, usually a few hundred pixels), the browser fetches it.

For older browsers or more advanced use cases, the JavaScript Intersection Observer API provides a reliable way to implement the same pattern. Libraries like Lazysizes have been popular for years, though native browser support has largely made them unnecessary for basic image lazy loading. For videos, the recommended approach is to defer the <iframe> or <video> element until interaction, often showing a static poster image with a play button overlay.

What Should and Shouldn’t Be Lazy Loaded

Lazy loading is ideal for images and embeds that are below the fold — content a visitor has to scroll to see. However, you should never lazy load your LCP element (the largest visible image or content block when the page first loads). Lazy loading your hero image will delay it from loading and directly worsen your Largest Contentful Paint score, which is a Core Web Vital and a Google ranking signal.

As a rule, mark above-the-fold images with “loading=”eager”” (or simply omit the lazy attribute) and consider adding a “fetchpriority=”high”” attribute to your primary hero image so the browser fetches it as a top priority. Apply “loading=”lazy”” to everything else. WordPress 5.5 and later adds the lazy attribute automatically to most images, but it’s worth checking that it hasn’t been inadvertently applied to your hero.

The Impact of Lazy Loading on Performance Metrics

When implemented correctly, lazy loading typically reduces initial page weight by 30–70% on image-heavy pages. This translates to faster Time to Interactive (TTI) and lower data usage for visitors on metered mobile connections. It can also reduce hosting bandwidth costs, as images that a visitor never scrolls to are never transferred.

The key metrics to track after implementing lazy loading are your PageSpeed Insights score, your LCP time (which should improve as the browser focuses bandwidth on above-fold images), and your total bytes downloaded on first load. Chrome DevTools’ Network panel lets you filter by “Img” and see exactly which images are loading on page open versus being deferred.

FAQs

Common questions.

Does lazy loading affect SEO?
No, native lazy loading with the “loading=”lazy”” attribute is fully compatible with Googlebot, which crawls pages using a modern Chromium-based renderer and handles lazy loading correctly. Older JavaScript-based lazy loaders could sometimes hide content from crawlers, but that concern doesn’t apply to the native attribute.
Should I lazy load images above the fold?
No. Above-the-fold images — especially your LCP element — should load immediately. Applying lazy loading to above-fold images delays them and worsens your LCP score. Only apply “loading=”lazy”” to images that are below the initial viewport.
Does WordPress support lazy loading out of the box?
Yes. Since WordPress 5.5 (released in 2020), WordPress automatically adds “loading=”lazy”” to most images. However, it’s worth verifying that your hero or featured image hasn’t been given this attribute, and that your theme is outputting the correct “fetchpriority=”high”” on the LCP image.
Related guides

More on web design & ux.

Want a hand putting this into practice?

Book a free, no-obligation consultation with a Norwich-based specialist.

Book a free consultation
Get started

Let's put your business in a better light.

Book a free, no-pressure consultation. We'll talk through your goals and tell you honestly what we'd do — whether you work with us or not.

  1. 01
    Tell us a bitFill in the form — two minutes, tops.
  2. 02
    We'll call you backWithin one working day, no pressure.
  3. 03
    Get a clear planHonest advice and a fixed quote.

Free · No obligation · We reply within one working day

Book a free consultation