Blog · WebJi® India

What Is Lazy Load in WordPress?

Quick answer: Lazy loading makes the browser fetch images and iframes only as they approach the viewport. WordPress adds loading="lazy" by itself from version 5.5, which cuts the first load. Keep the hero image eager, because deferring the largest visible image delays LCP instead of helping it.
✓ In business since 2005✓ INR + GST billing✓ 24/7 Email Support — avg reply < 60 min
Small Indian startup team gathered around a laptop discussing their email inbox — what is lazy load in wordpress

What lazy loading does on a WordPress page

Lazy loading tells the browser to fetch an image or iframe only when it approaches the viewport. WordPress has done this by itself since version 5.5, using the native loading="lazy" attribute, so most sites already have it switched on.

  • The browser fetches the first screen immediately and the rest as the visitor scrolls.
  • WordPress adds the attribute only to images that carry width and height, plus iframes.
  • Nothing is removed from the page: the image markup is still there for crawlers.
  • CSS background images are not covered by the native feature.

What lazy loading does to LCP

LCP is the moment the largest visible element finishes loading. Deferring images below the fold protects that number by freeing bandwidth; deferring the hero image does the opposite, because the browser waits before it even requests the element that defines the metric.

WordPress core notes that in-viewport images with the attribute cost well under one percent of LCP in its own Chrome Android experiments, which is why the attribute ships enabled. The risk is layout: core cannot see the rendered page, so a small logo before a large hero can still leave the hero marked lazy.

The fix is one image, not a plugin. Mark the hero eager, give it fetchpriority="high", and preload it if it is a CSS background. Since WordPress 5.9 the first content image is skipped automatically, and wp_omit_loading_attr_threshold changes how many leading images get that exemption.

The native WordPress setup, with no plugin

There is no setting to switch on. The attribute is added at output time to post content, excerpts, text widgets, avatars and template images created through wp_get_attachment_image(). Three filters cover almost every adjustment.

  1. wp_lazy_loading_enabled — return false to stop the attribute for a context, for example template images.
  2. wp_omit_loading_attr_threshold — raise the number of leading images that stay eager.
  3. wp_img_tag_add_loading_attr — change or drop the attribute for one specific image.

Put those in a child theme or a code snippets plugin, never in the parent theme, or the next theme update removes them.

When a lazy load plugin earns its place

A plugin is worth installing for control the core feature does not offer: excluding a hero by CSS class, lazy loading backgrounds from a page builder, and swapping YouTube embeds for a thumbnail that loads the player on click.

ApproachWhat it addsWhen to pick it
WordPress coreNative loading="lazy" on images with dimensions and on iframesDefault for every site
PerfmattersImage and iframe exclusions, viewport threshold, CSS background selectors, YouTube preview thumbnailsA page builder site with a heavy hero or many embeds
WP RocketLazy loading as part of page caching, with exclusions and video facadesA site already buying WP Rocket for caching
a3 Lazy LoadA simple free loader with basic exclusionsA small site that wants one toggle

Run one loader, never two. A theme, an image optimiser and a performance plugin that each defer images will fight, and the visible result is images that stay blank until a second scroll.

Check in DevTools that it worked

You know it worked when the images below the fold have no network request until you scroll, and the hero has one from the start. Three checks prove it.

  1. Right-click a below-the-fold image, choose Inspect, and read the tag. It should show loading="lazy"; the hero should not.
  2. Open the Network tab, filter to Img, tick Disable cache, set throttling to Fast 4G, reload, and scroll. New image requests should appear only as each row enters view.
  3. Open Lighthouse or the Performance panel and read the LCP element. If it is the hero and its request starts late, the hero is still lazy.

PageSpeed Insights uses the same data. “Defer offscreen images” means too little lazy loading; “LCP request discovery” means too much of it in the wrong place.

Fix images that never load or jump

SymptomCauseFix
Images stay blank until a second scrolltwo lazy loaders on one pageDisable all but one, then purge the cache
Content jumps as images arrivewidth and height missingAdd dimensions, or let WordPress backfill them for library images
LCP got worse after enabling ithero image is lazyExclude it, add fetchpriority="high"
Images never appear at allJavaScript error before the loader runsRead the console, then disable plugins one at a time

What lazy loading cannot fix on cheap hosting

Lazy loading reduces the bytes a browser downloads on first paint. It does not reduce time to first byte, PHP execution time or database queries, so a page assembled slowly on the server is still slow with every image deferred.

If the PageSpeed report shows a high server response time while the image warnings are gone, the work moves to caching, PHP workers and the host. WordPress hosting and a speed optimization service address that layer; both are quoted by email before payment.

When to email WebJi about a slow WordPress site

Email support@webji.services with the page URL, the PageSpeed Insights report and the plugin list. Support is 24/7 by email in Hindi and English, and the average first reply is under 60 minutes. The office phone is business hours only and is not a support line.

Frequently Asked Questions

Is lazy loading on by default in WordPress?

Yes, since WordPress 5.5. The attribute is added to images that have width and height, and to iframes. There is no checkbox to enable it, and no plugin is required.

Does lazy loading hurt LCP?

Only when it is applied to the largest visible image. Off-screen images help LCP by freeing bandwidth. Keep the hero eager with fetchpriority set to high, and let everything below the fold stay lazy.

How do I check lazy loading in Chrome?

Inspect a below-the-fold image for loading="lazy", then watch the Network tab with cache disabled while you scroll. Requests should start as each image nears the viewport, not on page load.

Do I need a lazy load plugin?

Usually not. Install one when you need exclusions by CSS class, lazy CSS backgrounds or YouTube preview thumbnails. If you do, disable lazy loading in every other plugin and in the theme.

Will lazy loading hide images from Google?

No. The image URL stays in the HTML, and Googlebot renders pages with JavaScript. Only a JavaScript-only loader without a noscript fallback risks images being missed.

Need help with this?

WebJi® support does it for you — free. Talk to our Jaipur team →