

Smart LazyLoad settings menu in the WordPress admin.
The best free, simple & lightweight lazy load plugin for WordPress. Lazy loading images, videos, and iframes to improve page speed performance and Core Web Vitals scores.
Most lazy load plugins only optimize images. Smart LazyLoad goes further by deferring images, responsive <picture> sources, background images, native HTML5 videos, and iframes (including YouTube, vimeo) until they are about to enter the viewport.
Built with a lightweight, dependency-free frontend engine, Smart LazyLoad uses modern browser APIs without requiring jQuery or other third-party libraries. It also includes native browser lazy loading support, smooth loading effects, and intelligent defaults, so it works well immediately after activation.
Unlike most lazy load plugins, Smart LazyLoad gives you two levels of control. A global Master Switch lets you enable or disable lazy loading across your entire website, while a per-post override allows individual posts and pages to follow the global setting or force lazy loading on or off when needed.
Everything is managed from a clean, modern settings page where you can choose what to lazy load, fine-tune performance, customize placeholders and animations, and exclude specific elements for maximum compatibility.
<picture> sources — defers every <source> inside a <picture> element (WebP, hi-DPI, art-directed crops) in lock-step with its fallback <img>, so the browser’s format/media negotiation is never affected, only when it happens.style="background-image", a manual data-bg attribute, and retina/responsive backgrounds via CSS image-set() or a manual data-bg-set attribute, picking the best resolution for the visitor’s screen.<video> — HTML5 <video> tags, their <source> children, and poster images.loading="lazy"wp smart-lazyload generate-lqip) pre-generates placeholders for your whole media library at once, so large sites never pay the one-time generation cost on a live visitor’s requestno-lazyload, skip-lazy, data-no-lazy, data-skip-lazynoscript fallbacks so content is never lost for visitors or crawlers without JavaScriptThe settings screen is organized into five cards:
Master Switch — the single toggle that turns Smart LazyLoad on or off for the entire site. When it’s off, every card below it is dimmed and cannot be edited, but nothing about your saved configuration changes.
What to Lazy Load — independently toggle Images, Responsive <picture> Sources, Background Images, Iframes, Native Videos, and YouTube Thumbnail Replacement.
Performance — Skip First Image (for LCP), Threshold Distance, Use Native Browser Lazy Loading, Load Script in Footer, and Disable for Logged-in Users.
Appearance — Low-Quality Image Placeholder plus its source size, an optional Placeholder Background Color, and the Fade-in Duration.
Advanced — a Custom Exclude Selectors textarea for skipping elements by class or attribute without writing code.
A Reset to Defaults button at the bottom restores every option to its original value in one click.
Open any post, page, or public custom post type in the block editor and look for the Smart LazyLoad panel in the sidebar. Its Lazy Load dropdown has three choices:
The choice is saved as post meta and applies only to that single post — nothing else on the site is affected.
do_smart_lazyload — return `false` to disable lazy loading for the current request.
smart_lazyload_svg_placeholder — replace the default inline SVG placeholder used for images.
smart_lazyload_placeholder — replace the placeholder value used for deferred iframes (default: `about:blank`).
smart_lazyload_excluded_attributes — extend the list of strings that exclude an image tag from lazy loading.
smart_lazyload_iframe_excluded_patterns — extend the list of strings that exclude an iframe tag from lazy loading.
smart_lazyload_excluded_src — extend the list of substrings checked against an image or background-image URL itself (not just its surrounding tag) to exclude it from lazy loading; useful for dynamic image generators or known placeholder assets.