Updated: March 2018

Lazy loading is a technique for deferred loading of page content. It’s loaded when it’s needed rather than all at once – typically by scrolling through the page.

With lazy loading, pages are created with placeholder content which is replaced with actual content when the user needs it. Lazy loading is a technique that increases user time spent on page because new content loads automatically.

Lazy Loading is good because it delays loading of images below the fold. It’s a good trick.

But it can give us lousy UX as slow images on mobile devices leave blank spaces. Images eventually appear when scrolling. (We use lazy loading wherever and whenever possible anyway).

Our Favorite Lazy Load Plugins for still images like JPEGs

BJ Lazy Load
Active installs:
Zip download size:
6 months ago
All Time Installs: 480,551
Retention: 12%

Lazy Load by WP Rocket
Active installs:
Zip download size:
1 month ago
All Time Installs: 92,829
Retention: 11%

What we like most: No JavaScript library such as jQuery is used and the script weight is 1k to 6k. Fast. And, it defers about 500k video page weight on heavy pages.

BJ Lazy Load also lazy loads YouTube video in the same way as Lazy Load XT. They both work with Elementor page builder. Read more below.

Lazy Loading YouTube or Vimeo videos

We have also experimented with Lazy Load for Video plugin. We like the plugin. But have found it can conflict with other plugin’s shortcodes on a page or post. Sadly, it doesn’t work with Elementor page builder.

Using the Lazy Load for Videos plugin can save 500 to 700 milliseconds in page load time. Studying plugin blog reviews about the Lazy Load for Video plugin, we learned the following about the settings:

There is an option to load CSS/JS only when needed. It should improve load time. It is not declared but is apparently a minification technique since the blog author warns that it could break the site. Just like any other minification plugin can. If so, we just deselect the option.

Responsive Mode: It is recommended.

Play Button: The author gives 5 different options. We prefer using the one with the most “YouTube-looking” interface. But it’s not the fastest. “CSS only” setting means code is loaded (faster) because there is no image to load. We don’t know if the speed gain would be significant.

Thumbnail Size: It can be set to “Standard” or “Cover.” We couldn’t tell any difference and used “cover.”

“Update Posts” button at the bottom. The blog review said, “If you are having trouble seeing your video change then you probably need to click this button. Especially right after configuring the plugin for the first time.”

If should be labeled, “always push this” instead of “if nothing is wrong” push this. We suspect it’s some kind of purge of cataloged pages or posts (like a cache or database).

After installing, we did have trouble with plugin activation on some videos. We clicked the button and it fixed the problem. We knew nothing about this button’s purpose. It isn’t mentioned in the plugin read.me documentation!

Lazy Load for Videos
Last Updated: 2 months ago
Zip file size: 246k
Active Installs: 7,000+
All Time Installs: 80,403
Retention: 9%

One thing we’ve found is an option to “Hide-related Videos” with a checkbox. The feature was added in a recent update. This sounds like a good thing if you don’t want to send viewers off to watch competitors YouTube videos. This function is available in Elementor’s video provisions. So even though BJ Lazy Load and Lazy Load XT don’t have this feature, if you’re using Elementor you can still achieve the same results.

The Lazy Load for Videos plugin read.me file claims videos on posts and pages are both activated.

Of interest: Jetpack by WordPress.com offers an extension called Shortcode Embeds. It makes Lazy Load for Videos always break. The cure is to simply disable the extension. Or like us, don’t use Jetpack! This is a known issue published in the read.me file.

We’ve also found this good lazy load plugin:

Lazy Load XT
Active installs: 3,000+
Last updated: 2 year ago
Zip file size: 29k
All Time Installs: 20,413
Retention: 15%

The plugin author claims this is the fastest and lightest lazy load plugin in the WordPress Plugin Directory. You can lazy load images, YouTube and Vimeo videos, and iframes. We’ve been testing it for several months and find it a good alternative when the other Lazy Load for Videos plugin conflicts with other plugins. We’re find this a common problem and it explains the low retention rate. Lazy Load XT appears a little slower in the view screen when loading images and video. It uses a fade in method. This plugin does work with Elementor page builder.

Both plugins enqueue jQuery, a negative effect for speed. If your theme isn’t loading that JavaScript library, we recommend selective activation of these plugins only on the pages where needed. This will keep your site running fast. Also, use WP jQuery Plus to keep things fast.

Here’s a comparison on a bare-bone GeneratePress theme with Gutenberg page-builder plugin – and a YouTube video embedded.

NOTE: If you use a page builder like Elementor, Lazy Load for Videos will load but doesn’t work to reduce load time. But LazyLoad XT, works fine. Go figure. Both work with Gutenberg.

No lazy load base line.

Page load time: 1.5 seconds. Page  weight: 720k. The video weight is 526k – 72 percent of total weight.

Lazy Load for Video Plugin

Page load time: 815 milliseconds. Page  weight: 94k.

LazyLoad XT Plugin

Page load time: 735 milliseconds. Page weight: 724k.

BJ Lazy Load Plugin

Page load time: 691 milliseconds. Page weight: 724k. Using Elementor instead of Gutenberg as on other tests.

Even though LazyLoad XT and BJ Lazy Load are faster loads, their page weight and bandwidth consumption for mobile is 7X higher.

Lazy Load for Videos plugin is our prefer plugin between these two. Both work and if one has a conflict – try the other one. We actually use both these plugins with selective activation because some of our posts have shortcode conflicts. We prefer the UX behavior of Lazy Load for Videos.

If you load both plugins simultaneously, Lazy Load for Videos will take precedence since it loads first. Page weight is increased by these plugins. Both plugins load globally. Loading an embedded YouTube video without lazy loading, doesn’t enqueue jQuery. But this small gain is swamped by the huge video load time.


As the name suggests, Infinite Scroll continuously loads content as the user scrolls down the page. The page’s footer – normally inaccessible in an infinitely loading web page – is displayed as an overlay beneath the scrolling content. WordPress claims that users read more posts when Infinite Scroll is enabled, as opposed to the traditional page-based approach. Infinite scroll plugins are hard to get to work with some themes. We’ve never had success with them on stripped-down speed themes. But we’ll keep trying. Here’s a list:

(download 287k)

Last Updated: 4 years ago
Active Installs: 20,000+

Ajax Load More – Infinite Scroll
(download 927k)

Last Updated: 2 days ago
Active Installs: 20,000+

Ajax Pagination and Infinite Scroll
(download 34k)

Requires some code knowledge to work for most site. Unless you are using a default WordPress theme like Twenty-fifteen, etc. Adds about 40k to global page weight (site drag) and a few HTTP requests.

Last Updated: 1 month ago
Active Installs: 2,000+

WP EasyScroll Posts
(download 807k)

Last Updated: 6 months ago
Active Installs: 300+

Infinite Scroll and Load More Ajax Pagination
(download 48k)

Last Updated: 11 months ago
Active Installs: 1,000+

YITH Infinite Scrolling
(download 1.3M)

Last Updated: 7 months ago
Active Installs: 7,000+



Steve Teare
performance engineer

Mobile WordPress Speed – without coding!

What others think of us:

"I have been searching for years to find the most accurate information available on WordPress speed optimization but I was never able to get my site fast enough. I was extremely fortunate to stumble upon PagePipe which seemed to have a lot of information that no one was talking about, but it made so much sense." drhedberg.com North Carolina, USA

by - Dr. Nikolas Hedberg