# WordPress Lazy Loads Some of Your Images. This Covers the Rest.

> WordPress only lazy-loads images inside post content. Theme, page builder and custom field images are missed. ThumbPress covers them - no JavaScript, one toggle.

- Canonical URL: <https://thumbpress.co/features/lazy-load-images>
- Markdown URL: <https://thumbpress.co/features/lazy-load-images.md>

Category: Speed feature

Core only lazy-loads images inside your post content, and skips any image without width and height. Your header, footer, page builder and custom field images are left loading up front. ThumbPress catches them - using the browser's own lazy loading, no JavaScript.

## The Images WordPress Never Lazy Loads

Core only decorates images it renders itself. Everything else downloads immediately, whether the visitor scrolls to it or not.

### Theme and Builder Images Are Skipped

WordPress lazy loads images inside post content. Images printed by your theme templates, page builder, sliders or custom fields never pass through that code, so they get nothing - and those are often the largest ones on the page.

Impact: Header, footer and template images

### No Width and Height, No Lazy Loading

Core refuses to lazy load any image that does not declare width and height, to avoid layout shift. Hand-written markup and many builders omit those attributes entirely, so those images always load up front.

Impact: Silently excluded by core

### The "Defer Offscreen Images" Warning Persists

PageSpeed keeps flagging deferrable images even after core lazy loading is active, because the images it is complaining about are the ones core never touched.

Impact: A recurring Core Web Vitals hit

## How Lazy Loading Works

One toggle, and the images core misses wait their turn too.

### Steps

1. **Fill the Gaps** — ThumbPress reads the finished page and adds native loading="lazy" to the images WordPress never reached - theme templates, page builder output, custom fields, plugin markup.
2. **Let the Browser Work** — No JavaScript, no placeholder swap, no extra library. The browser's built-in lazy loading does the work, so your images still appear even with scripts blocked.
3. **Never Fight Core** — Any image WordPress or your theme has already decided about is left exactly as it is, and the leading images stay eager using WordPress's own threshold, so your largest contentful paint is never delayed.

### Load Images When Needed

Images appear as visitors reach them, helping pages load faster without extra setup.

#### One-Toggle Loading

Flip a single switch and lazy loading applies across your fronted automatically. No shortcodes, no per-image setup, no settings to tune.

## Lazy Load with Confidence

Covers what core misses, agrees with core everywhere else.

- One toggle, no configuration needed
- Native browser lazy loading, no JavaScript
- Covers theme, page builder and custom field images
- Covers images with no width and height, which core skips
- Leading images stay eager, using WordPress's own threshold
- Frontend only - never touches your admin

## Frequently Asked Questions

### WordPress already lazy loads images. Why do I need this?

Core only lazy loads images it renders itself - post content, excerpts, widgets, featured images and avatars - and it skips any image without width and height. Images printed directly by your theme, page builder, sliders, custom fields or another plugin get nothing. On a classic theme or a builder site that is often most of the images on the page. ThumbPress adds the same native attribute to those.

### How do I fix the "defer offscreen images" warning?

Enable ThumbPress lazy loading. If that audit still fails with core lazy loading active, it is usually flagging images core never touched - theme, builder or dimensionless images - which is exactly what this covers.

### Will it delay my hero image and hurt LCP?

No. The leading images on the page stay eager, and the number comes from WordPress's own threshold rather than a value we invented, so it matches what core considers safe. Small images like logos and avatars cannot take that slot.

### Do I need to configure anything?

No. It's a single toggle with no shortcodes or per-image setup, and it applies across your frontend automatically.

### Will it conflict with my page builder or another optimization plugin?

No. It never touches an image that WordPress, your theme, your builder or another lazy loading plugin has already handled, and it respects the skip-lazy and no-lazy opt-outs that lazy loading plugins have agreed on. It is tested against Elementor and recognises the markers used by Divi, WP Rocket, LiteSpeed, Jetpack, Smush and others. Builders that lazy load CSS background images are unaffected, since this only works on image tags.

### Does it need JavaScript?

No. It uses the browser's built-in lazy loading, so nothing waits on a script and images still load for visitors with JavaScript disabled.

### Will this conflict with WordPress core lazy loading?

No. It only adds the attribute to images that do not already have one, and it never removes or overrides what core or your theme set. Where core already acts, ThumbPress leaves the markup untouched.

### Does it lazy load CSS background images?

No. It defers <img> elements in your page output. Background images set in CSS are outside its reach, so anything critical you have set as a background keeps loading as normal.

### Can I use it alongside my caching plugin?

Yes. The attribute is added as the page is built, so a cached copy already contains it and there is nothing to set up. What you should avoid is running a second lazy-load feature at the same time, since two of them fighting over the same images causes flicker.

### Does it work with WooCommerce product images?

Yes. It applies across your frontend output, so product galleries, category listings and blog archives all benefit without any per-template setup.

## Ready for a Faster First Paint?

Install ThumbPress free and switch on lazy loading with a single toggle.

## About ThumbPress

ThumbPress is a WordPress plugin for image optimization and thumbnail management, built by Codexpert. It runs on your own server: compression, WebP/AVIF conversion and cleanup all happen locally, with no third-party image API and no per-image credits.

- All features: <https://thumbpress.co/features>
- Pricing: <https://thumbpress.co/pricing>
- Documentation: <https://thumbpress.co/docs/>
- Blog: <https://thumbpress.co/blog/>
- Support: <https://help.pluggable.io/new-ticket/>
- WordPress.org listing: <https://wordpress.org/plugins/image-sizes/>