Most WordPress websites load every image on a page at once, regardless of whether the visitor ever scrolls down far enough to see them. On a page with twenty images, that means the browser is fetching all twenty from the moment someone lands — even if they only read the first three sections and leave. That unnecessary work adds weight to the initial load and slows down the experience for everyone.
Lazy loading changes this by deferring the loading of images and iframes until they’re about to enter the viewer’s screen. Instead of requesting every asset upfront, the browser only loads what’s immediately visible. Everything else waits. The result is a faster initial page load, lower bandwidth usage, and better scores in Core Web Vitals — particularly Largest Contentful Paint and Time to Interactive.
WordPress has had native lazy loading support since version 5.5, and it’s worth understanding both how that works and where it falls short, so you can decide whether additional configuration or a plugin makes sense for your site.
How Lazy Loading Works in WordPress
When WordPress outputs an image inserted via the block editor or added through a theme or plugin, it automatically adds loading="lazy" to the <img> tag. This tells the browser to use its built-in lazy loading behaviour — the browser holds off on fetching the image until it’s within a certain distance of the viewport.
This is handled natively in all modern browsers without any JavaScript. It’s a pure HTML attribute, which means it’s reliable, lightweight, and doesn’t require a plugin to function. As long as you’re running WordPress 5.5 or later (which you almost certainly are), your images already have this attribute applied.
There is one deliberate exception. WordPress skips the loading="lazy" attribute on the first image in the content area. That first image is likely part of your above-the-fold content, and lazy loading it would cause a visible delay — the browser would start fetching it later than it should, which hurts LCP rather than helping it. WordPress makes this call automatically, and it’s the correct behaviour.
What Isn’t Lazy Loaded by Default
Native WordPress lazy loading covers images inserted through the editor, but it doesn’t cover everything. A few areas are commonly missed:
- Iframes — Embedded YouTube videos, Google Maps, and other iframes don’t always receive the lazy loading attribute automatically, depending on how they’re inserted.
- Images added via CSS — Background images set in stylesheets are not HTML img elements, so the loading attribute doesn’t apply to them at all.
- Images added by plugins — Some plugins output images without going through WordPress’s standard image functions, so they may not receive the attribute.
- Older themes — If your theme doesn’t use standard WordPress template functions for images, native lazy loading may not apply.
For most WordPress sites using a modern theme and the block editor, native lazy loading covers the majority of cases. But if your site uses a lot of embedded video or relies on a heavily customised theme, it’s worth testing what’s actually loading when.
How to Check Whether Lazy Loading Is Working
You don’t need a plugin to check this. Open any post or page on your site, right-click on an image that appears below the fold, and choose Inspect. Look at the <img> tag in the HTML panel. If it includes loading="lazy", native lazy loading is active on that image.
You can also use Google PageSpeed Insights to see whether lazy loading is flagged as an opportunity on your site. If PageSpeed shows “Defer offscreen images” as an issue, it means some images below the fold are still being loaded immediately — either because the lazy loading attribute is missing, or because a plugin is overriding the default behaviour.
In Chrome DevTools, you can simulate a slow connection under the Network tab and watch the waterfall as you scroll. Images that only start loading when you scroll toward them are lazy loading correctly.
Improving Lazy Loading with the Performance Lab Plugin
WordPress’s Performance Team maintains the Performance Lab plugin, a suite of experimental performance features that extend what WordPress does natively. Several of these features build on or improve how lazy loading works in practice.
One of the most useful is fetchpriority optimisation. While lazy loading defers low-priority images, the Performance Lab plugin helps WordPress correctly identify and mark the above-the-fold LCP image with fetchpriority="high" — telling the browser to fetch that image as early as possible. This is the counterpart to lazy loading: defer what’s not needed, and prioritise what is.
To use it, install Performance Lab from the WordPress plugin directory, then navigate to Settings > Performance in your dashboard. You’ll see individual modules you can enable selectively. I’d recommend enabling the Image Prioritizer and Speculative Loading modules as a starting point, then checking PageSpeed Insights again after a day or two to see the impact on your scores.
Using a Caching Plugin to Extend Lazy Loading
If your site already uses a caching plugin like LiteSpeed Cache, you may have additional lazy loading options available without installing anything extra. LiteSpeed Cache includes a dedicated lazy load setting under LiteSpeed Cache > Page Optimization > Media. This setting applies lazy loading more broadly, including to images that might not be caught by WordPress’s native implementation.
When using a caching plugin’s lazy load setting alongside WordPress’s native lazy loading, there’s generally no conflict — the plugin either adds the attribute where it’s missing or replaces standard img tags with a JavaScript-powered alternative. The most common trade-off with JavaScript-based lazy loading is that it introduces a small dependency on script execution, whereas native lazy loading requires nothing extra from the browser.
In most setups I work with, enabling the caching plugin’s lazy load option and leaving WordPress’s native setting in place produces the best coverage without meaningful downsides. If you’re also converting your images to WebP and compressing them properly, the combined impact on load time becomes significant.
Common Mistakes to Avoid
- Lazy loading your hero image — If your featured image or hero section appears above the fold, it should load immediately. Applying lazy loading to it will delay the LCP element and hurt your score. WordPress avoids this by default, but some plugins apply lazy loading globally without this exception in place.
- Disabling native lazy loading without a replacement — Some older performance guides suggest disabling WordPress’s lazy loading and using a JavaScript plugin instead. Unless there’s a specific reason, this adds unnecessary complexity.
- Assuming lazy loading fixes all performance issues — Lazy loading addresses offscreen image loading, but it won’t fix large image file sizes, unoptimised code, or slow server response times. It works best as part of a broader approach to improving WordPress speed.
When a Dedicated Lazy Load Plugin Makes Sense
For most WordPress sites, the combination of native lazy loading and a caching plugin’s media settings is sufficient. A dedicated lazy load plugin is worth considering if you have a site with a large number of iframes — particularly embedded videos — or if you’re using a heavily customised theme that outputs images outside of standard WordPress functions.
Plugins like a3 Lazy Load or Flying Scripts extend lazy loading to iframes and can be configured to exclude specific elements. Before installing one, check whether your caching plugin already provides this coverage — many do.
Conclusion
Lazy loading is already active on your WordPress site if you’re running a recent version. The most practical next step is to run your site through PageSpeed Insights via the Veravix guide and check whether offscreen images are flagged — then decide whether your caching plugin’s lazy load setting or the Performance Lab plugin gives you the additional coverage you need.

Etienne Basson works with website systems, SEO-driven site architecture, and technical implementation. He writes practical guides on building, structuring, and optimizing websites for long-term growth.