{"id":96249,"date":"2019-01-01T04:23:50","date_gmt":"2019-01-01T04:23:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/lazy-load-for-images\/"},"modified":"2026-01-29T10:31:06","modified_gmt":"2026-01-29T10:31:06","slug":"lazy-load-for-images","status":"publish","type":"plugin","link":"https:\/\/mn.wordpress.org\/plugins\/lazy-load-for-images\/","author":15377746,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.0.0","stable_tag":"2.0.0","tested":"6.9.4","requires":"5.8","requires_php":"7.2","requires_plugins":null,"header_name":"Smart LazyLoad","header_author":"Jumedeen Khan","header_description":"Lazy Load WordPress images. Load images only after scrolling down and when viewport.","assets_banners_color":"c1b7ef","last_updated":"2026-01-29 10:31:06","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/buymeacoffee.com\/jumedeenkhan","header_plugin_uri":"https:\/\/www.mozedia.com\/lazy-load-wordpress\/","header_author_uri":"https:\/\/www.mozedia.com\/","rating":5,"author_block_rating":0,"active_installs":300,"downloads":14091,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5":{"tag":"1.5","author":"jumedeenkhan","date":"2024-05-05 04:45:14"},"2.0.0":{"tag":"2.0.0","author":"jumedeenkhan","date":"2026-01-29 10:31:06"}},"upgrade_notice":{"2.0.0":"<ul>\n<li>Added iframe and videos support<\/li>\n<li>Added background image lazy loading<\/li>\n<li>Added YouTube thumbnail replacement<\/li>\n<li>Improved Core Web Vitals handling<\/li>\n<li>Native lazy loading support<\/li>\n<li>Cleaner admin UI and settings<\/li>\n<li>Performance and security improvements<\/li>\n<\/ul>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":4},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3449442,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3449442,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3449442,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3449442,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3449442,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3449442,"resolution":"2","location":"assets","locale":""}},"screenshots":{"1":"Smart LazyLoad settings menu","2":"Smart LazyLoad settings page"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[12722,163,4884,1466,222],"plugin_category":[50],"plugin_contributors":[166226],"plugin_business_model":[],"class_list":["post-96249","plugin","type-plugin","status-publish","hentry","plugin_tags-iframes","plugin_tags-images","plugin_tags-lazy-load","plugin_tags-lazyload","plugin_tags-video","plugin_category-media","plugin_contributors-jumedeenkhan","plugin_committers-jumedeenkhan"],"banners":{"banner":"https:\/\/ps.w.org\/lazy-load-for-images\/assets\/banner-772x250.png?rev=3449442","banner_2x":"https:\/\/ps.w.org\/lazy-load-for-images\/assets\/banner-1544x500.png?rev=3449442","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/lazy-load-for-images\/assets\/icon-128x128.png?rev=3449442","icon_2x":"https:\/\/ps.w.org\/lazy-load-for-images\/assets\/icon-256x256.png?rev=3449442","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/lazy-load-for-images\/assets\/screenshot-1.png?rev=3449442","caption":"Smart LazyLoad settings menu"},{"src":"https:\/\/ps.w.org\/lazy-load-for-images\/assets\/screenshot-2.png?rev=3449442","caption":"Smart LazyLoad settings page"}],"raw_content":"<!--section=description-->\n<p><strong>Smart LazyLoad<\/strong> is a fast, lightweight, and SEO-friendly lazy loading plugin for WordPress. It improves page speed and Core Web Vitals by loading images, iframes, videos, and background images <strong>only when they are about to enter the viewport<\/strong>.<\/p>\n\n<p>Built with <strong>pure JavaScript<\/strong>, Smart Lazy Load does not rely on jQuery or other third-party libraries, keeping your site fast and bloat-free.<\/p>\n\n<p>Unlike heavy optimization plugins, Smart LazyLoad focuses on one thing only: <strong>reducing unnecessary resource loading while maintaining compatibility, accessibility, and SEO best practices.<\/strong><\/p>\n\n<p>All features are optional \u2014 you can use the plugin with default settings or fine-tune it as needed.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Lazy load images in posts, pages, widgets, thumbnails, avatars, and comments<\/li>\n<li>Lazy load iframes and embedded videos<\/li>\n<li>Lazy load background images from inline styles and data attributes<\/li>\n<li>Optional YouTube iframe replacement with video thumbnails<\/li>\n<li>Intelligent first-image skipping for better LCP scores<\/li>\n<li>Supports both JavaScript-based and native browser lazy loading<\/li>\n<li>Inline plugin CSS and JavaScript (optional)<\/li>\n<li>Option to disable lazy loading for logged-in users<\/li>\n<li>Fully responsive and mobile-friendly<\/li>\n<li>SEO-friendly with noscript fallbacks<\/li>\n<li>Accessibility-aware<\/li>\n<li>Pure JavaScript (no jQuery dependency)<\/li>\n<li>Lightweight and performance-focused<\/li>\n<li>Open source and available on <a href=\"https:\/\/github.com\/jumedeenkhan\/lazy-load-for-images\">GitHub<\/a><\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<p>You can configure the plugin from:<\/p>\n\n<p><strong>Settings \u2192 LazyLoad<\/strong><\/p>\n\n<p>Available options include:<\/p>\n\n<ul>\n<li>Enable or disable lazy loading<\/li>\n<li>Lazy load images, iframes, and videos<\/li>\n<li>Enable background image lazy loading<\/li>\n<li>Replace YouTube videos with thumbnails<\/li>\n<li>Adjust lazy load threshold<\/li>\n<li>Enable native browser lazy loading<\/li>\n<li>Inline plugin CSS and JavaScript<\/li>\n<li>Disable lazy loading for logged-in users<\/li>\n<\/ul>\n\n<p><strong>Need more help?<\/strong><\/p>\n\n<p>For detailed documentation, usage examples, available filters, and advanced configuration options for Smart LazyLoad are available.<\/p>\n\n<p>See the <a href=\"https:\/\/www.mozedia.com\/lazy-load-wordpress\/\">Lazy Load Configuration Guide<\/a><\/p>\n\n<p><strong>Support<\/strong><\/p>\n\n<p>We are here to help. Feel free to open a new thread on the <a href=\"https:\/\/wordpress.org\/support\/plugin\/lazy-load-for-images\/\">Support Forum<\/a>.<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong> in your WordPress admin<\/li>\n<li>Search for <strong>Smart LazyLoad<\/strong><\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong><\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Upload it to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin from <strong>Plugins \u2192 Installed Plugins<\/strong><\/li>\n<li>Go to the plugin <strong>setting page<\/strong> and enable lazy load<\/li>\n<li>Now, lazy loading starts working automatically<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20smart%20lazyload%20lazy%20load%20all%20images%3F\"><h3>Does Smart LazyLoad lazy load all images?<\/h3><\/dt>\n<dd><p>Yes. It supports lazy loading for:<\/p>\n\n<ul>\n<li>Post and page content images<\/li>\n<li>Featured images<\/li>\n<li>Widget images<\/li>\n<li>Avatars and comments<\/li>\n<li>Background images<\/li>\n<\/ul>\n\n<p>You can control what is lazy loaded from the settings page.<\/p><\/dd>\n<dt id=\"how%20can%20i%20exclude%20a%20specific%20image%20or%20iframe%3F\"><h3>How can I exclude a specific image or iframe?<\/h3><\/dt>\n<dd><p>Add one of the following attributes or classes to the element:<\/p>\n\n<ul>\n<li><code>no-lazyload<\/code><\/li>\n<li><code>skip-lazy<\/code><\/li>\n<li><code>data-no-lazy<\/code><\/li>\n<li><code>data-skip-lazy<\/code><\/li>\n<\/ul>\n\n<p>You can also use filters:<\/p>\n\n<ul>\n<li><code>mozedia_lazyload_excluded_attributes<\/code><\/li>\n<li><code>mozedia_lazyload_iframe_excluded_patterns<\/code><\/li>\n<\/ul><\/dd>\n<dt id=\"can%20i%20disable%20lazy%20loading%20on%20specific%20pages%3F\"><h3>Can I disable lazy loading on specific pages?<\/h3><\/dt>\n<dd><p>Yes. Use the following filter:<\/p>\n\n<pre><code>add_filter( 'do_mozedia_lazyload', '__return_false' );\n<\/code><\/pre>\n\n<p>Or conditionally disable it:<\/p>\n\n<pre><code>add_action( 'wp', 'disable_mozedia_lazyload' );\nfunction disable_mozedia_lazyload() {\n    if ( is_single() ) {\n        add_filter( 'do_mozedia_lazyload', '__return_false' );\n    }\n}\n<\/code><\/pre><\/dd>\n<dt id=\"is%20smart%20lazyload%20compatible%20with%20caching%20and%20optimization%20plugins%3F\"><h3>Is Smart LazyLoad compatible with caching and optimization plugins?<\/h3><\/dt>\n<dd><p>Yes. It works well with most caching, CDN, and optimization plugins.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20seo-friendly%3F\"><h3>Is this plugin SEO-friendly?<\/h3><\/dt>\n<dd><p>Yes. Smart LazyLoad preserves original content using noscript fallbacks, supports native lazy loading, and allows skipping the first image for better LCP performance.<\/p><\/dd>\n<dt id=\"does%20it%20support%20background%20images%3F\"><h3>Does it support background images?<\/h3><\/dt>\n<dd><p>Yes. Smart LazyLoad can automatically lazy-load background images defined via the style attribute, such as:<\/p>\n\n<pre><code>&lt;div style=\"background-image: url(image-slug.jpg);\"&gt;\n<\/code><\/pre>\n\n<p>You can also apply it manually yourself.<\/p>\n\n<p>Simply add this special markup to the element on which you want to apply lazy loading:<\/p>\n\n<pre><code>&lt;div class=\"mozedia-lazyload\" data-bg=\"url(..\/img\/image-slug.jpg)\"&gt;&lt;\/div&gt;\n<\/code><\/pre><\/dd>\n<dt id=\"can%20i%20use%20a%20custom%20placeholder%20image%20or%20gif%3F\"><h3>Can I use a custom placeholder image or GIF?<\/h3><\/dt>\n<dd><p>Yes. Change the SVG placeholder using this filter:<\/p>\n\n<pre><code>add_filter( 'mozedia_svg_placeholder', 'mozedia_replace_image_placeholder');\nfunction mozedia_replace_image_placeholder() {\n    return 'data:image\/svg+xml,&lt;svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1 1\"&gt;&lt;\/svg&gt;';\n}\n<\/code><\/pre>\n\n<p>Lazy loaded iframes use a separate placeholder value (default: <code>about:blank<\/code>).<\/p>\n\n<p>You can customize the iframe placeholder using the following filter:<\/p>\n\n<pre><code>add_filter( 'mozedia_lazyload_placeholder', function () {\n    return 'about:blank';\n});\n<\/code><\/pre><\/dd>\n<dt id=\"what%20should%20i%20do%20if%20the%20plugin%20is%20not%20working%3F\"><h3>What should I do if the plugin is not working?<\/h3><\/dt>\n<dd><p>If Smart LazyLoad plugin is not working as expected, please check the following:<\/p>\n\n<ul>\n<li>Make sure the plugin is enabled<\/li>\n<li>Clear browser, plugin, and CDN caches<\/li>\n<li>Check if lazy loading is disabled for logged-in users<\/li>\n<li>Disable other lazy load plugins to avoid conflicts<\/li>\n<li>Ensure elements are not excluded using no-lazy attributes<\/li>\n<li>View the page on the frontend (not page builder editor)<\/li>\n<\/ul>\n\n<p>If the issue persists, feel free to <a href=\"https:\/\/www.mozedia.com\/contact\/\">contact us<\/a><\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Complete code refactor<\/li>\n<li>Now also support iframe\/video<\/li>\n<li>Background image lazy loading<\/li>\n<li>YouTube thumbnail mode<\/li>\n<li>Improved performance and stability<\/li>\n<li>Updated admin settings page<\/li>\n<li>WordPress 6.9 compatibility<\/li>\n<\/ul>\n\n<h4>1.5<\/h4>\n\n<ul>\n<li>Tested with WordPress 6.5.2<\/li>\n<li>JavaScript and PHP improvements<\/li>\n<li>SVG placeholder support<\/li>\n<\/ul>\n\n<h4>1.4.x<\/h4>\n\n<ul>\n<li>Genesis framework compatibility<\/li>\n<li>Improved hooks and filters<\/li>\n<li>Bug fixes and cleanup<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"The best free, lightweight lazy load plugin for WordPress. Lazy loading images, videos, and iframes to improve performance and Core Web Vitals scores.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/96249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=96249"}],"author":[{"embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jumedeenkhan"}],"wp:attachment":[{"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=96249"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=96249"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=96249"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=96249"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=96249"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=96249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}