{"id":27011,"date":"2014-01-01T01:12:47","date_gmt":"2014-01-01T01:12:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/rocket-lazy-load\/"},"modified":"2025-10-17T13:22:11","modified_gmt":"2025-10-17T13:22:11","slug":"rocket-lazy-load","status":"publish","type":"plugin","link":"https:\/\/sah.wordpress.org\/plugins\/rocket-lazy-load\/","author":13563592,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.4.0","stable_tag":"2.4.0","tested":"6.8.5","requires":"4.9","requires_php":"7.3","requires_plugins":null,"header_name":"Lazy Load - Optimize Images","header_author":"WP Rocket","header_description":"","assets_banners_color":"f66f4b","last_updated":"2025-10-17 13:22:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"http:\/\/wordpress.org\/plugins\/rocket-lazy-load\/","header_author_uri":"https:\/\/wp-rocket.me","rating":4.2,"author_block_rating":0,"active_installs":100000,"downloads":1678810,"num_ratings":139,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"wp_media","date":"2016-04-13 15:30:41"},"1.1.1":{"tag":"1.1.1","author":"juliobox","date":"2017-08-09 15:43:18"},"1.2.1":{"tag":"1.2.1","author":"wp_media","date":"2017-08-22 18:18:26"},"1.3.3":{"tag":"1.3.3","author":"wp_media","date":"2017-09-16 14:49:18"},"1.4.9":{"tag":"1.4.9","author":"wp_media","date":"2019-01-09 14:44:46"},"2.0.4":{"tag":"2.0.4","author":"wp_media","date":"2019-02-19 14:49:51"},"2.1.5":{"tag":"2.1.5","author":"wp_media","date":"2019-03-30 18:11:09"},"2.2.3":{"tag":"2.2.3","author":"wp_media","date":"2019-07-25 01:58:33"},"2.3.4":{"tag":"2.3.4","author":"wp_media","date":"2021-07-12 20:03:11"},"2.3.5":{"tag":"2.3.5","author":"wp_media","date":"2022-04-27 09:26:36"},"2.3.6":{"tag":"2.3.6","author":"wp_media","date":"2023-08-14 06:58:12"},"2.3.8":{"tag":"2.3.8","author":"wp_media","date":"2024-07-11 13:22:37"},"2.3.8.2":{"tag":"2.3.8.2","author":"wp_media","date":"2024-07-11 13:28:54"},"2.3.9":{"tag":"2.3.9","author":"wp_media","date":"2025-04-23 20:29:46"},"2.4.0":{"tag":"2.4.0","author":"wp_media","date":"2025-10-17 13:22:11"}},"upgrade_notice":[],"ratings":{"1":19,"2":6,"3":7,"4":9,"5":98},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2715509,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2715509,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544-500.png":{"filename":"banner-1544-500.png","revision":2715509,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2715509,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.4","1.1.1","1.2.1","1.3.3","1.4.9","2.0.4","2.1.5","2.2.3","2.3.4","2.3.5","2.3.6","2.3.8","2.3.8.2","2.3.9","2.4.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[209851,4884,172901,209852,1464],"plugin_category":[50,52,59],"plugin_contributors":[78814,165839],"plugin_business_model":[],"class_list":["post-27011","plugin","type-plugin","status-publish","hentry","plugin_tags-defer-offscreen-images","plugin_tags-lazy-load","plugin_tags-lazy-load-images","plugin_tags-lazy-load-plugin","plugin_tags-lazy-loading","plugin_category-media","plugin_category-performance","plugin_category-utilities-and-tools","plugin_contributors-wp_media","plugin_contributors-wp_rocket","plugin_committers-wp_media","plugin_support_reps-shelwpm","plugin_support_reps-sueoutlet"],"banners":{"banner":"https:\/\/ps.w.org\/rocket-lazy-load\/assets\/banner-772x250.png?rev=2715509","banner_2x":"https:\/\/ps.w.org\/rocket-lazy-load\/assets\/banner-1544-500.png?rev=2715509","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rocket-lazy-load\/assets\/icon-128x128.png?rev=2715509","icon_2x":"https:\/\/ps.w.org\/rocket-lazy-load\/assets\/icon-256x256.png?rev=2715509","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>LazyLoad is the best free lazy load plugin for WordPress to lazy load images, videos, and iframes on WordPress. In a nutshell, LazyLoad displays images, videos, and iframes on a page only when they are visible to the user \u2013 that\u2019s one crucial way to <a href=\"https:\/\/wp-rocket.me\/blog\/guide-to-page-speed-optimization-for-wordpress\/\">speed up your WordPress site<\/a> and <a href=\"https:\/\/imagify.io\/blog\/optimize-images-page-speed-google\/#lazy-loading\">optimize images for Google PageSpeed<\/a>.<\/p>\n\n<p>You can lazy load images in post content or widget text, plus thumbnails, avatars, and smilies. LazyLoad takes care of iframe lazy load, too: you\u2019ll easily replace Youtube iframes with a preview thumbnail to further speed up the loading time of your website.<\/p>\n\n<p>No JavaScript library such as jQuery is used, and the script weight is less than 10KB.<\/p>\n\n<h4>Why is lazy loading crucial for performance?<\/h4>\n\n<p>Lazy loading is a key performance technique to make your site faster. You\u2019ll reduce loading time, <a href=\"https:\/\/wp-rocket.me\/lighthouse-performance-score-wordpress\/\">improve your Lighthouse performance score<\/a> and <a href=\"https:\/\/wp-rocket.me\/google-core-web-vitals-wordpress\/\">optimize your Core Web Vitals grades<\/a>.<\/p>\n\n<p><a href=\"https:\/\/wp-rocket.me\/blog\/lazy-loading-wordpress-5-5\/\">Lazy loading your images on WordPress<\/a> will help you achieve a better PageSpeed Insights score for three main reasons:<\/p>\n\n<ul>\n<li>You\u2019ll address a specific PageSpeed Insights recommendation: [Defer offscreen images](https:\/\/wp-rocket.me\/google-core-web-vitals-wordpress\/defer-offscreen-images\/, which means image lazy loading.<\/li>\n<li>You\u2019ll improve the performance of two key metrics: <a href=\"https:\/\/wp-rocket.me\/google-core-web-vitals-wordpress\/improve-first-input-delay\/\">First Input Delay<\/a> (Core Web Vital) and <a href=\"https:\/\/wp-rocket.me\/lighthouse-performance-score-wordpress\/reduce-total-blocking-time\/\">Total Blocking Time<\/a> (Lighthouse metric).<\/li>\n<li>You\u2019ll <a href=\"https:\/\/wp-rocket.me\/blog\/reduce-http-requests-speed-wordpress-site\/\">make fewer HTTP requests<\/a> \u2013 that is another way to boost your site speed and <a href=\"https:\/\/wp-rocket.me\/google-core-web-vitals-wordpress\/improve-largest-contentful-paint\/\">improve the Largest Contentful Paint score<\/a> (another Core Web Vital).<\/li>\n<\/ul>\n\n<p>Take a look at our complete list of reasons <a href=\"https:\/\/wp-rocket.me\/blog\/lazyloading\/#section-2\">why you should use lazy loading<\/a>. Then, turn on LazyLoad and make your WordPress website faster!<\/p>\n\n<h4>Dependencies<\/h4>\n\n<p>LazyLoad script: <a href=\"https:\/\/github.com\/verlok\/lazyload\">https:\/\/github.com\/verlok\/lazyload<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the complete <code>rocket-lazy-load<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20can%20i%20use%20native%20lazyload%3F'><h3>How can I use native lazyload?<\/h3><\/dt>\n<dd><p>To use native lazyload on browsers supporting this feature, you need to use the following line:<\/p>\n\n<pre><code>add_filter( 'rocket_use_native_lazyload', '__return_true' );\n<\/code><\/pre>\n\n<p>Browsers that do not support native lazyload will use the JS-based solution as before.<\/p><\/dd>\n<dt id='how%20can%20i%20deactivate%20lazy%20load%20on%20some%20pages%3F'><h3>How can I deactivate Lazy Load on some pages?<\/h3><\/dt>\n<dd><p>You can use the <code>do_rocket_lazyload<\/code> filter.<\/p>\n\n<p>Here is an example to put in functions.php files that disable lazyload on posts:<\/p>\n\n<pre><code>add_action( 'wp', 'deactivate_rocket_lazyload_on_single' );\nfunction deactivate_rocket_lazyload_on_single() {\n    if ( is_single() ) {\n        add_filter( 'do_rocket_lazyload', '__return_false' );\n    }\n}\n<\/code><\/pre><\/dd>\n<dt id='how%20can%20i%20deactivate%20lazy%20load%20on%20some%20images%3F'><h3>How can I deactivate Lazy Load on some images?<\/h3><\/dt>\n<dd><p>Simply add a <code>data-no-lazy=\"1\"<\/code> property in you <code>img<\/code> or <code>iframe<\/code> tag.<\/p>\n\n<p>You can also use the filters <code>rocket_lazyload_excluded_attributes<\/code> or <code>rocket_lazyload_excluded_src<\/code> to exclude specific patterns.<\/p>\n\n<p>For iframes, the filter is <code>rocket_lazyload_iframe_excluded_patterns<\/code>.<\/p><\/dd>\n<dt id='how%20can%20i%20change%20the%20threshold%20to%20trigger%20the%20load%3F'><h3>How can I change the threshold to trigger the load?<\/h3><\/dt>\n<dd><p>You can use the <code>rocket_lazyload_threshold<\/code> filter.<\/p>\n\n<p>Code sample:<\/p>\n\n<pre><code>function rocket_lazyload_custom_threshold( $threshold ) {\n    return 100;\n}\nadd_filter( 'rocket_lazyload_threshold', 'rocket_lazyload_custom_threshold' );\n<\/code><\/pre><\/dd>\n<dt id='i%20use%20plugin%20x%20and%20my%20images%20don%27t%20show%20anymore'><h3>I use plugin X and my images don't show anymore<\/h3><\/dt>\n<dd><p>Some plugins are not compatible without lazy loading. Please open a support thread, and we will see how we can solve the issue by excluding lazy loading for this plugin.<\/p><\/dd>\n<dt id='how%20can%20i%20lazy%20load%20a%20background-image%3F'><h3>How can I lazy load a background-image?<\/h3><\/dt>\n<dd><p>The plugin will automatically lazy load background-images set with a <code>style<\/code> attribute to a <code>div<\/code> element:<\/p>\n\n<pre><code>&lt;div style=\"background-image: url(image.jpg);\"&gt;\n<\/code><\/pre>\n\n<p>You can also apply it manually. The element you want to apply lazy load on must have this specific markup:<\/p>\n\n<pre><code>&lt;div class=\"rocket-lazyload\" data-bg=\"url(..\/img\/image.jpg)\"&gt;&lt;\/div&gt;\n<\/code><\/pre>\n\n<p>The element must have the class <code>rocket-lazyload<\/code>, and a <code>data-bg<\/code> attribute, which value is the CSS url for the image.<\/p><\/dd>\n<dt id='where%20do%20i%20report%20security%20bugs%20found%20in%20this%20plugin%3F'><h3>Where do I report security bugs found in this plugin?<\/h3><\/dt>\n<dd><p>You can report any security bugs found in the source code of the site-reviews plugin through the <a href=\"https:\/\/patchstack.com\/database\/vdp\/rocket-lazy-load\">Patchstack Vulnerability Disclosure Program<\/a>. The Patchstack team will assist you with verification, CVE assignment and take care of notifying the developers of this plugin.<\/p><\/dd>\n<dt id='related%20plugins'><h3>Related Plugins<\/h3><\/dt>\n<dd><ul>\n<li><a href=\"https:\/\/imagify.io\/?utm_source=wordpress.org&amp;utm_medium=referral&amp;utm_campaign=LazyLoadPlugin\">Imagify: The Best image optimizer<\/a> to speed up your website with lighter images.<\/li>\n<li><a href=\"https:\/\/wp-rocket.me\/?utm_source=wordpress.org&amp;utm_medium=referral&amp;utm_campaign=LazyLoadPlugin\">WP Rocket: Best performance plugin<\/a> to speed up your WordPress website.<\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/heartbeat-control\/\">Heartbeat Control by WP Rocket<\/a>: Heartbeat Control by WP Rocket: The best plugin to control the WordPress Heartbeat API and reduce CPU usage.<\/li>\n<li><a href=\"https:\/\/rocketcdn.me\/wordpress\/\">RocketCDN: The best CDN plugin for WordPress<\/a> to propel your content at the speed of light \u2013 no matter where your users are located in the world.<\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/upload-max-file-size\/\">Increase Max upload file size<\/a> is the best plugin to increase the upload file size limit to any value with one click.<\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.4.0<\/h4>\n\n<p>Security: Fix an authenticated Stored Cross-Site Scripting (XSS) vulnerability reported by Pathstack.<\/p>\n\n<h4>2.3.9<\/h4>\n\n<p>Updated version to fix a mismatch between the tag of the release on Github and the release version which leads to a deployment issue that.<\/p>\n\n<h4>2.3.8<\/h4>\n\n<p>Enhancement: Launchpad compatibility (see https:\/\/github.com\/wp-launchpad)\nEnhancement: Raised compatibility with PHP &gt; 7.3\nBug: Removed <code>wp-media\/rocket-lazyload-common<\/code> from vendors\nEnhancement: Raised <code>wp-media\/rocket-lazyload-common<\/code> to 3.0<\/p>\n\n<h4>2.3.7<\/h4>\n\n<p>Bugfix: Removed <code>rocket_lazyload_polyfill<\/code> filter due to a vulnerability on polyfill<\/p>\n\n<h4>2.3.5<\/h4>\n\n<p>Enhancement: Test the plugin with latest version of WordPress v5.9.3\nEnhancement: Change WP readme content.<\/p>\n\n<h4>2.3.4<\/h4>\n\n<p>Enhancement: Allow <code>&lt;a&gt;<\/code> tags to lazyload background images\nEnhancement: Add  tag to lazyloaded picture elements\nBugfix: Prevent a Fatal error related to the League Container package conflict with WooCommerce 4.4\nBugfix: Update lazyload for background images support for new version of lazyload script\nBugfix: Correctly apply the rocket-lazyload class on elements with a background-image and an empty class value\nBugfix: Correctly apply the rocket-lazyloadclass on elements with malformed HTML\nBugfix: Prevent a display issue with background-images when using different types of quotes around the URL\nBugfix: Prevent Layout from breaking when  alt attribute has any html encoded characters<\/p>\n\n<h4>2.3.3<\/h4>\n\n<p>Enhancement: Add data-skip-lazy and skip-lazy class to exclusions list as part of the interoperability initiative between lazyload plugins\nEnhancement: Use native lazyload only if filter <code>rocket_use_native_lazyload<\/code> is true\nEnhancement: Apply lazyload on background images set on <code>figure<\/code> elements\nBugfix: Correctly add the rocket-lazyload class when class attribute is empty on an element with a background image\nBugfix: Correctly replace YouTube iframe with preview image when using relative protocol\nBugfix: Preserve youtube-nocookie.com during LazyLoad<\/p>\n\n<h4>2.3.2<\/h4>\n\n<p>Bugfix: Incorrect characters used in Youtube thumbnail HTML code<\/p>\n\n<h4>2.3.1<\/h4>\n\n<p>Bugfix: Prevent a conflict with WP Rocket\nBugfix: apply loading=\"lazy\" on Youtube thumbnail\nBugfix: Add autoplay attribute on iframe loaded with Youtube thumbnail<\/p>\n\n<h4>2.3<\/h4>\n\n<p>Enhancement: Add support for browser native lazyload\nBugfix: Prevent broken image in some cases for picture element\nBugfix: Prevent wrong lazy attributes for srcset and sizes on an image inside a picture element<\/p>\n\n<h4>2.2.3<\/h4>\n\n<ul>\n<li>Enhancement: Improve compatibility for the picture element<\/li>\n<li>Enhancement: Apply lazyload on background images set on section, span and li elements<\/li>\n<li>Enhancement: also pass $width and $height values to the rocket_lazyload_placeholder filter<\/li>\n<li>Bugfix: Use 0 instead of 1 for the default placeholder dimensions to improve compatibility<\/li>\n<li>Bugfix: Improve infinite scroll support<\/li>\n<li>Bugfix: Exclude Enfold avia-background-fixed background images and data-large_image from lazyload<\/li>\n<\/ul>\n\n<h4>2.2.2<\/h4>\n\n<ul>\n<li>Bugfix: Auto-exclude data-height-percentage attribute to prevent display issues<\/li>\n<li>Bugfix: Correctly handle responsive videos using fitVids again<\/li>\n<\/ul>\n\n<h4>2.2.1<\/h4>\n\n<ul>\n<li>Enhancement: add a way to customize the lazyload script options<\/li>\n<li>Bugfix: Prevent error on Internet Explorer 11<\/li>\n<li>Bugfix: Prevent conflict with WooCommerce variation swatches<\/li>\n<li>Bugfix: Prevent empty <code>src<\/code> when the image is an inline base64<\/li>\n<li>Bugfix: Prevent issue when the original <code>src<\/code> attribute uses single quotes<\/li>\n<\/ul>\n\n<h4>2.2<\/h4>\n\n<ul>\n<li>Enhancement: Update lazyload script to the latest version<\/li>\n<li>Enhancement: Use the dimensions of the original image for the placeholder size when possible, to reduce content reflow<\/li>\n<li>Enhancement: Ignore images using the new loading attribute introduce by Chrome for browser-native lazyload<\/li>\n<\/ul>\n\n<h4>2.1.5<\/h4>\n\n<ul>\n<li>Bugfix: Prevent matching with the wrong data when a data-style attribute is on a div for background images<\/li>\n<li>Remove data-cfasync=\"false\" by default<\/li>\n<li>Enhancement: Add filter rocket_lazyload_script_tag to modify the lazyload script HTML if needed<\/li>\n<li>Enhancement: Add data-no-minify attribute to the lazyload script tag to prevent it from being combined by JS combiners<\/li>\n<li>Enhancement: Improve MutationObserver code to only call the lazyload update method if an image\/iframe or element with .rocket-lazyload is contained in the new node(s) added to the DOM<\/li>\n<\/ul>\n\n<h4>2.1.4<\/h4>\n\n<ul>\n<li>Regression fix: Correctly exclude scripts from lazyload again<\/li>\n<\/ul>\n\n<h4>2.1.3<\/h4>\n\n<ul>\n<li>Bugfix: Ignore content inside noscript tags to prevent modifying them and causing some display issues<\/li>\n<\/ul>\n\n<h4>2.1.2<\/h4>\n\n<ul>\n<li>Enhancement: Update lazyload script to the latest version<\/li>\n<li>Enhancement: Add a way to lazyload the Youtube thumbnail image<\/li>\n<li>Enhancement: Add width and height attributes to the Youtube thumbnail image depending on the resolution<\/li>\n<li>Enhancement: Disable polyfill for intersectionObserver by default, added a way to activate it instead<\/li>\n<li>Enhancement: Add data-cfasync=\"false\" to the lazyload script tag<\/li>\n<li>Enhancement: Prevent lazyload on the Oxygen Builder page editor<\/li>\n<li>Bugfix: Wrap no JS CSS in noscript tag and remove the no-js identifier<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Bugfix: Correctly apply lazyload on <code>picture<\/code> elements<\/li>\n<li>Bugfix: Prevent double loading of an image when an <code>img<\/code> element inside a <code>picture<\/code> element only has a <code>srcset<\/code> attribute and no <code>src<\/code> attribute<\/li>\n<\/ul>\n\n<h4>2.1<\/h4>\n\n<ul>\n<li>Enhancement: Update lazyload script to the latest version<\/li>\n<li>Enhancement: Apply lazyload on picture elements found on the page<\/li>\n<li>Enhancement: Apply lazyload on div elements with a background image found on the page. See FAQ for more info.<\/li>\n<\/ul>\n\n<h4>2.0.4<\/h4>\n\n<ul>\n<li>Enhancement: Add filter for iframe lazyload pattern exclusion<\/li>\n<li>Enhancement: Auto-exclude soliloquy-image pattern from lazyload<\/li>\n<li>Bugfix: Prevent issue when an image\/iframe is duplicated on the same page<\/li>\n<li>Bugfix: Prevent W3C validation error for the SVG placeholder<\/li>\n<\/ul>\n\n<h4>2.0.3.2<\/h4>\n\n<ul>\n<li>Bugfix: Correctly ignore inline scripts with line breaks inside<\/li>\n<\/ul>\n\n<h4>2.0.3.1<\/h4>\n\n<ul>\n<li>Bugfix: Correct an issue preventing lazyload from working<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Bugfix: Prevent incorrect display if JavaScript is disabled<\/li>\n<li>Bugfix: Don't apply lazyload on Divi\/Extra\/Beaver Builder Editor pages<\/li>\n<li>Bugfix: Use the correct URL for each iframe when multiple iframes are on the same page<\/li>\n<li>Bugfix: Ignore content inside inline script tags to prevent applying lazyload in it<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Bugfix: Fix an error in the compatibility for the AMP plugin<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Bugfix: Prevent a fatal error on case sensitive operating systems<\/li>\n<\/ul>\n\n<h4>2.0<\/h4>\n\n<ul>\n<li>Enhancement: Lazyload is now applied on the template_redirect hook, which should allow the plugin to apply the optimization on more images and encountering less conflicts at the same time<\/li>\n<li>Enhancement: Specifically target with the lazyload script images\/iframes elements with a data-lazy-src attribute<\/li>\n<li>Enhancement: Update lazyload script to the latest version<\/li>\n<li>Enhancement: Possibility to apply lazyload on background-images with a specific markup, see FAQ<\/li>\n<li>Enhancement: Use a svg image as placeholder instead of a base64 gif<\/li>\n<li>Bugfix: Only use MutationObserver if available in the browser<\/li>\n<li>Bugfix: When using the Youtube thumbnail option, correctly format the Youtube query if the video URL is encoded<\/li>\n<li>Bugfix: Improve iframe matching to prevent unexpected results<\/li>\n<li>Bugfix: Update CSS for the Youtube thumbnail option to prevent issue with the Gutenberg embeds block<\/li>\n<\/ul>\n\n<h4>1.4.9<\/h4>\n\n<ul>\n<li>Enhancement: Update lazyload script to the latest available version<\/li>\n<li>Enhancement: Use lazy-sizes to prevent W3C validation error when sizes is defined but srcset is not<\/li>\n<li>Enhancement: Parse images or iframes only if the element is selected to be lazyloaded in the options<\/li>\n<li>Fix: Prevent warning for lazyload+v in Google Search Console<\/li>\n<li>Fix: Prevent PHP Notice with WooCommerce for product images<\/li>\n<\/ul>\n\n<h4>1.4.8<\/h4>\n\n<ul>\n<li>Notice: Minimum WordPress version required is now 4.7<\/li>\n<li>Enhancement: Update lazyload script version<\/li>\n<li>Enhancement: Remove placeholder image to improve perceived loading time<\/li>\n<li>Enhancement: Compatibility with Youtube privacy URL<\/li>\n<li>Enhancement: Update play image to match Youtube logo<\/li>\n<li>Enhancement: Support Youtube URL parameters<\/li>\n<li>Enhancement: Lazyload images displayed with wp_get_attachment_image(). \/!\\ no fallback if JavaScript is disabled<\/li>\n<li>Fix: Use the correct size set in srcset for the lazyloaded image<\/li>\n<li>Fix: Prevent Youtube thumbnail replacement on playlists<\/li>\n<li>Fix: Prevent iframe lazyload on AMP pages<\/li>\n<li>Fix: Correct text domain for translations (thanks @ Chantal Coolsma)<\/li>\n<\/ul>\n\n<h4>1.4.7<\/h4>\n\n<ul>\n<li>Fix compatibility with infinite scroll<\/li>\n<li>Prevent lazyload on masterSlider images<\/li>\n<\/ul>\n\n<h4>1.4.6<\/h4>\n\n<ul>\n<li>Correctly include version 8.5.2 of lazyload script<\/li>\n<li>Prevent 404 error on lazyload script if URL contains \"-v\"<\/li>\n<\/ul>\n\n<h4>1.4.5<\/h4>\n\n<ul>\n<li>Rename Setting Page Name in WP Menu<\/li>\n<li>New Product Banner in Settings Page<\/li>\n<li>Conditionally load a different version of the script depending on browser support of IntersectionObserver<\/li>\n<li>Fix a bug where images initially hidden are not correctly displayed when coming into view (slider, tabs, accordion)<\/li>\n<\/ul>\n\n<h4>1.4.4<\/h4>\n\n<ul>\n<li>Admin Redesign<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Plugin is compatible again with PHP &lt; 5.4<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Update lazyload script to bring back compatibility with IE9\/10<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Fix bug caused by a too aggressive cleanup<\/li>\n<\/ul>\n\n<h4>1.4<\/h4>\n\n<ul>\n<li>New option: replace Youtube videos by thumbnail. This option can improve your loading time a lot, especially if you have multiple videos on the same page<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>2017-09-16<\/li>\n<li>Prevent scripts and styles being removed during html parsing<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>2017-09-12<\/li>\n<li>Fix images not displaying in certain conditions because image attributes exclusion was not working correctly<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>2017-09-07<\/li>\n<li>Don't apply lazyload on Divi slider<\/li>\n<\/ul>\n\n<h4>1.3<\/h4>\n\n<ul>\n<li>2017-09-01<\/li>\n<li>Improve HTML parsing of images and iframes to be faster and more efficient<\/li>\n<li>Make the lazyload compatible with fitVids for iframes<\/li>\n<li>Don't apply lazyload on AMP pages (compatible with AMP plugin from Automattic)<\/li>\n<li>Use about:blank as default iframe placeholder to prevent warning in browser console<\/li>\n<li>Don't apply lazyload on upPrev thumbnail<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>2017-08-22<\/li>\n<li>Fix missing lazyload script<\/li>\n<li>Don't lazyload for images in REST API requests<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>2017-08-22<\/li>\n<li>Update lazyload script to latest version<\/li>\n<li>Change the way the script is loaded<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>2017-02-13<\/li>\n<li>Bug fix: Remove use of short tag to prevent 500 error on some installations<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>2017-02-12<\/li>\n<li><em>New<\/em>\n\n<ul>\n<li>JS library updated<\/li>\n<li>Support for iFrame<\/li>\n<li>Support for srcset and sizes<\/li>\n<li>New options page<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>2015-04-28<\/li>\n<li>Bug Fix: Resolved a conflict between LazyLoad &amp; Emoji since WordPress 4.2<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>2015-01-08<\/li>\n<li>Bug Fix: Don't apply LazyLoad on captcha from Really Simple CAPTCHA to prevent conflicts.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>2014-12-28<\/li>\n<li>Improvement: Add \u00ab\u00a0rocket_lazyload_html\u00a0\u00bb filter to manage the output that will be printed.<\/li>\n<\/ul>\n\n<h4>1.0.1.1<\/h4>\n\n<ul>\n<li>2014-07-25<\/li>\n<li>Fix stupid error with new regex in 1.0.1<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>2014-07-16<\/li>\n<li>Bug Fix: when a IMG tag or content (widget or post) contains the string \"data-no-lazy\", all IMG tags were ignored instead of one.<\/li>\n<li>Security fix: The preg_replace() could lead to a XSS vuln, thanks to Alexander Concha<\/li>\n<li>Code compliance<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>2014-01-01<\/li>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"The best free lazy load plugin for WordPress. Lazy load images, videos, and iframes to improve performance and Core Web Vitals scores.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/27011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sah.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sah.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=27011"}],"author":[{"embeddable":true,"href":"https:\/\/sah.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wp_media"}],"wp:attachment":[{"href":"https:\/\/sah.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=27011"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=27011"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=27011"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=27011"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=27011"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=27011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}