How Elementor page builder affects mobile page speed and SEO.

This article explores page builder plugins – in particular Elementor and it’s increasing abandonment. We examine inherent page speed hazards and fears. We point out Elementor’s negative effect from Font Awesome icon usage. Speed problems aren’t Elementor’s fault. Undisciplined wannabee web designer are the big problem. Elementor Pro doubles Elementor (free) plugin site drag.

Elementor is one of the more popular live page builder plugins for WordPress. It has a free and paid version. Some claim it will change WordPress design. We bet alternative editors change the landscape more.

The Elementor plugin free version is a 2.3M download zip file. It’s 7.8M decompressed.

(Comparison: WordPress is 8.9M compressed, 26.5M decompressed).

Page builder code functions slowdown sites. Page-builder plugin authors load variables from databases. This triggers many slowdowns. How much padding do you need? What color? Border or not? Round images or squares? etc. Configuration decisions and selections run in real time. These repeat the same redundant decisions on every page load.

Look at the installation graph below. Elementor plugin’s active installs dropped off in March. Celebrating crossing 1,000,000 active installs is fine but indicators show the trend is still downward.

Elementor active installs 1,000,000. We’re not impressed with the declining trend. 7 percent is low retention rate. High would be 30 (good) to 50 percent (excellent).

93 percent of people who try Elementor abandon it.

1.2M of Elementor is Font Awesome. Why did they include that?

There’s speed overhead associated with Elementor page builder. It adds extra CSS and JS. But this speed difference is negligible for desktop audiences. For remote wireless mobile, it’s another matter. Read on.

One of the bad things about many page builders is they use short codes. Once you stop using the page builder plugin – for any reason – it messes everything up. Elementor (and Beaver Builder) don’t do that. Yes, some features of Elementor use short codes. But only a few, and those are optional features … not necessary.

Elementor Page Builder
Last updated: 2 week ago
Active installs: 1,000,000+
Zip download file: 2.3M (and ever growing).
Retention: 7%

Why only the 3-star rating with two skulls? Elementor has a low retention rate. Retention’s calculation is active installs divided by downloads. Test-then-abandonment is not a good sign. Only 7 percent of people who try it keep it activated. Why? We don’t know. Ask Elementor. What’s up with that?

It’s not uncommon for a page builder to add 1M of CSS and JS code to every page on your website (site drag). With the average Internet desktop page weight being 2.3M to 3M, you can see a page builder would use up almost half of that. Most heavier mobile pages we test are around 500k to 750k. Our home page is 415k. The page you are reading now is 206k. You can see that an average page builder would be 5 times that weight – without any content!

Elementor has lots of features and is easy to use – especially for novices. We aren’t fans of page builders. From our past experiences – when themes include page builders – there’s always bloat. Not from the builder itself – but by the site owner adding unnecessary junk. Page builders also have a learning curve. Much like learning a new computer operating system. Sometimes, page builders add as much as an extra 500k of CSS files – and 500k of Javascript files. That’s 1M of page-weight overhead. When questions came about how fast or slow Elementor is, we decided to test and satisfy our curiosity.

Elementor has the capability of working well for responsiveness. But only if the site owner doesn’t mess it up. It also can be fast. The biggest potential hidden gotcha is Font Awesome activation. Font Awesome is an icon font and adds 500+ milliseconds globally (site drag). In this instance, 2 HTTP calls of about 250 milliseconds each. That’s a more horrific speed crime of laziness and apathy.

Install a fresh Elementor plugin in a testing space and you’ll find Font Awesome isn’t loaded. Use one solitary icon on one page – and the whole site gets it. If the theme has Font Awesome activated already, it will get loaded twice. That doubles the site drag to 1 second. There is a free plugin to ensure this doesn’t happen (a fix). (You select an option to avoid Font Awesome duplication). But we tried it and it doesn’t work. It fails with Elementor.

Want to read a good article that compares how the major page builders affect WordPress speed. We didn’t write it. We wish we did. Read it at Primary Image in a new tab.

Here’s what we’ve learned so far: If you activate Font Awesome (called enqueuing) and then say, “Whoops! That just added a big chunk of page weight.” So you remove the icon from the page. It does not dequeue the Font Awesome icon code. It’s lurking in the background – hidden page weight. The only way to get rid of it is to go into the code (or other trickery like plugin) or to uninstall Elementor plugin. Then it will go away. Also, if you reinstall the recently uninstalled Elementor plugin, the invisible weight is back again. Global site drag – every page and post. So once it’s enqueued, it’s stuck on and saved in a database somewhere. Half-second delay potential at least. When you have a 1- to 2-second performance budget, that’s a killer.

More about Font Awesome and why it’s bad for mobile speed (less for desktop) – extreme speed for mobile is our goal. Below:

Links to PagePipe’s articles about the deleterious use of Font Awesome:

Page weight matters most on mobile. Weight consumes connection resources. Mobile’s a different beast than desktop connections. Desktop is all-you-can-eat connections. So, in most cases, a 20k-weight difference makes little impact in load time. Except on a remote smartphone. Then it does. And it costs extra money for each page. Why does 20k even matter for extreme mobile performance optimization? Isn’t that a puny file size?

Our typical page weight for mobile speeds are in the 100k to 200k range. 20k addition is 10 to 20 percent increase. That doesn’t necessarily translate into a 20 percent increase in speed reduction. But, it’s revolting for a speed freak to consider an addition to every single page of a site (site drag). Of course, there are worse plugins. The 20k comes from HTTP requests for CSS and Javascript files. It may be worse with more features added – but we only tested for a best-case scenario. More about Elementor speed below.

Elementor delays page load time very little on an average desktop site. Viewer expectation is a 2-second load time.

An average desktop page speed (8 seconds) is unacceptable for mobile – or anyone for that matter. Average page weight (2.3M to 3M) is especially unacceptable for mobile users. Why? Because mobile viewers expect pages to load just as fast as a desktop. Less than 2 seconds! That necessitates building a 1-second page for mobile to achieve a 2-second load time.

We’re talking about building a 1-second page speed on shared hosting that typically has a 500-millisecond Time-to-First-Byte (TTFB). That is the server overhead or server delay before the page starts to render on screen. You can’t remove or change this. You can only switch to a better (more costly) host. If our performance budget is 1 second, we now only have 500 milliseconds left to load all page assets. About half of weight is usually images. The other half WordPress core, theme, plugins, and written content. Again, we say typical. There are many tricks like using no images. Or stripping webfonts. Etc.

So is adding 20k to every page bad for mobile speed? Under these conditions? Of course.


Elementor plugin natively adds 41 milliseconds to every page load. A typical plugin only adds 1 or 2 milliseconds. A bad plugin adds 250 milliseconds or more. It’s hidden in the HMTL (PHP), not Javascript. Is that bad? It depends on how much you need to squeeze your site. Obviously, zero milliseconds would be best. It’s worse Elementor added Font Awesome. Font Awesome – and icon webfonts – are faddish and bad for mobile. Someday they will be replaced with faster solutions. A better solution is leaving Font Awesome out of the Elementor package, but that’s not an option presently. Let this “non-feature” be added with a separate plugin – if the site owner wants or needs it.

Posts created with Elementor may have 400k of page weight overhead from scripts.

How much difference Elementor makes to speed and page weight is one of those, “It depends” answers.

In general, from tests, it doesn’t add any more than 40 to 75 milliseconds to global page load time. Using the premium plugin doubles the weight.

Elementor adds site drag. Plus it enqueues Javascript. This isn’t good news for mobile. Elementor negates some speed benefits of fast themes like GeneratePress or Twenty-seventeen default. Of course, most developers are unaware or apathetic to these problems.

Now with that said, Elementor only activates on pages requiring their customization. This is elegance in the name of speed. For example, we doubt blog pages require any customization.

If Elementor isn’t used on a page, the plugin isn’t activated. And jQuery isn’t enqueued either. This is miraculous good news. It means use Elementor only where necessary, not on every page. Plugins like Contact Form 7 activate jQuery everywhere. That’s the ugly norm. Elementor is smart. Plus you can use Elementor’s form builder instead of Contact Form 7.

When Font Awesome is loaded by a WordPress theme and again by Elementor, you get a double load. You can’t shut it off with the Better Font Awesome Plugin (like we hoped). This may not affect desktop speed much – only page weight. Weight is bad for mobile because bandwidth is more costly. It would be about 150K extra weight worst case. That is bad when your home page is only 100k. Adding another 150k isn’t acceptable by our standards.

Delivering icons as a font is a hack.

Author: Tyler Sticka

We didn’t test with text or image content other than a single icon. (Note we later did some testing with video lazy loading on Elementor.) So our test is weak and half-baked. It only reveals the worst stuff we hunt. If you never select any icons, Font Awesome isn’t enqueued. You’re safe. We’re not testing Elementor more thoroughly at this time. We don’t recommend page builders in general – even good ones. Why? Because site owners easily abuse them and make heavy pages. They can’t overcome the temptation to embellish. We feel page builders encourage negative UX behavior. It’s expressive design overkill. It’s like handing an open bottle of poison to an infant. They can’t resist – the site owner drinks it. Thus the skull-and-crossbones in the rating.

It looks like Elementor adds 4 or more HTTP requests. Minor. The downside to using Elementor is small for desktop sites – other than the learning curve.

We see page builders as a stopgap. Only because the best version of WordPress will be built in the future.

Good Offsite Link:

WordPress keeps incorporating features that make whole categories of plugins obsolete in a single day. This trend will continue. Automattic watches what’s emerging in the plugin directory. They’re not stupid. We don’t agree with this competitive business strategy. But the big fish will feign innovation by continuing to eat the little fish – either by acquisition or reverse-engineering.

The only detriment to using Elementor is 40-millisecond site drag added to every page of your site. And enqueuing jQuery by accident can negate gains on fast themes built specifically for mobile use. That’s low by comparison to say Yoast SEO Pro 240 millisecond bloat – and Contact Form 7 adds up to 50 milliseconds. Those are popular plugins. Popular usually means heavy and slow. A “nice” plugin loads in 1 millisecond. Is Elementor becoming a popular plugin? Yes. For us that’s a bad sign. Yes, a plugin can be popular and still have a bad retention rate. This is typical of popular caching plugins, too. Test and toss.

For extreme mobile performance optimization, we remove everything possible to reduce site drag.

The catch-22 with Elementor is using Font Awesome icon anywhere on the site. One single icon! It adds 75k globally to the site. And if your theme is loading Font Awesome, also, you’ll get a double load making site drag 150k. Does that slow down your site? It depends.

For us, adding 150k is unthinkable.

Now for some good news:

The Font Awesome bugaboo is a hidden trap. But Elementor plugin uses selective activation. In other words, if a page isn’t built with Elementor, the plugin is not loaded. (But Font Awesome is! What?) This is not typical, usually plugins will load globally on every page and post whether they’re needed or not. This we call “site drag.”

So the goal is only use Elementor on those pages where it’s absolutely needed for customization. This will reduce the number of HTTP requests (calls) significantly. For example, usually blog pages don’t require customization but a home page might use a lot of customization.

Elementor plays nice because of selective activation.

We never want to invest in the Elementor learning curve – or any other page builder or builder theme. We see them as vulnerable. It has nothing to do with speed.

Dissolution of 1,000,000 Elementor sites is collateral damage for WordPress.

Why would WordPress incur that bad-PR and offensive risk? Read on.

Page builder weakness isn’t about speed.

Even if Elementor plugin doubles the theme page weight. Does that matter? No. Why? Because heavy plugins like WooCommerce swamp potential small gains fiddling with Elementor alternatives.

80/20 rule. Pareto’s Principle.

We’ve assessed what it costs in time and money to get rid of Elementor on a site. It isn’t worth it. Elementor is a benign *growth*. No speed plugin surgery needed. Other problems for speed are much bigger and more toxic. Elementor is puny and not even worth scratching like a speed itch. It causes us no pain to ignore it.

NOTE: Selective plugin activation of Elementor, with a plugin like Plugin Logic, nukes the site. White pages. Never try that. But we do selective plugin activation elsewhere all the time. Elementor doesn’t do global loading (aka site drag). So that minimizes the need. But if you turn off a page builder on a single page or post the whole site disappears.

We could care less about Elementor. It’s not a tool we want to use. It’s fine if you use it to get web skills you need. It’s OK. No guilt.

We will and do touch Elementor on existing client websites. We never remove it – nor would we want to. What a mess that would be.

We recommended Elementor to a site owner in Germany. He had 5-second load times. He actually made the difficult switch from Divi theme to GeneratePress + Elementor combination. His load time was then around 1-second to London using the same host. Nice!

We recommend Elementor page builder – but we wouldn’t build with any page builder. This guy in Germany couldn’t code any customization. He needed a page builder. Our recommendation was Elementor. We don’t hate Elementor.

“I hired several WordPress ‘speed experts’ before. All failed to achieve decent results. Steve is an expert in his field. His advice helped me understand what was slowing my website down and fix it permanently. My site used to take 5 to 7 seconds to load – and after Steve worked his magic – it now loads in less than 1 second. Thank you!” Hamburg, Germany

Another big point is: The slow release of Gutenberg phases retards page-builder adoption.

Our speculation is not the demise of only Elementor. It’s the future demise of any WordPress Gutenberg lookalikes, copycats, or even simulators. Gutenberg doesn’t equal Elementor today. But it will in the future – that’s WordPress’ express goal. Not ending Elementor, they’re small potatoes. But nuking WIX, Shopify, and SquareSpace.

This is the answer to why WordPress will burn Elementor: MARKET DOMINATION. They want more. They want to take back the piece of pie WIX, Shopify and SquareSpace took from them.

This narcissistic strategy hurts all page builder plugins and themes. Casualties.

People will discover if Gutenberg works or not. Then we’ll all see what real WordPress landscape changes occur. That won’t happen until Gutenberg is finally released after a few phases. Face it, it’s a big undertaking. It could be a couple more years. Gag!

Our second most popular article is “Where’s the Twenty-eighteen theme?” We never imagined that article’s longevity.

Gutenberg competition will be a spin-doctor excuse to drop non-profitable loser products. Divi theme, please!

People argue semantics about what is a *true* page builder. Like BeaverBuilder or Elementor or Divi. They think in error the two universes of Gutenberg and page builders are apart. Barely related at all. Wouldn’t that be dainty?

Page builders are bad because human beings can’t control themselves and are seduced into adding too much. That’s bad for speed. This isn’t Elementor’s fault. It’s the result of human frailty.

From Gutenberg plugin page:

“Gutenberg has three planned stages. The first, aimed for inclusion in WordPress 5.0, focuses on the post editing experience and the implementation of blocks. This initial phase focuses on a content-first approach. …

These foundational elements will pave the way for stages two and three, planned for the next year, to go beyond the post into page templates and ultimately, full site customization.”

Full-site suck-o-mization? Do they mean a page-builder killer? Yep.

There is no proven or verified SEO benefit from using Elementor.

There isn’t even a whisper it’s good for SEO. If so, it’s a myth or ploy.

The vaporous claim is Elementor produces “cleaner content” – and search engines will like that. Really? So we don’t have to write content any more? Claiming “Cleaner content” is insignificant. A flea on the back of an elephant.

“In SEO, [fanatics] create uber-optimized websites, ending up with a butt ugly design, and spending all their time optimizing and coding instead of creating content and doing marketing.” – Brian Jackson


SEO is most affected by relevant content – not silly SEO trickery. If the site content is a failure (unwanted or unneeded), no amount of SEO tweaking will save a site. Ever.

And especially not Elementor. Ridiculous claim.

By Google’s own admission – WordPress core does 90 percent of the heavy lifting for SEO compliance. No need for an SEO expert. Important SEO ranking factors are beyond the control of site owners – and Elementor. Except producing good relevant content. Owners can do that. Tweaking keyword and snippets only get you in trouble.


Content is the user experience. Good user experience causes good SEO. Return visits, reduced bounce rate, more clickthru, longer dwell time. Speed is the number one hurdle to good user experience and first impression.

Anyone who insists Elementor is a superior SEO tool is a bully.

If a client insists on tool choices, you’re no longer a freelance subcontractor. Now, you’re an EMPLOYEE. That changes the payer’s tax liability.

We’re using Elementor on some sites because we want to try it out. It’s an experiment. Insane curiosity. But Elementor is proving frustrating. The more we learn and work with it, the more we find it getting in the way. We’re starting to dislike Elementor when it buries simple customization three layers deep. That makes it difficult to verify changes. Repeating steps over and over to get results is unproductive. We don’t have time to fiddle with such nonsense.

The goal is efficiency. Elementor does NOT improve design efficiency. You’d do better buying a used second computer screen so you can do drag-and-drop of media files. Elementor is a barrier and limiting factor to creative flexibility. The uninitiated think Elementor sets designers free. Wrong! It’s handcuffs for the intelligent.

Don’t let client insistence shove Elementor down your throat. Learn it if you want. But our experience is Elementor is unneeded and slows down sites – and development time. It’s a crutch for the lazy.

Any tool claiming to do “anything and everything” should be instantly suspect. Just like SEO claims and promises. Theoretical unproven benefits.

A quick summary of why Elementor is not “risk free”:

It seduces you into adding features you don’t need. This causes site clutter. Visual noise. Elementor doesn’t magically give design skill or savvy. Or discipline.

2It’s a time waster. You hunt how to do things you did before on subconscious autopilot (like colorizing text). Simple decision-making becomes complex. It’s supposed to be easier. For us, it’s not. We end up talking more about Elementor alternatives. If we were design virgins, we’d think Elementor the greatest – or even the best. It’s disappointing for experienced designers. The delight factor is feeble.

3Elementor keeps getting more and more convoluted. It’s in constant change as they update features. Complication increases technical fragility and learning curve. They can’t stop adding junk. Their panic and obsession makes us have to think.

4Elementor has a short shelf-life. WordPress (Matt Mullenweg) has no qualms admitting page builders are obsolete collateral damage. When Gutenberg reaches stage 3, it’s a done deal. Their intent is replacing all page builders. Will Gutenberg be faster? Yes. Will it be better? No. All page builders are a bane for intelligent designers. It’s a substitute decision-maker for web-design weaklings. All our sites have “Disable Gutenberg” plugin already installed. We’re ready.

There is no SEO benefit – and no speed benefit – and no usability benefit.

“The home page has to load in 2 seconds, product pages in 2.5 seconds and all other pages in 3 seconds.” – Brian Jackson


6The 8 authors of Elementor are in a Parana-fish state of mind. They’re working themselves compulsively into collapse from frenzied burnout. Out of control. They wrongly believe quantity translates into quality. It never does.

7Retention rate is low. Number of active users (1 million) divided by all-time downloads (14 million) is only 7 percent. Theoretical abandonment is 93 percent! The “Active Install Growth” trend is ever downward for the last 9 months. Our confidence level is low for the future of this plugin.

Are we using Elementor? Yes. On test sites. Why? So we can answer questions about “How good is it?” Do we recommend it? No. Avoid it if you can. If you don’t have design chops, then accept you’ll rebuild the site within two years. Go ahead. Admit you’re defeated as a web designer. Are you getting a productivity tool – or complicating your life?

“I’m working with an SEO guy and he’s kind of insisting I install and use Elementor. Which means a learning curve for me …

… I can build a site much quicker myself. … All he wants it for is something to do with his conversions and adwords” – a Scottish developer

The more we use Elementor the more we don’t like it. That’s because we write CSS code for customization. Elementor gets in the way and slows us down. But others who are non-coders think Elementor is the coolest thing since sliced bread.

Elementor isn’t simpler or faster to use for us. Elementor buries simple edits down layers of screen changes. Then we have to click back up through the layers. We’ve come to hate the process.

Elementor is an anti-productivity tool for us – a waste of resources and time.

Our feeling is the Elementor authors are doomed. Destined to burnout. Their kingdom gets fragile as it grows in complexity. Third-party addon plugins for Elementor are hack jobs by opportunists. We’re not impressed with the community. There’s a churning of updates on Elementor plugin – and lots of arguments and debating on forums. This chaos isn’t a good indicator of longevity.

Elementor is a crutch. On a simple blog rebuild, we didn’t need Elementor and could keep things simple. Building felt like silk. Elementor makes a mind trip on the lumps. Elementor is seductive to WordPress novices. Once site owners get bitten by Elementor, they forget about reducing speed overhead. “Oh! Look we can use Elementor. Goodie! Then I won’t have to think.” Thinking is what creates faster websites.

Will we continue to work on Elementor sites? Yes. We also work on WooCommerce plugin sites. Woo is heavier than all other free plugins we’ve encountered to date. We also continue to work on sites with SSL certificates. But if we can intercept the site owner – before they pull the SSL trigger – we talk them out of it. If you’ve installed SSL, your dead. You just blew away 500 milliseconds of load time. You can’t undo it. Not without ruining SEO (Google links). It’s a trap.

Design is a compromise.

A lame plugin called “WP YouTube Lyte” came out in March of 2018. Other lazy-loading videos plugin alternatives are better and don’t need an API.

LYTE by default uses WordPress “the_content”-filter. Page builders (Elementor) don’t apply that filter to their content. So LYTE plugin doesn’t work on Elementor. Neither do other lazy load for video plugins.

Elementor breaks YouTube video lazy load plugins. Why? Because Elementor renames things different from standard WordPress operation. This is poor. So then you have to buy Elementors Premium (Pro) plugin to add video with their widget. We don’t like that ploy.

10,000 installs
All Time 333,845
156.2 kB download


[bscolumns class=”one_third”]

If you’re new here, start with our best primer speed articles.


[bscolumns class=”one_third”]

If you’re ready to give your WordPress site wings, here are powerful tools to speed up your site.


[bscolumns class=”one_third_last”]

Learn how the most popular plugins and ideas waste your time – and hurt web speed. Includes important tips for mobile speed without coding.


Gutenberg versus Elementor: mobile speed – good or bad?

What’s the verdict on how Gutenberg editor affects WordPress load time?

Some say Gutenberg slows down WordPress core from 24 milliseconds to 116 milliseconds. That would mean Gutenberg sucks for speed. How bad? About the same as adding Google Fonts to your site. Is that bad? Well, for extreme speed, we always strip Google Fonts from a theme.

But that reported benchmark is lame. The dust hasn’t settled on Gutenberg enough to learn the real speed badness.

Another guy commented saying, “Gutenberg adds only 30 to 40 milliseconds.”

“However, the overall rendering time for a simple text-only post increased by almost 500%, when Gutenberg was enabled. There is certainly some level of optimization that will occur when Gutenberg is merged to the WordPress core, but in general, it seems like WordPress’s baseline speed may suffer significantly.”

“Even after disabling Gutenberg with the Classic Editor plugin, overall rendering time is still 300% slower than the existing editor.” – Source


But really, it’s impossible to tell how the final version will be for speed.

And we loved this comment – of course. Because it bashes on the page-builder temptation-to-bloat syndrome:

“Based on what has happened with page builders like Divi, Beaver Builder, etc., when you give people easy options too many of them choose all the things! They don’t even understand they’re dragging their site down, because it loads fast for them (because of cache – which they also don’t understand).”

Many believers and defenders of page builders like Elementor claim “Gutenberg isn’t a page builder.” We agree. It’s not yet a page builder. It’s a more-complicated editor. But people of “credibility” claim it is a page builder.

So what? Who cares about a silly definition?

Because people label Gutenberg as a page builder – even when it’s not – causes retardation of Elementor adoption. For example:

“Now, four months after my post, Gutenberg has grown up a lot, and it has evolved into a page builder that is being developed at a very rapid pace.” – Source

Hmm? Is the world defining Gutenberg as a page builder? This creates more market confusion.

“Given that Gutenberg is basically a very advanced page builder plugin (like the many premium plugins on the market that do a similar job and will likely suffer because of Gutenberg), albeit with more scope, it is questionable why this feature plugin has been given the green light for a merge into core.” – Source

Still, more eggheads think Gutenberg is a page builder? Is this erroneous thinking affecting Elementor adoption? We think so.

Doomsday plugin authors encourage stripping or disabling Gutenberg before it’s even released. Three example plugins follow:

1Classic Editor [plugin] restores the previous Edit Post screen and makes it possible to use the WordPress plugins that extend it, add old-style meta boxes, or otherwise depend on the previous editor. Fully replaces the Gutenberg editor and restores the Edit Post template.” – Source

2Gutenberg Manager allows you to enable/disable the editor where you want. Why would you want to disable the editor on pages? Maybe you would like to use a page builder like Visual Composer or Elementor instead!” – Source

These guys imply Gutenberg is a page builder alternative, too!

What gives?

3“When Gutenberg is active, the [Disable Gutenberg] plugin disables it (depending on your selected options). Otherwise, if Gutenberg is not active, the plugin does nothing. So it’s totally fine to install before Gutenberg is added to WP core, so it will be ready when the time comes.” – Source

And what does WordPress say on their Gutenberg plugin description:

“Gutenberg is more than an editor. While the editor is the focus right now, the project will ultimately impact the entire publishing experience including customization (the next focus area).” – Source

Is Gutenberg more than an editor? Is it gonna be a page customizer? Say what?! We thought they said it was only going to be an editor? We get it now. WordPress thinks it’s a page-builder killer. Their written goal is to “create beautiful layouts” – “a foundation for things to come.” But only “90% of plugins” will work with it. That means 5,519 plugins will not work with it. Oh, joy!

We loved this guy’s comment:

“Gutenberg surely is an interesting and ambitious project, but not of any use for 99% of my clients.” – Source


So there are about 1,000,000 Elementor installs. That’s a lot. Elementor is a popular page builder.

But Elementor growth is slowing down. Why? Gutenberg is damaging (retarding) all page builder adoption. The installation numbers would be even more if Gutenberg were dead or complete.

The actual growth rate from Elementor plugin advanced section.

Elementor active installs 1,000,000. We’re still not impressed with the trend. 7 percent is the low retention rate. High would be 30 (good) to 50 percent (excellent).

Their retention rate is less than 10 percent. 93 percent of people who try Elementor abandon it.

Not impressive. 10 percent is a low retention rate. High would be 30 (good) to 50 percent (excellent).

Reader quote: “I’ve gleaned a lot from reading your site … especially what heavyweight plugins to avoid. You also solidified my intention to avoid Elementor (if I can’t do something with GPP [GeneratePress Premium], I can live without it.) Besides, with Gutenberg coming, I’ll just wait for WP to natively add page building features.”

How do other page builder growth rates and retention rates compare?
(Retention rate is a percentage. Active installs divided by number of all-time downloads).

  • PageBuilder by Site Origin
    1 million+ active installs, retention rate: 6 percent (poor).

Sorry. WPBakery Page Builder (formerly Visual Composer) and Divi Builder by Elegant Themes are not free. Based on the flurry of emergency promotions, we’d guess they’re in decline, too.

What’s causing this mysterious decline of once-upward-trending page builders?

Why? It’s really no guess at all. Gutenberg! Released on the 6th of December 2018.

WordPress (Automattic) will mickey-mouse for three years getting Gutenberg to a workable version. Let’s see what happens. The first released version will be 100-percent extreme poor quality. But they’ll promise to fix it – right away (stall tactic). And, yes, we agree. Gutenberg is classic vaporware.

Gutenberg will dominate the market even though it sucks. The Herd will prevail.

Today, we predict page builder plugins will die before the end of 2019.

Gutenberg is another example of retarding market growth with technophobia. Technophobia includes the fear of obsolescence. Wasted time and money by the user adopting the wrong thing too soon.

The best page builder isn’t invented yet.

From Gutenberg plugin page:

“Gutenberg has three planned stages. The first, aimed for inclusion in WordPress 5.0, focuses on the post editing experience and the implementation of blocks. This initial phase focuses on a content-first approach. …

These foundational elements will pave the way for stages two and three, planned for the next year, to go beyond the post into page templates and ultimately, full site customization.” – Source

Full-site customization? Do they mean a page-builder killer?

Are you convinced Gutenberg isn’t a threat in any way possible to Elementor?

It’s technically not. Not yet anyway. Not for three more versions according to WordPress. But somebody conveniently neglected to tell the herd this information. Humans are now confused about what a page builder really is and does. Thanks to WordPress Gutenberg!

“Given that Gutenberg is basically a very advanced page builder plugin (like the many premium plugins on the market that do a similar job and will likely suffer because of Gutenberg), albeit with more scope, it is questionable why this feature plugin has been given the green light for a merge into core.” – Source

More critics think Gutenberg is a page builder?

Is erroneous thinking affecting Elementor adoption?

If we used a page builder, it would be Elementor. We’ve allowed speed clients to keep it without complaint. We’ve recommended it to people who need page builders – and speed. We don’t need a page builder to build a website. But some people do.

Page builders are only bad because human beings can’t control themselves. They’re seduced into adding too much. That’s bad for speed. This isn’t Elementor’s fault. It’s the result of human frailty. The whole page-builder phenomenon makes it easy for novices and dummies to create ridiculously slow (and also ridiculously goofy) websites.

Page builders are a crutch. But we felt WordPress was a crutch, too. Shall we change our tune? Not until after the dust settles on Gutenberg. WordPress can nuke all page builders in a blink. We don’t like that.

You can’t add Gutenberg features without hurting overall performance in some way. The churning in releases makes it impossible to know exactly how much that change is in milliseconds. We have to wait for the dust to settle.

From our latest speed testing: WordPress core with Gutenberg/v5.0.3 is more than 400 milliseconds slower to load than WordPress 4.9.8. That result is after two performance tweaks by the Automattic team (author of WordPress).

PagePipe’s collection of favorite plugins.

Plugin retention is the percent of active installs divided by the number of all-time downloads.

Complete Analytics Optimization Suite (CAOS)
Active installs: 10,000+
Zip file size: 7k
All-time downloads: 39,951
Retention rate: 25 percent (good)

REFERENCE: How does Google Analytics affect mobile speed?

Far Future Expiry Header
Active installs: 20,000+
Zip file size: 7k
All-time downloads: 98,972
Retention rate: 20 percent (dang good)

This plugin appeared abandoned but it’s author returned and updated it recently. While this isn’t always necessary, it’s a good sign the plugin is “fresh.” We’ve used it for years.

This plugin will add a “far future expiration” date for various file types (like image files) to improve site performance. This is a best practice advocated by the Yahoo Extreme Performance Team. It keeps files and images cached longer. There is also a radio button to enable Gzip – a nice addition. (More about Gzip >)

REFERENCE: Is there a speed plugin for fixing Pingdom “Leverage Browser Caching” errors?

Holler Box – WordPress Popup Plugin for eCommerce
Active installs: 1,000+
Zip file size: 122k
All-time downloads: 13,273
Retention rate: 7 percent (low)

This small plugin uses only 3 calls (HTTP requests). 2.8k, 3.6k, and 3.8k loaded in parallel. That’s about 10k. Estimated load time: less than 40 milliseconds. But not on every page – only where it’s used (selective activation). Holler Box is a nice, lightweight plugin built correctly for mobile speed.

Holler Box (112k download) does all the essential OptinMonster functions for free – plus some – and doesn’t weigh a ton. Hollarbox is lightweight and loads fast.

REFERENCE: Faster and free alternatives to popular OptinMonster or SumoMe WordPress plugins.

WP jQuery Plus
Active installs: 4,000+
Zip file size: 3k
All-time downloads: 22,426
Retention rate: 19 percent (good)

Almost every browser on the planet already has Google’s jQuery CDN address loaded in cache.

You can change the WordPress code to substitute Google’s CDN hosted jQuery. But there’s an easier way. Just use WP jQuery Plus. It’s a WordPress plugin that loads jQuery from Google’s free Content Distribution Network (CDN). Users geographically far from you can download jQuery faster. The Google version of jQuery is also Gzip compressed and minified for fastest page loading. Yet, even though Google’s CDN servers are fast, it’s still not the biggest motivating gain.

REFERENCE: The fastest jQuery is the one you never have to load.

“Additional CSS” customization code often (usually?) disappears when changing themes and sometimes when updating. It depends upon the theme author’s diligence. Preservation isn’t built into core as one might suppose.

Adding a child theme to preserve custom CSS code generates an extra HTTP request. Our workaround (and there are others) is to use Tom Usbourne’s free “Simple CSS” plugin. It appears alongside the normal Additional CSS feature in the WordPress Customizer. This plugin doesn’t create an extra call (like a child theme) but still protects the code.

Simple CSS
Active installs: 70,000+
All-time downloads: 163,000
Zip download: 136k
Retention rate: 43 percent (high)

REFERENCE: Remove WordPress child themes for mobile speed.

Email Address Encoder
Active installs: 100,000+
Zip file size: 5k
All-time downloads: 332,978
Retention rate: 30 percent (high)

REFERENCE: HTTPS / SSL and it’s negative impact on mobile speed.

Disable Embeds
Active installs: 10,000+
Zip file size: 3k
All-time downloads: 45,760
Retention rate: 22 percent (medium)

REFERENCE: oEmbed removal for mobile WordPress speed fanatics.

PNG to JPG plugin
Active installs: 2,000+
Zip file size: 10k
All-time downloads: 10,115
Retention rate: 19.7 percent (good)

Description: Convert PNG images to JPG, free up web space and speed up your webpages:

  • Set quality of converted JPG.
  • Auto convert on upload.
  • Auto convert on upload only when PNG has no transparency.
  • Convert existing PNG image to JPG.
  • Bulk convert existing PNG images to JPG.

REFERENCE: 10 speed changes for $1,985. Do them yourself with free plugins.

P3 (Plugin Performance Profiler)
Active installs: 100,000+
Zip file size: 183k
All-time downloads: 1,326,681
Retention rate: 7.5 percent (low)

Description: See which plugins are slowing down your site. This plugin creates a performance report for your site.

At this point, we smile. Over 100,000 sites made a bad assumption. They left this plugin active in the name of speed improvement. Ironically, the plugin slows every page and post by 12.7 milliseconds – even when sitting there. Oops!

WordPress plugins are PHP code. Various blogs and forums claim PHPv7 breaks the P3 plugin. The only plugin it tests is then itself. Our cheap, shared hosting is a techno-laggard (paradoxically, GoDaddy). They are still running PHPv5.4 as the default. Is that why they haven’t updated the plugin yet? For our speed demonstration, this may be helpful. But PHPv7 makes WordPress load so much faster – around a third the original v5.4 load time. Super fast. In theory, a 2-second page might load in 660 milliseconds. Beautiful! Many hosts have already adopted PHPv7. GoDaddy finally did mid-2017. We moved the version up a notch to version 7.1 in Cpanel on GoDaddy – a small speed boost.

P3 (Plugin Performance Profiler) causes 12.7 milliseconds of site drag. So we recalculate the results without this number messing things up. After testing, don’t leave it installed. At least, disable it. But we always remove it.

REFERENCE: P3 Plugin Performance Profiler and mobile WordPress speed.

Simple Basic Contact Form
Active installs: 9,000+
Zip file size: 261k
All-time downloads: 75,017
Retention rate: 12 percent (medium)

*All forms require placing a shortcode on your contact page.

REFERENCE: Contact Form 7 plugin slows down page speed for your entire website. Not just your contact page.

Date/Time Now Button
Active installs:
Zip download size:
All Time Installs: 10,191
Retention rate: 19.7 percent (good)

REFERENCE: Evergreen Content: Expired dates diminish site credibility.

Autodescription (aka The SEO Framework)
Active installs:
Zip download size:
All Time Installs: 370,034
Retention rate: 13.5 percent (medium)

Autodescription plugin doesn’t do grotesque slow downs like Yoast SEO (from 150 to 240 milliseconds site drag). All SEO plugins consume ever-growing database resources. The plugin authors don’t tell you about that hidden liability.

Do we think SEO tricks alter ranking or increase click thru? We’re unconvinced. It doesn’t move the needle. But site owners desire feeling in control of the uncontrollable page rank and clickthrough.

REFERENCE: Autodescription SEO plugin and mobile speed.

Lazy Load by WP Rocket
Active installs:
Zip download size:
All Time Installs: 92,829
Retention rate: 11 percent (medium)

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.

Go to Settings > LazyLoad and check the 3 boxes to activate. This will then lazy load:

REFERENCE: Lazy load images and video for mobile speed.

Deactivate XML-RPC Service
Active installs: Fewer than 10
Zip file size: 26k
All-time downloads: 132
Retention rate: 7.5 (low)



Simple Content Adder
Active installs: 30+
Zip file size: 1.2M
All-time downloads: 358
Retention rate: 8.3 percent (low)

WP Image Refresh
Active installs: 700+
Zip file size: 823k
All-time downloads: 4,630
Retention rate: 15 percent (medium)

The two suggested plugins are free, obscure, and esoteric. We’ve experimented with various plugins. This combination works best for us.


Disable Comments
Active installs: 1+ million
Zip file size: 82k
All-time downloads: 5,041,978
Retention rate: 20 percent (good)


Plugin Logic
Active installs: 100+
Zip file size: 15k
All-time downloads: 2,998
Retention rate: 3 percent (very low)


Peanut Butter Bar (smooth version)
Active installs: 600+
Zip file size: 39k
All-time downloads: 5,345
Retention rate: 11 percent (low to medium)


Remove Query Strings
Active installs: 10,000+
Zip file size: 12k
All-time downloads: 47,002
Retention rate: 21 percent (medium)

These plugins are super lightweight and benign. You may see millisecond improvements. There’s no reason not to install one for speed.

The bottomline is: removing query strings does no harm – but the only benefit most likely is an improved test score – not speed. Of course, the question is, “Why do speed tests insist it be done?” It’s ivory tower idealism.


The best lightweight plugin for deactivating XML-RPC to improve WordPress security.

We snoop on WPMU DEV often. Some may call this snooping industrial espionage. Maybe? It makes us feel 007ish. WPMU DEV is owned by Incsub, LLC. Who? Never heard of them. They’re one of our rival competitors. We’re small. They’re big. You’ll recognize their product names. More on those in a moment. They produce: “Your WordPress Toolkit.”

Incsub, LLC left off the word expensive. “Your Expensive WordPress Toolkit.” We duplicate their cool stuff with free plugins from the WordPress directory. Sadly, it makes them look greedy. It makes us smile.

Incsub, LLC are good at marketing and selling WordPress people premium plugins and themes. For the uninitiated, premium means paid. There are free alternatives they neglect telling you about. They don’t want us telling you about these plugin secrets either. That’s right. Free plugins exist duplicating their “premium” wizardry.

Incsub, LLC (aka WPMU DEV) have the art of producing customer fear down to a science. For example, you can take their WP-Checkup for free, once in a 24-hour period. (Sorry. Clearing browser cookies won’t get you a second shot. We tried). The checkup will frighten you. It frightened us anyway. OK. Not much.

Their claim:

Get a WordPress Checkup
Quick, Free & Easy
Get a professional performance, security and SEO scan

The goals is scaring the bejeezus out of you by convincing you your site is riddled full of holes and faults. The alarms encourage you to purchase their expensive membership as a solid solution. In this case, they include:

Make your site fly, save bandwidth and watch Google love you in return. (Put your wallet away and look at cost-saving FLY.ME Speed Knockoff first.)

Stay safe! Defender will harden, protect and scan your site daily.
(Once again, you can save dollars with POLICE.ME alternatives to save speed and money).

Boost your rankings with in-depth tech and some awesome tweaks. (Check out SEARCH.ME Speed Knockoffs before you buy Smart Crawl).

Their test produces a technospeak assessment about speed, security, and SEO. All regurgitated scary Google edicts from Google PageSpeed Insights. Most will not make any difference. But thinking you’ve violated Google’s code of conduct causes great fear in some less-web-savvy site owners. They have visions of blacklists or serious snubbing by search engines. Calm yourself. The Emperor has no clothes.

There are 10 performance parameters they test and report with a score of 100 being best and zero the worst. More in depth about the speed list here.

There are 25 SEO parameters tested and reported. Please don’t believe any of this SEO drivel and myths. What produces good SEO is relevant content and interesting titles. That’s it. All other details listed don’t move the needle for SEO. Complete waste of time and money. Write for humans – not machines.

Security assessment has 12 parameters. PagePipe had some errors reported we knew were false. For example: it said our user name was “admin.” It’s not. We’re using our POLICE.ME free security plugins. Good reports on everything.

But the test did draw our attention to a minor bugaboo we overlooked. It said a file named XML-RPC.php interface was available. So what? It’s part of WordPress core. We were curious about this and wanted to learn more. Was it bad? Was Defender plugin the only way to block this “security hole”? And how serious was the risk?

We discovered there was a legitimate concern to disable this file. Hackers can use it to gain access to your site. Could we do the repair for free? The answer is: yes.

We appreciate free, non-coding plugin solutions. But they shouldn’t add any page weight or load time to our website. We found a good plugin to add to our mix for security. It’s “Deactivate XML-RPC Service.” Why add it?

XML-RPC is used for remote posting/publishing and pingbacks. XML-RPC on WordPress is an API. If you disable the XML-RPC service, you lose the ability for applications to use this API to talk to WordPress. It’s used by phone Apps  interfacing with WordPress sites. It also presents an opportunity for malicious site attacks by hackers.

The code authors attest the programming of XML-RPC is as secure as the rest of the core files of WordPress. But some feel safer by disabling this file. If you don’t need it and it won’t slow down the site, why not disable it?

Have WordPress sites been compromised because of XML-RPC? Yes.

Disabling WordPress XML-RPC is a precautionary measure against brute force attacks. There are at least 14 Disable XML-RPC plugins in the WordPress plugin directory. That tells you something about community anxiety level. That’s a fair number of plugins. Many are pretty old (3 years) and some appear heavy. Not all work. We rejected three before we found one that really did the job.

Deactivate XML-RPC Service is the newest, freshest, and lightest (358 bytes is all and no HTTP requests or APIs). You install it and it’s a done deal. No settings.

Deactivate XML-RPC Service
Active installs: Fewer than 10
Zip file size: 26k
All-time downloads: 132
Retention rate: 7.5 (low)

Because Jetpack or remote mobile access need XML-RPC.php, then the only game in town is:

Stop XML-RPC Attack is the heaviest package (usually meaning potentially slow). But it adds no weight or requests. And it works, too. We tested it – but aren’t using it. We don’t use Jetpack.

There’s a free online test of WordPress XML-RPC:

You don’t want to pass the test. You want the test to say: “Failed to check your site because of the following error: 405 error XML-RPC services are disabled on this site.”

We’re adding Deactivate XML-RPC Service as a recommendation in the POLICE.ME Speeder Knockoffs.

One more security plugin trick to consider is WPS Hide Login plugin. It’s a very lightweight plugin. It really only has one, active, 15k file. Ironically, almost all of the talk on their forum is about XML-RPC vulnerabilities. Which we’ve previously addressed above.

WPS Hide Login has 100,000 installs and 409,840 all time downloads. That is a 24 percent retention rate. That’s  high. A lot of people like “Hide Login” and are keeping it. A better indicator of value than popularity.

If you use WPS Hide login you need to watch out if you do a migration. Probably best to disable the plugin before that occurs.

You could get locked out really easily if you forget your assigned URL. Proceed with caution.

Free alternative to the $29 Gonzales speed plugin.

Loading plugins redundantly and globally decreases the speed of your pages. It’s best to deactivate heavy plugins on pages where they’re not needed. JavaScript, CSS files, and SQL queries are then reduced during page load.

A popular WordPress form plugin is installed on over 1 million WordPress websites. The favored culprit is Contact Form 7. It adds 37k page weight to all pages on your website. Even when the plugin is only used on one page – such as your contact page – the plugin “globally” slows down all pages. This “global” activation is even more problematic for heavier plugins like Google Maps or social media controls. We call global plugin activation “site drag.”

Other form plugins are lighter and faster. But substitution isn’t the solution or our main concern. What if we absolutely needed to use Contact Form 7 plugin because there is a special addon plugin that gives us more extended utility (And, there are addons!) How can you prevent global loading?

We fix it with a plugin that restricts a “heavy” plugin to just the pages where it’s needed.

Plugin Logic
Active installs: 100+
Zip file size: 15k
All-time downloads: 2,998
Retention rate: 3 percent (very low)


Plugin Organizer
Active installs: 10,000+, Zip archive 295k

both let you deactivate or activate plugins on a page-by-page basis.

Update: We’ve located two others we haven’t tested yet – but they have potential. We’re surprised these have more downloads than Plugin Logic. Both are a heavier download. Once again, we see how product naming affects findability in the plugin directory.

Plugin Load Filter
Active installs: 600+, Zip archive 137k

and another:

WP Asset CleanUp (Page Speed Optimizer)
Active installs: 3,000+, Zip archive 57k

With these plugins, you can selectively disable plugins by any post type or WordPress-managed URL. But if you’ve read our recommendations about plugins and themes, you know we usually choose the lightest plugin when possible. Smaller file size usually equates with efficiency, which means it will probably load and work faster.

You don’t need to buy the $29 Gonzales plugin. Use one of these four alternatives instead.

Of the four plugins, Plugin Logic (only 100+ active installs) is the simpler and easier to use. It hasn’t been downloaded much yet compared to Plugin Organizer (10,000+ installs). Using the Plugin Organizer is more complicated because it let’s you change the plugin load order. Changing the load order can help prevent plugin conflicts, which is a nice bonus feature if you need it – but we don’t, so we’ll stick with Plugin Logic.

Video Tutorials for Plugin Organizer (The fact people have created video tutorials indicates the plugin setup is complicated.):

Other Uses

While our main focus is page-speed improvements, here’s another example of how plugin deselection can help:

We’re using the WP Image Borders plugin (266k compressed download) on a client’s website. It makes it easy to add image borders to pictures on pages or posts – but activation is global. The plugin adds borders to images on all pages.

But we don’t want borders around every image – as in the case of these circular buttons show here – the border ruins the look. So we deselect the border plugin for just that page. Problem solved.

BEFORE: With light-blue border, edges show up as squares.
AFTER: The blue line is removed because the border plugin is deselected for only that page.


Lazy load images and video for mobile speed.

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).

Lazy Load by WP Rocket
Active installs:
Zip download size:
All Time Installs: 92,829
Retention rate: 11 percent (medium)

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.

Go to Settings > LazyLoad and check the 3 boxes to activate. This will then lazy load:

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 documentation!

Lazy Load for Videos
Zip file size: 271k
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. 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, also.

End of YouTube video attempts to entice visitors away from your site. Sometimes to competitor sites. Bad! Defeating this *non-feature* is an option with the Lazy Load for Videos plugin. There are other methods but we’ve found this the simplest way to keep visitors engaged with your site content.

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

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

BEFORE: lazy load for video plugin installed. The test page has 13 one- to seven-minute duration videos. Pingdom is a best-case scenario. Load time is 3.15 seconds. Using, the test page loaded in over 7 seconds (worst-case).


AFTER: lazy load for video plugin installed. Same test page. Pingdom is a best-case scenario is now 1-second with unprimed cache. With cache, page load is 853 milliseconds.

We’ve also found this good lazy load plugin:

Lazy Load XT
Active installs: 3,000+

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. This makes Lazy Load for Video plugin more attractive for mobile experience. All these plugins video preview and play button are scalable and optimized for mobile devices.

Lazy Load for Videos plugin is our prefer plugin between these two. Both work and if one has a conflict – try the other one. You can use both these plugins with selective activation if your 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.

There’s not too much overhead for a single video. What happens when you have a video library or a blog with multiple videos?

YouTube loads a number of files (8 requests) with each iframed video. Web pages with multiple Youtube videos slow down due to these multiple HTTP requests and downloads. Preventing or delaying embedded YouTube video player loads is the speed goal.

The fastest websites have no JavaScript, no CSS, and require no database calls. YouTube does all this and preloads third-party ad stuff you’ll see at the end of the video (related videos).

Video-loads slow a page down by a half-second typically. It’s only a big deal if a half second is important to you. Our goal is a 2-second load time. If you put a video on a home page, boom! Potentially, 25 percent of performance budget is shot.

One example is the very video page where you saw the robots. Before plugin: 3.15 seconds. After: 1.03 seconds. Supposedly, it should be worse – but caching seems to help YouTube somehow. There are 13 videos on that page. Do people do that cramming? Yes. A video library page is common practice.

Is a 2-second differential important? Not if your target is an average 8-second page load.

It’s not really about measuring speed. It’s about human attention span and expectation. 2 seconds is the sweet spot for page loads (today). But one second feels seamless. User experience is then optimal.

If you want excellent pages (we mean in the top 1-percent quality range or under 1-second page loads), you have to take video into consideration. What if a form is also on the page? And there is HTTPS/SSL? Then videos just add to the speed overhead.

How good is good enough is always a compromise. Can you get 2-second load times on shared hosting? Yes.

Speed is just a feature. Make your website fast and useful, too. If it’s not useful, who cares if it’s fast.

September 2016 report – Average load time for mobile sites is 19 seconds over 3G connections.

Do website owners have anxiety about a half second? Yes. That’s a major problem (they think). But not for someone on a desktop with fiber connections.


“A single YouTube embed can load up to 400KB of data before you even hit the play button.”

From surveys, the top three biggest challenges for WordPress users are: 52% performance issues, 41% security issues, 35% site-breaking updates. NOTE: These are all fear related – not reality related.

Most common goals for WordPress websites in 2018:
64% increase traffic,
43% increase revenues,
39% become more efficient at running a site.

All these three are profit related.


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+


TOP 4 Hello-Bar Knockoff Plugins for Page Speed

Notification bars run across the top of a website. They display valued information. Such as a link to a newsletter, latest blog post, or promotion.

This bar is unobtrusive compared to a pop over or pop under. It’s up at the page top or bottom drawing eyeballs without ruining content. We hate popups for email signups. Awful UX. Static and sticky notification bars are gentler on user’s anxious nervous systems. And better for anger management, too. Plus, popups are heavy in the Javascript code department. That slows down your site.

Notification bar strategies include downloads for an ebook or webinar. Or link to a landing page. Setting a link to PayPal to sell case-study reports was our original goal.


Widget or plugin overload: In this category you’ll find common household names like a comment plugin or Hello Bar — notorious for killing page speed. – Author: Demian Farnworth

Testing profit improvement inspired our experiment with a notification bar. We heard claims of 11-percent revenue gains using a bar. And another user claiming around 20-percent extra revenue by using a bar, too. That sounded pretty good to our greedy ears. We wanted to find out what plugin might add these features – but not affect page speed.

When you search for speed plugins, you’ll find the best ones with unusual or odd-geeky names. Usually with few active installations, and residing in obscurity. They are misunderstood. Plugin authors aren’t always good communicators about benefits. Below we explain how to find these lost “speed” treasures.

The most classic notification bar is “Hello Bar.” It’s the granddaddy plugin of this type. Hello Bar, the plugin, is free. But the SaaS cloud-based service is not. They charge by the click. If you receive 7,500 clicks per month, HelloBar may costs you $50 per month. Ouch! So we went shopping for free plugin alternatives.

Pricing for the Hello Bar free version is no longer publicly available on their website. Suspicious behavior.

Most notification bars we tried had ugly, distracting author’s logos. Egotists! Our solution was to color a logo placeholder the same as the background. Then upload it via FTP overwriting the original image file. A lightweight 0.8k PNG image substitute is invisible to the eye.

If you use Hello Bar’s free version, it includes their own advertising. You’ll be showing slow-loading ads on your site that aren’t earning you any money. And, worse, they use premium real estate you’re trying to use for your own Call-To-Action. It’s designed to get you to sucker for their pro plans. Bait and switch.

Hello Bar uses a freemium version with unpublished monthly limitations. But charges are still based on clicks per month. And a $12 per month *pro* version allows 250,000 visits per month ($5/mo for each additional 25,000 visits). We still don’t like it. Slick-marketing stink is all over the company’s home-page signup. We trust our intuition. Run.

The plugin that “smells-like” a good substitute is “Attention Grabber (Hello Bar Alternative)” free plugin. After installation during testing, the plugin added 500k to the page weight – appalling us. At the time, we were working on a test page well under 100k. It instantly bloated to 600k. So that plugin went into the trash bin.

Other notification bars are lighter for speed. One that fit the bill was Notification Bar by WPFruits. This plugin is no longer free ($20). It’s only 2.5k installed with compression. There are 53 free notification bars in the WordPress plugin directory. When you finish this article, there may be another one!

How do you figure out which notification bars are worth testing? Fortunately, this isn’t our first plugin rodeo.

First, define your goals.

  • We want a simple notification bar. No coding!
  • We want to customize the colors to match our theme.
  • We want either a text link or button for call-to-action responses. If there is no “click-thru”, we’re not interested.
  • It would be nice to have a plugin updated or introduced recently. Our collection of plugin candidates vary in staleness from super-fresh (less than 1 month) to over 60 months (crusty 5 years!).
  • Is popularity important in this culling? We think so. There are many with less than 10 installation. Those  count if they’re fresh baked. 5 years and 10 installation is a loser.

So what plugins did we cull from the list of possibilities?

  1. Three notification bars didn’t have “click-thru.” That got rid of Sitewide Message, InfoBar Top Notification, and WP Sticky Header. And a few more penalized were mystery meat. Their fuzzy descriptions and confusing screens shots weren’t obvious: WP Notification Bar (singular), Notification MSG Interface Benaceur, and Bonjour Bar.
  2. Four plugins that use third-party slow-loading APIs hit the trash. Those include: Sticky Ecommerce Targeted Offer / Discount Widget, The NotiBar, Powr Notification, and Notification Bar.
  3. We axed three plugins having less than 10 installs and being heavier than 100k – and being over 1 year since update: WP AdPunch LITE, SocialTVs, Ciusan Notification Bar. We kept any that were lightweight. We wanted to look closer at those. Stale doesn’t always mean bad. It may mean the plugin author’s on a a deserted-island vacationing for 2 or 3 years. Nice lifestyle.
  4. We know sorting by package weight kills most popular plugins. But we don’t have a lifetime to figure out a “good-enough” plugin. We’re not searching for perfection. We eliminated 13 already. We’ll use an arbitrary cutoff of the top-10, lightest, zip packages. These all weigh less than 50k. To give you an idea of the range, the heavier plugins were 1.5M to 3.5M in size. Huge! We pity the poor sap who unknowingly chooses a plugin boat anchor.

Top-10 sorted by weight

TOP-10 Hello-Bar Knockoff Plugins for Speed ZIP k ACTIVE MONTHS
Notification bar by DJJMZ 3 10 24
Guerrilla’s Sticky Bar 5 10 24
NotifySnack 11 90 36
Notifications 15 90 36
WP Header Notification 25 100 36
Top Bar 27 6000 9
Responsive Notification Bar 29 70 24
WordPress Easy Sticky Notification Bar 39 200 6
Peanut Butter Bar (smooth version) 39 700 12
Quick Notice Bar 44 500 24

We’ll test all ten candidates on Twenty-seventeen default theme. Two are looking pretty good just from weight, installs, and freshness: Top Bar with 6,000 installs and updated 9 months ago. The other: WordPress Easy Sticky Notification Bar with 200 installs and updated 6 months ago. But we’ll check them all anyway to be certain.

6 Failed Plugins

  • Notification bar by DJJMZ – no workee.
  • NotifySnack used an embedded Javascript snippet for API access. Slow.
  • Notifications – didn’t show.
  • WP Header Notification – didn’t show.
  • Responsive Notification Bar – ugly green and yellow colors and not selectable. Load time changed from 1 second to 4 seconds. It was repeatably bad but it’s unclear why.
  • Quick Notice – Too much Facebook and button overhead: up.png: 2.5k, down.png: 2.5k, and (11.7k), (126k), (1.6k). We hate Facebook!

4 Working & Lightweight Plugins

  • Guerrilla’s Sticky Bar (1 request: 1.0k) dismissal with day-delay timer, customizable colors. (This plugin was closed on November 25, 2018 and is no longer available for download.)
  • Top Bar (1 request: 1.1k) no dismissal, limited-selection colors.
  • WordPress Easy Sticky Notification Bar (1 request: 1.2k) no dismissal, custom fonts (slow), fixed colors.
  • Peanut Butter Bar (smooth version), (1 request: 1.9k) works nice. no dismissal, default fonts, color customizable.

We thought Top Bar would be the winner because it had 6,000 installs. But it wasn’t as “feature-rich.” Really, it’s not that customizable. We’re using Peanut Butter Bar.

Peanut Butter Bar (smooth version)
Active installs: 600+
Zip file size: 39k
All-time downloads: 5,345
Retention rate: 11 percent (low to medium)

Is there a speed plugin for fixing Pingdom “Leverage Browser Caching” errors?

We demonstrate a common but little understood speed problem usually labeled as Leverage Browser Caching. Various tests report this fault condition slowing down pages. But they don’t explain much about what it is and how to fix it. It’s pretty simple – and there’s a nice plugin solution.

There are various sites for testing page speed. Our favorite is It’s a popular place so you usually have to wait in line – plus their test is pretty comprehensive adding more delay for results. Our go-to test for faster quick-and-dirty results is – and after that

Here’s a screengrab of a Pingdom test for an optimized site:


The test says there are two “failures” (big red Fs). Those are #1 Minimize request size and #2 Leverage browser caching. That seems like pretty harsh criticism for a page that loads in only 658 milliseconds on a cheap, shared GoDaddy hosting. We soon discover the bad review isn’t really warranted. Let’s take a closer look by expanding the “accordion” performance insights:


We almost laugh out loud at the itemization of errors. First, there’s only one URL that doesn’t fit into a single packet causing the first error condition: Minimize request size. And that’s an HTTP request call to Google CDN for a webfont. Completely beyond our control and something Google should care about more than us. Let’s move on and just ignore that single call. But talk about harsh – an “F” (41).

Why speed test scores are bogus READ MORE here:

The second category, Leverage browser caching, says there are 6 errors. Five are image files and the last file is another Google font. Again, we have to ignore the errant Google font.

Note: A simple font solution would be killing (removing) Google fonts and use the native browser fonts in the CSS stack. We could do this with Remove Google Font References plugin. But we feel the fonts add to the page “style.” The pages are pretty fast already and load time is more important than getting a good Pingdom score.

So how do we get rid of this Leverage browser caching problem? They give us a hint with the instructions:

The following cacheable resources have a short freshness lifetime. Specify an expiration at least one week in the future.

What does that mean? They are talking about a web speed trick called far-futures expiration. It is a best-practice for speeding up your website by using Expires or a Cache-Control Header. This is server-side coding that is added in the .htaccess file that resides on your server. There are many tutorials on how to do this manually. But if you are inexperienced at editing these kinds of files via Cpanel or FTP, we have a simpler, automated plugin solution. Read on:

Far Future Expiry Header
Active installs: 20,000+
Zip file size: 7k
All-time downloads: 98,972
Retention rate: 20 percent (dang good)

This plugin appeared abandoned but it’s author returned and updated it recently. While this isn’t always necessary, it’s a good sign the plugin is “fresh.” We’ve used it for years.

This plugin will add a “far future expiration” date for various file types (like image files) to improve site performance. This is a best practice advocated by the Yahoo Extreme Performance Team. It keeps files and images cached longer. There is also a radio button to enable Gzip – a nice addition. (More about Gzip >)

A first-time visitor to your page causes many HTTP requests, but by using the Expires header those components become cacheable. This avoids unnecessary HTTP requests on subsequent, repeat page views. The web server uses the Expires header in the HTTP response to tell  your visitor’s browser how long a component can be cached (stored).

The Expires response header gives a date when a page component becomes stale.

Using a far future Expires header affects page views only after a user has already visited your site. It has no effect for first-time visitors and the browser’s cache is empty. The impact of this performance improvement depends on how often users return. About half of your users or more could be return visitors.

Your server’s .htaccess file can be appended by using some simple plugin settings:


  1. Enable the Far Future Expiration Header plugin.
  2. Set the expiration to 365 days (yes, 1 year).
  3. Select all of the file types you are using.
  4. Select Gzip compression.
  5. Save.

The plugin doesn’t add page weight to your site. We call this a “weightless” plugin.

Will you see a speed improvement? It depends. If you didn’t have Gzip already activated on your server, you will see a big improvement. You’ll have a better Pingdom score. Returning visitors will have a better user experience because images and other assets are already on the browser cache waiting. You’ve paid homage to a theoretical speed improvement. The effort to make it happen is minimal. So why not just do it? We do – always.

Leverage Browser Caching score is now an “A“. The only file that can’t be cached is the webfont from – ahem – thanks, Google.

[bscolumns class=”one_third”]

If you’re new here, start with our best primer speed articles.


[bscolumns class=”one_third”]

If you’re ready to give your WordPress site wings, here are powerful tools to speed up your site.


[bscolumns class=”one_third_last”]

Learn how the most popular plugins and ideas waste your time – and hurt web speed. Includes important tips for mobile speed without coding.


How to remove query strings from static resources with a WordPress plugin.

WordPress by default adds query strings – “?” or “&” – to the static CSS and Javascript resources files used in your site. Gtmetrix, Pingdom, or Google’s PageSpeed Insights online speed tests urge removing these.

But, doesn’t. Why? Maybe feels like we do: Better scores aren’t equal to speed changes.

Removing Query Strings makes a significant improvement in page speed. That’s the claim anyway. We’ve never seen “significant” speed improvement. That word “significant” gets used a lot with speed test braggadocio. The word should shoot up a suspicious red flag. The removal-suggestion always changes your speed test score. Big deal. Scores aren’t the same as load time gains.

A lot of speed technical stuff is hot air. Nerds puffing their chests out to prove who’s the biggest and best nerd. Removing query strings is one of those technical things that doesn’t make much difference in the world. But speed tests insist it’s important for a good score.

Usually “query strings removal” improves load times by milliseconds – and not seconds.

IMO it is recommended to ignore 50% of the Google PageSpeed recommendations, this is one of them:

‘Resources with a “?” in the URL are not cached by some proxy caching servers. Remove the query string and encode the parameters into the URL for the following resources…’

… the chances of any page of any small or medium site being cached – and reused from the cache is minimal. … removing static resources is not worth the zero speed improvement your site will gain. Author – Mark Kaplun

So, what the heck are Query Strings?

Query strings are the URLs containing special characters such as “&” and “?”. Scripts and stylesheets often contain a modified URL to identify versions.

Query strings can help track users like HTTP cookies. Query strings are often used in association with web beacons. Google Analytics uses web beacons (a 1-pixel, square, transparent, GIF image). A web beacon is an object embedded in a web page or email. It allows checking that a user accessed the content.

What’s cache busting?

Speed improvements do not improve SEO. They improve UX. Google doesn’t use PageSpeed test scores in it’s ranking algorithm. They use TTFB (time to first byte). TTFB is host-server access-time – a speed overhead measured in milliseconds.

Browsers store a cached static file until an expiration date. The file version in your visitors’ browser may prevent seeing new changes.

Cache busting solves the problem with a unique file version identifier. This tells the browser a new file version is available. Then the browser doesn’t retrieve the old file from cache. Instead, it makes a request to the original server for the new file.

The query string is a method for plugins and themes to pass version details about new updates. This trick is a plugin author’s workaround or “cheat.” It’s not best-practice. And may have a theoretical impact on website loading speed. Removing the query string from the file name “fixes” this without harm. But in reality, it only improves your speed score – and not the milliseconds of extra load time we yearn for.

You can remove query strings from files – without touching a single line of code.

Below, we give a list of free, lightweight plugins that do the job for you. These plugins need no configuration. They’re all plug and play. Install and you’re good to go. Make sure to clear your cache after installing to see changes. You can download the plugins from the WordPress repository. Or by searching within your WordPress dashboard under “Add New” plugins.

These plugins search all static files loaded from plugins or themes for “?” or “&”. Then removes them. This won’t damage website functionality. It helps your website get better page speed scores. It may even help make your site faster. But better speed is rare.

Removing Query Strings From URLs With Free Plugins

Remove Query Strings From Static Resources
90,000+ active installs, compressed download 2.5k.

Query Strings Remover
9,000+ active installs, compressed download 1.6k.

Remove Query Strings From Static Resources Like CSS & JS Files
3,000+ active installs, compressed download: 2k.

Static Resource Cleanup by Removing Query Strings
100+ active installs, compressed download: 2.7k.

Zendy Speed: Query Strings
2,000+ active installs, compressed download: 1.8k.

Our choice:

Remove Query Strings
Active installs: 10,000+
Zip file size: 12k
All-time downloads: 47,002
Retention rate: 21 percent (medium)

These plugins are super lightweight and benign. You may see millisecond improvements. There’s no reason not to install one for speed.

The bottomline is: removing query strings does no harm – but the only benefit most likely is an improved test score – not speed. Of course, the question is, “Why do speed tests insist it be done?” It’s ivory tower idealism.

P3 Plugin Performance Profiler and mobile WordPress speed.

WordPress works fine. But you need plugins to add extra features and functionality. Without plugins, junk WordPress. Plugins give you control over website functions and performance without writing any code. Choosing the right plugins play a big role in your mobile speed success.

It seems as simple as searching for the most popular plugins. Then installing and activating them on your website. The result: an instant functionality upgrade without needing technical knowledge.

The problem is most popular plugins are slow loading. They bog down your site. Often globally, meaning slowing every single page and post. We call that site drag. Other plugins are more forgiving. They don’t suffer from site drag. Instead, they load only where used – or where there’s a shortcode installed. How can you know if a plugin causes site drag? Experimentation. This undocumented gotcha isn’t in files.

The plugin directory is one of WordPress’ great assets. It provides over 53,000 applications extending WordPress. It’s also completely open and free. Any author can contribute. Anyone can download. The plugin auditing process and security analysis are sometimes flaky. Bad plugins happen.

Many plugins have identical functions – but they’re not built the same. Some hog resources. Others are fine quality. You can solve about any WordPress problem with a plugin – or a plugin combination. We do research and experimentation to discover plugins helping mobile WordPress speed. We appreciate alternatives to bloated popular plugins. used to place a label on plugins not updated in over 2 years. Now they indicate how many update version have been missed instead. This staleness warning may mean the plugin won’t work – or worst case – could break your site. Often, we find old plugins work great. Especially for speed. Even when they aren’t updated for years.

This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

This shelf-life warning, above, scares people from unrealized opportunities. So we still test obsolete plugins. There are many compatible-and-clean 8- or 10-year-old plugins. There are always risks with even the biggest and best – and most popular. These unpredictable gambles include plugins with millions of active installs and recent updates. Even WordPress or Yoast stubs it’s toe. It happens to the peerless.

The Plugin Review team takes down a plugin if it’s becomes vulnerable. But they don’t always notify users when this happens – or tell us to remove a bad plugin. We know this from sad experience.

One obsolete plugin we use often is P3 (Plugin Performance Profiler). As implied, this plugin creates a profile of the speed performance of your plugins. It’s maintained by GoDaddy, one of the biggest hosting providers in the world. But it’s 3-years stale – abandoned? It measures load-time impact expressed in seconds for every plugin you have activated. It helps narrow down plugins causing potential speed issues. P3 doesn’t work with newer PHP version 7+. You need to dial back PHP in your hosts Cpanel to version 5.6.

P3 (Plugin Performance Profiler)
Active installs: 100,000+
Zip file size: 183k
All-time downloads: 1,326,681
Retention rate: 7.5 percent (low)

Description: See which plugins are slowing down your site. This plugin creates a performance report for your site.

At this point, we smile. Over 100,000 sites made a bad assumption. They left this plugin active in the name of speed improvement. Ironically, the plugin slows every page and post by 12.7 milliseconds – even when sitting there. Oops!

WordPress plugins are PHP code. Various blogs and forums claim PHPv7 breaks the P3 plugin. The only plugin it tests is then itself. Our cheap, shared hosting is a techno-laggard (paradoxically, GoDaddy). They are still running PHPv5.4 as the default. Is that why they haven’t updated the plugin yet? For our speed demonstration, this may be helpful. But PHPv7 makes WordPress load so much faster – around a third the original v5.4 load time. Super fast. In theory, a 2-second page might load in 660 milliseconds. Beautiful! Many hosts have already adopted PHPv7. GoDaddy finally did mid-2017. We moved the version up a notch to version 7.1 in Cpanel on GoDaddy – a small speed boost.

P3 (Plugin Performance Profiler) causes 12.7 milliseconds of site drag. So we recalculate the results without this number messing things up. After testing, don’t leave it installed. At least, disable it. But we always remove it.

There are attempts to prove P3 plugin doesn’t work well – or that it’s results are meaningless. Surprise! We agree. What’s important are the relative results. Not the absolute numbers generated. It’s ranking the worst-offending plugin to the least – with values in seconds. Data is strangely presented in alphabetical order, not in milliseconds. We sort in a spreadsheet. But there’s intuitive data to analyze and we appreciate it. Some say the results are ±30 percent off. Not from our experience. There’s no way to prove accuracy. We don’t care. Our gut says the ranking is correct enough.

There are articles about purported P3 alternatives and lookalikes. We’ve examined them. None give the speed ranking information we desire. We hope GoDaddy creates a revised edition or someone else adopts this plugin. It’s needed for speed assessments. P3 shows information not represented in any known speed report we’ve found. It’s not crippled because we’ve found workarounds for it’s shortcomings (dialing back PHP).

Let’s look at some P3 results for which loads in under 1 second. We were using the free theme Magazeen-Lite at the time of this test (active installs: 400+, Zip download: 432k). It’s load time is 37 milliseconds according to P3. Fast! We selected this bare-bones theme because it’s package size was small and light. NOTE: We’re now using the Twenty-seventeen default theme.

We have: 56 free WordPress plugins. What?!

That’s right. 56 are active. 4 are inactive. P3 says they all load in 396 milliseconds. Good enough. We suspect they load faster than that. But as we’ve said; it’s plugin rank that’s important for sorting.

The inactive plugins include:

  • Broken Link Checker (which we run quarterly).
  • UpdraftPlus Backup/Restore (set to run automatically once per week).
  • Replace Image (enabled as needed).
  • Optimize Database after Deleting Revisions (we activate and run once monthly cleaning).

Most of our inactive plugins are “resource intensive.” That means they hog database and RAM on the host server. If they all were running at once, our generous hosting provider would – with a lack of courtesy – shutdown our site. Our resource overages affect our other 23 shared-host neighbor’s speed. Can’t upset the server neighbors! NOTE: We were finally forced to buy more resources by GoDaddy for RAM overruns.

After installing iThemes Security plugin, we got a GoDaddy email notification. It said our hosting account exceeded its resource limits. We dumped it. Read More.

A few other speed tidbits: Worth-The-Read plugin is set active only on posts, not pages. It’s our third heaviest plugin at 39 milliseconds. That’s actually pretty light – but we’re picky. How did we do that? Selective plugin activation. Read more here.

Our heaviest plugin is SS Downloads. We activated this plugin only on “download posts.” There are about 7 or 8 posts with this feature. It has a 120 millisecond load. It’s 30 percent of the total plugin weight. We found selective activation conflicted with the Autoptimize minification plugin. Downloads then produced a 404 error. We tested with another minification plugin substitute, Better WP Minify. The same error occurred. Minification was more important to speed than selective activation of SS Download. That isn’t always the case. But it was this time. Minification often is tricky and nonessential. If we deselected minification on the download posts, it broke the site – a catch-22.

In the end, we deleted the SS Downloads plugin. (It didn’t work with PHP 7+). And we didn’t install a minification plugin. It messed up our ecommerce plugin.

Pareto principle is still alive! 10 of our heaviest plugins contribute to 80 percent of the cumulative weight (see column 3. The red text indicates the 80 percent cutoff). Roughly 80 percent of the effects come from 20 percent of the causes. In this case, 80 percent of the slowness comes from 20 percent of our “red-heaviest” plugin choices. These slower plugins needing the most scrutiny.

Easy Forms for MailChimp plugin is number four rank at 26.5 milliseconds. The solution: don’t use it on every sidebar. We place a sidebar 3.5k PNG image linking to a signup page. Then we only affect one page. This we sometimes refer to as offloading. But we aren’t offloading to another site or server, just to another page.

Here’s the P3 ranking results:

Name milliseconds percent cumulative
"SS Downloads" 120.50 30.47% 30.47%
"Easy Digital Downloads" 54.30 13.73% 44.20%
"Worth The Read" 39.20 9.91% 54.11%
"Easy Forms for MailChimp" 26.50 6.70% 60.81%
"WordPress 23 Related Posts Plugin" 21.70 5.49% 66.30%
"WordPress Popular Posts" 19.70 4.98% 71.28%
"WP Counter" 12.50 3.16% 74.44%
"Display Widgets" 9.90 2.50% 76.94%
"Redirection" 8.90 2.25% 79.19%
"Simple Drop Cap" 7.00 1.77% 80.96%
WP Experiments Free 6.80 1.72% 82.68%
Block Bad Queries (BBQ) 6.00 1.52% 84.20%
WP Super Simple Speed 6.00 1.52% 85.71%
Cache Enabler 5.60 1.42% 87.13%
Title Remover 3.20 0.81% 87.94%
WP Editor Widget 3.20 0.81% 88.75%
Pro Related Post Widget 3.10 0.78% 89.53%
Add Widget After Content 2.90 0.73% 90.27%
Quotes 2.90 0.73% 91.00%
Brute Force Login Protection 2.70 0.68% 91.68%
Disable Emojis 2.50 0.63% 92.31%
Imsanity 2.50 0.63% 92.95%
Email Address Encoder 1.90 0.48% 93.43%
Complete Analytics Optimization Suite (CAOS) 1.90 0.48% 93.91%
Perfect Pullquotes 1.90 0.48% 94.39%
mPress Image Refresh 1.80 0.46% 94.84%
Disable Comments 1.70 0.43% 95.27%
Plugin Logic Rules 1.60 0.40% 95.68%
Beacon Plugin 1.50 0.38% 96.06%
Change Table Prefix 1.50 0.38% 96.43%
Lazy Load XT 1.40 0.35% 96.79%
HW Image Widget 1.20 0.30% 97.09%
Simple Wp Sitemap 1.20 0.30% 97.40%
Far Future Expiry Header 0.90 0.23% 97.62%
Query Strings Remover 0.90 0.23% 97.85%
Ajax Heartbeat Tool 0.80 0.20% 98.05%
WP Content Copy Protection 0.80 0.20% 98.26%
Hide Featured Image 0.60 0.15% 98.41%
Remove Google Fonts References 0.60 0.15% 98.56%
Rocket Lazy Load 0.60 0.15% 98.71%
Shortcode For Current Date 0.60 0.15% 98.86%
WEN Responsive Columns 0.60 0.15% 99.01%
WP jQuery Plus 0.60 0.15% 99.17%
WP Media Size 0.60 0.15% 99.32%
WP Noframenoclickjacking 0.60 0.15% 99.47%
Current Year and Copyright Shortcodes 0.50 0.13% 99.60%
WP Author Date and Meta Remover 0.50 0.13% 99.72%
Easy Table 0.30 0.08% 99.80%
Simple Back To Top 0.30 0.08% 99.87%
Admin Post Navigation 0.20 0.05% 99.92%
Plugin Logic 0.20 0.05% 99.97%
One-Click Child Theme 0.10 0.03% 100.00%
Total 395.50 Pingdom results:
340 milliseconds. 10 requests. 108k page weight.

  • Cheap, shared, magnetic GoDaddy hosting.
  • No paid or free CDN – or server caching.
  • Old PHP version:  5.6.
  • No paid plugins or themes. You can do it, too!

The only plugin we’d consider dumping – if we were under duress – is WP Counter (rank: 7, speed: 13 milliseconds). But it makes us feel good and crazy about our work. We can view some simple visitor stats in our dashboard. Look! There you are – visiting us!

PS: Think we’re cheating with Home page numbers. OK. Maybe. This article’s time – curious? Here’s the speed numbers: Performance grade: A 95, Load time: 323 ms, Faster than 99 % of tested sites, Page size: 222.8k, Requests: 18, Tested from San Jose by Pingdom.

We decided to run a test on This produces a Home-page worst-case scenario (950 milliseconds). Pingdom being best-case. We discovered a new feature for optimizing images. See the little yellow badge that says, “New!”

That link opens up a new window at: Using this new image optimization tool, we reduced page weight by 10 percent. Axing another 10k by replacing 4 images. That makes no measurable difference in test speed. But it reduces the bandwidth consumption on mobile devices. You saved your users a little more money for remote connection fees. Our Home page weight is now 108k.

Note: You can keep running the Cloudinary optimizer tool and never get an “A” rating. Always a “B.” In the repetitive process, you’ll completely ruin your images. This is called “overprocessing.”

It’s not the quantity of plugins – it’s the quality.

Thanks for tolerating our shameless and pretentious display of affordable, mobile speed.

Is this Home page beautiful?

No. It’s fast. It focuses on usability. Site goals are the foundation for decision making. We’ll improve branding and expressive aesthetics later. That costs money – and always slows down the page. The page needs to prove itself with results first. Then we’ll formalize the graphics. Or maybe we’ll leave it “as-is.”

NOTE: This Home page example is now obsolete with our change to Twenty-seventeen default theme so we use large featured images. But all plugins remained intact with a few exceptions which we will report at another time.

The above video number 1 demonstrates how to extract P3 data by rolling back PHP 7.1 to PHP 5.6 (5 minutes, 5 seconds). The transcript is below:


Are delinquent plugin slowing your site speed?

Too many activated plugin slowing your site is a speed myth. The number of plugins isn’t important. It’s not the quantity, but quality that affects speed. Your site can have over 80 plugins – and still load in under 2 seconds. The WordPress average number of active plugins is 25 per website.

Another web speed myth is that popular or paid plugins are the best. It’s often the opposite. Popular plugins usually slow down sites most. Testing reveals the truth.

You can deactivate all plugins and then retest your site speed. If the site loads faster, you know there’s a problem with one or more plugins.

This tedious method then requires activating plugins one at a time for problem discovery. Repeated speed tests are required consuming time and energy.

An alternative method is using the free P3 Plugin Performance Profiler plugin to evaluate plugin load time in milliseconds . This older plugin only works using server-language PHP 5.6. You need to rollback PHP to version 5.6 from newer versions – for example – PHP 7.1.

The P3 Plugin is a more intelligent way to track down resource hogging plugins.

Our goal is ranking the slowest plugins consuming 80 percent of plugin overhead.

This Pareto principle – or 80/20 rule – helps identify the sweet spot for balancing functionality and user experience with the fastest load time.

This technique is also known as value analysis. Slow plugins then are  selectively activated – or substituted with faster alternatives – or eliminated.

Note: Many managed WordPress hosts, such as WP Engine, do not allow site owners C-panel access.

This video tutorial demonstrates a workaround to extract P3 plugin data for ranking individual plugin overhead. This is our method of quantifying performance optimization.

Shown here is GoDaddy  C-panel access. This feature is included with low-cost Linux hosting.

Scroll down to the software section.

Click the select PHP version link.

That opens an area to switch PHP options.

Here it’s currently set to version 7.1.

Roll back the version with the drop down menu to version 5.6. Click the “Set to current” button.

Version 5.6 is the required for the P3 Plugin Performance Profiler by GoDaddy. P3 is available for free installation from the WordPress plugin directory. It doesn’t run on newer PHP versions.

On the site we’re testing, there are 69 active plugins.

We’ll determine which ones cause the most site drag using the Pareto Principle or 80/20 rule. That is where 80 percent of consequences come from 20 percent of the causes.

Go to the P3 plugin in the WordPress dashboard and click the “Scan Now” text link. Then press the “Start Scan” and “Auto Scan”  buttons. Scanning takes about 25 seconds to complete.

When presented, click the “View Results” button.

The P3 plugin produces absurd pie charts representing qualitative results. These displays aren’t very helpful. We want quantified data for benchmark comparisons of potential speed savings.

Click the “Email these result” text link below the pie chart.

A small window pops open labeled Email Report. We’ve never had any success emailing plugin results to ourselves or others.

Instead, with your cursor over the “results” text box, right click and select “Inspect Element” using the Firefox browser. Or use the equivalent function on another browser.

This opens a developer tools window. The code of interest, labeled text area, is highlighted in dark blue. Click in that area. Then double click the code and you’ll see a small format change. The code is still highlighted. Do a keyboard [control-C] and copy this code.

Paste the raw code [control-V] into a standalone text editor. Name and save the file.

Close the email windows.

Deactivate P3.

Note: Leaving it activated slows your site. Leaving it installed for later reactivation has no speed consequence.

Go to your C-panel and restore the PHP setting to version 7.1.

In the next video, we analyze the saved data with a spreadsheet program.

Massaging the P3 plugin data with a text editor and spreadsheet. No vocal or sound track (7 minutes, 21 seconds).

NOTES about video 2

When the final sorted results are shown notice which plugins are the heaviest.

#1 – Yoast SEO plugin – that load time has doubled since this test. We say get rid of that slow plugin.

All the heaviest plugins can be substituted of eliminated. Notice WP Rocket is one of the heavier ones. The irony. A speed plugin. Also, WP Disable another speed plugin causes global site drag. Avoid these plugins.

How does Google Analytics affect mobile speed?

Google Analytic code causes your site to fail two speed tests. And the test criteria are invented by the web-demigod Google. Yes. Contradictions in their very own self-acclaimed PageSpeed test:

  1. How do you leverage browser cache when Google’s very own Analytics.js has it’s expiry time set to 2 hours?

  2. How do you minimize DNS requests when Google advises you to copy their tracking code, linking to an external-hosted Javascript file?

Google Analytics usually adds three HTTP requests. And anywhere from 100 milliseconds to 500 milliseconds load time. It can be slower during peak hours. We’ve seen up to one second. But that’s uncommon. Speed varies in different parts of the globe. That means certain hours are better and some are worse for waiting.

Google Analytics is a freemium web analytics service offered by Google that tracks and reports website traffic. … Google Analytics is now the most widely used web analytics service on the Internet. – Wikipedia

There were times when we built 50k to 70k home pages for speed. Page weight today averages 2 to 3M. We coded lightweight sites by hand in HTML and CSS. Today most site owners use CMS like WordPress to build websites.

Back then, adding Google Analytics added about 31k to the page weight. This, of course, was a horrific detriment to good speed. Today, Google serves a Gzip-compressed version weighing 13k. Much better page weight.

In 2010, Google introduced a third-generation asynchronous tracking code. This helped speed immensely – and in time for the Internet mobile revolution. But, does that mean Google Analytics code has no impact on speed? Or is it significant? It depends.

“… the performance of your pages won’t be impacted, with the possible exception of the very first page-load after you have added the tracking code. This first pageview calls the JavaScript on Google’s servers, which may take slightly longer than a regular page load. Subsequent pageviews will use cached data and will not be affected.” – Google’s Official Statement

Google Analytics requires inserting Javascript code into pages and posts on your site. While you can alter your header.php file by hand, the code will disappear when you update your theme. This can catch you by surprise.

The more modern alternative is using the Goggle API ID number and copying that into a plugin. This protects your Google Analytics code from being overwritten by updates. A safer approach.

Super Simple Google Analytics
Active installs: Fewer than 10,000
Zip file size: 31k
All-time downloads: 108,457
Retention rate: 9 percent (low)

But not all Google Analytics plugins are equal. Some cause server overhead that slows down your site indirectly. The page drag from these database-intensive plugins aren’t worth it.

If you need to look at Google Analytics statistics every single day or more than once per week, ask yourself: Why? What is so important about seeing the numbers and metrics so often? Are you obsessed? Spend time writing relevant content. Bring more qualified visitors to your site.

Header or Footer? Small decisions.

There’s a silly debate whether to place Google tracking code in the WordPress header or footer. Those obsessed with statistics say, “Put it in the header.” Those obsessed with speed say, “Place it in the footer.” Even Google’s different departments can’t agree where’s the best placement.

It’s reported pages load 100 milliseconds faster with the Google Analytics code in the footer.


Since we bleed speed, we say, “Load it in the footer.” This may eliminate PageSpeed render-blocking Javascript and above-the-fold content errors, too. A small bonus.

Placing the code higher in the page theoretically decreases bounce rate. It’s claimed to reduce data inaccuracies as much as 5 percent – in some tests by Google Analytics-certified partners. Certified by who? Google partners! No conflict of interest there.

“If Google Analytics tracking code doesn’t load before a visitor leaves or clicks away from the page, the page data won’t show up in Google Analytics.”

Oh, dear. Statistical tragedy.

Pages load so snappy we don’t think users can determine content value that fast. And then navigate to the browser back button. Yes – that would technically be a bounce. But the idea of putting tracking at the top seems a moot point. By putting it at the bottom, you’re effectively lazy loading the tracking code. Lazy loading anything that delays page rendering is a good idea for speed. The slight chance of losing a minutia of visitor data is more than offset in the gain in display speed.

Google Analytics uses Javascript in the tracking code. It also requests a transparent GIF image. This is a 35-byte, 1×1-pixel, transparent image file. It’s referred to as a tracking beacon. And a cookie is also placed on the visitor’s browser cache. Then Google Analytics knows when the visitor returns and becomes a statistical “repeat visitor.” But, what happens if people have cookies turned off? We know it isn’t counted. Surely it messes things up for Google.

Note: Piwik is an open-source (free and fully customizable) analytics tool that doesn’t use cookies. No problem  tracking people who turn off cookies.

Isn’t the Google Analytics code cached in the browser?

If your Google Analytics code is slowing down your site by more than 1 second, something is wrong. You need to investigate how you’re managing things. On slow-loading pages, a browser status message may say “Waiting for”. If this happens you’re running an ancient version of Google Analytics tracking code. Time to upgrade.

Which version of the code? OK. We’re being cynical. Maybe it is. Maybe it isn’t. It doesn’t make a difference if it’s cached by the browser. For some reason, Google Analytics interrogates the Google remote server anyway. What’s it looking for? That new version you don’t have cached? Or just reporting in for Google’s own nefarious snoopy purposes? We’ll never know. From what we’ve seen in tests: The ga.js communicates with Google servers even when ga.js is cached. At least once. Perhaps always.

Now, some *premium* hosts provide server caching. This can benefit Google Analytics code load time. But not always. The best improvement we’ve seen is a 50-millisecond load time. That’s about 6-times faster than normal shared hosting. Is it worth paying extra for that 50 milliseconds? Well, you will pay 10 times more for the hosting. So don’t signup for Google Analytics sake!

Some reports say the Google Analytics files are marked as “no-cache.” Others say they’re cached for 24 hours. The latest news is only 2 hours. We agree – it’s 2-hours from tests we’ve run. That is too short for any value to your return visitors. And online speed tests show that shortness is a failure. The majority of users are first time visitors. At the first visit, Google Analytics code loads at least once. It may not loaded after that (cached). But it’s part of the “first impression speed” for mobile users. It’s not uncommon for first-time visitors being 80 percent of traffic.

“… you can reduce your external HTTP requests to Google from 2 down to 1 and you now have full control over the caching of the file. This means you can utilize your own server’s cache headers.

You have also probably seen the leverage browser caching warning in Google PageSpeed Insights that comes from Google Analytics. This is kind of ironic seeing as this is Google’s own script. The issue is that they set a low 2 hour cache time on their asset … They most likely do this because if for some reason they were to modify something on their end, they want all users to get the changes as fast as possible. However there is a way to get around this, and that is by hosting Google Analytics script on your own server.”

Quote from:

How much time will Google Analytics cost mobile users in delays? Let’s compare other common WordPress components: The Google Analytics code delay is as long as loading Javascript. It can be more than loading Google Fonts. It’s like loading Font Awesome. Even emojis are in the same class of deadwood. Do we strip those WordPress non-features? Yes! Whenever possible. So not adding Google Analytics for us is a serious consideration. Even with normal 100 to 200 milliseconds load times. On a 1-second mobile site, that’s a 10- to 20-percent delay for a first-time visitor.


Google’s advice is to avoid local hosting of the JavaScript file. Why? They claim it ensures you get access to new features and product updates. But that is a suspicious, self-serving dodge. We suspect they’re being sneaky again – and gathering data for their own purposes.

To avoid the extra overhead of off-server resources (DNS lookup and Time to First Byte), you can localize your JavaScripts on your server. This is 13 percent faster than a trip to Google’s remote server.

Speed up sites with two simple changes: 1) Move your analytics code to the bottom, and 2) localize the JavaScript file.

Coding Jargon: Host the ga.js and __utm.gif file locally and execute the _setLocalServerMode() method.

Wow! That sounds complicated. But there’s a free plugin that does all this magic for you. Now, you can optimize Google Analytics. We’re using this plugin on PagePipe and other sites.

Complete Analytics Optimization Suite (CAOS)
Active installs: 10,000+
Zip file size: 7k
All-time downloads: 39,951
Retention rate: 25 percent (good)

Note: When you do the CAOS method, your pages will fail various, odd online tests – not speed tests. The Google Analytics code won’t appear where the test *expects*. Your site’s OK. It’s the test that’s broken. Everything will appear normal in the Google Analytics dashboard and controls.

This plugin inserts the Analytics tracking code into the header or footer (you choose). It saves the analytics.js file locally. It then keeps it updated daily using scheduled automation.

Whenever you test speed on Google Pagespeed Insights or Pingdom, they’ll tell you to leverage browser cache. That’s because Google set the cache expiry time to 2 hours, it always fails the test. This plugin will get you a higher score on PageSpeed and Pingdom and make your website load faster. (Scores are nice – but saving milliseconds of load time is what really counts). No more roundtrip to download the file from Google’s external server.

Will the CAOS plugin make your website go from a 10-second load to a 1-second load? In Disneyland! Get real. It’s a small speed boost – but it’s worth it.

The Complete Analytics Optimization Suite for WordPress gives you the best of both worlds. This way you can minimize DNS requests, leverage browser cache, track your visitors – and still follow Google’s recommendation to use the latest features and product updates. If you’re using a CDN, you’ll need to use CDN Enabler plugin to host your Analytics-script (local-ga.js) from your CDN.

UPDATE: Let’s take a closer look at a real-world site, PagePipe! Below is a waterfall from

With the CAOS plugin activated – the tracking occupies the space of 1.3 seconds to 1.7 seconds. (The site’s favicon also lazy loads. This happens when placed in the root of your host server – but that’s another topic). A little math and we see that it’s a 500-millisecond delay for Google Analytics to respond. Without Google Analytics, the site would theoretically load in 1.2 seconds. Let’s turn off Google Analytics and the CAOS plugin for a moment. What’s the real difference in seconds?

The page now loads in under 1.1 seconds. We can ignore that lazy-loaded favicon. So Google Analytics adds a repeatable 500 milliseconds to every page. That’s site drag! We’ve seen delays of over a second – but it isn’t repeatable. It’s random. Simply waiting in line.

So now we ask, “What is Google Analytics affect when using the Super Simple Google Analytics plugin?” Here’s the answer:

A 1.8 second load time is the result. Instead of 500 millisecond addition with CAOS plugin, it’s now a 700 milliseconds addition. 200 milliseconds more!

CAOS plugin saves 200 milliseconds. For mobile speed, that’s great. And optional loading in the footer is reported to save an additional 100 milliseconds. That’s 300 millisecond gain of total improvement.

The fastest loading Google Analytics: No Google Analytics at all.

Ask yourself, “Why am I installing Google Analytics?”

Now, some sites need Google Analytics more than others. For example, an ecommerce site. But a typical blog site usually not. And a vanity site, definitely doesn’t. Many site owners install Google Analytics code because everyone else does it. And then they never even look once at the metrics. Ever. All they did was slow things down – without any benefit.

Using too much data to make decisions is worse than having no data. Seeing that 35 people visited on Wednesday last week, do you care about that detail? Whoopee. The data provided by Google Analytics is massive and takes time to learn how to use. We drown ourselves in data and just sink deeper into the quagmire.

Google Analytics statistical data gathering is never 100% accurate. The data extracted is still subject to human evaluation, spam, and error of judgment. It’s like reading tea leaves, fortune cookies, or tarot cards. You *interpret* what your mind wants you to see.

There is no science to SEO (or even UX) since no one can prove the outcome was a direct result of the method. It’s professional guesswork based on experience and a moving target. Page One in Dallas does not ensure Page One in Seattle.

Data can twist your perception.

Because everyone else uses Google Analytics, should you jump off the cliff, too? Would you install a plugin because:

  • It’s very easy to use.
  • Everyone else uses it, so it must be the best.
  • It’s free. Who can argue with free?

Are these the right reasons for choosing an analytics tool?

What would your mother say about peer pressure?

It’s actually very difficult to get real insight. 25 to 33 percent of your traffic is non-human (bots). With Google Analytics, spam-bots get recorded as a real live visitor. Most ad-blockers and tracking blockers also block Google Analytics. Those things affect your numbers.

Google Analytics can be a time waster.

If we can’t define what “the best” or even “good enough” means, how can we say Google Analytics is the best solution?

Google Analytics is good for a baseline in projects. It helps ecommerce know what products customers searched for. And what they viewed when they got there. Most people don’t know how to read the data. Less than 1 percent of website owners know how to use Google Analytics. Let alone how to glean helpful information from all that data.

Google Analytics data won’t help you write better thought provoking content. Instead, it may twist your thinking to chasing the herd.

Most (major) web hosts give you the ability to read the server logs. There you get the basic traffic info you’d get with Google Analytics. And the best part is that it requires no script to load: it works on the server, not the client side. Those will show key performance indicators (such as bounce rate, page views, time on site).

Tip: We use a popular-post plugin to build a database of what is trending on our site.

“Yes – looking at analytics data over time is helpful. But do you really need to know if you had 100 or 200 visitors today? … Does any of that data actually do anything for you in the moment? Years of experience have taught me that it doesn’t.”

Author: Colin Newcomer

Time is better spent improving your website.

Our rule of thumb: Google Analytics adds at least 100 milliseconds to the first page view of your site. That page is most critical for mobile users. That can be 10 percent of wasted load time. Whenever possible, delete Google Analytics. Use either a plugin counter or Cpanel or server web statistics as a substitute.

We’re not against using Google Analytics if you need it. Read the data collected. Use it to make your site better. If you do that then keep Google Analytics on your site. If you’re never going to look at the data, speed up your site by removing this unneeded code from loading.

It’s claimed Google monitored bounce rate (via GA) affects SEO. We don’t believe it. We really don’t need more data. We get numbers from a plugin and server stats. They are fine and with no speed delays. best-case scenario for load time – 300 milliseconds. Cheap, shared GoDaddy magnetic hosting. worst-case scenario for load time – under 1 second. Cheap, shared GoDaddy magnetic hosting.

WP Counter
Active installs: 2,000+
Zip archive: 5.2k
Retention: 24%
Last updated: 1 year ago

WP Counter is a lightweight, simple site visitor counter. See unique site visitor status in different date ranges. (Today, Yesterday, Current Week, Current Month). We’ve been using this plugin for months to see if it correlated with Google Analytics. Frankly, nothing correlates to Google Analytics exactly – but it was close enough.

For tracking article popularity, we use WP Popular Posts plugin’s dashboard settings to view stats on all of our posts:

WordPress Popular Posts
Active installs: 300,000+
Zip archive: 122k
Retention: 11%
Last updated: 3 weeks ago
PHPv7.1 compatible

We’ve written an article about choosing the fastest popular post plugins: How do I get users to read more of my content?

Great article offsite about how browser ad blockers affect Google Analytics numbers. There’s a strong downward trend in the measurable proportion of visitors.


[bscolumns class=”one_third”]

If you’re new here, start with our best primer speed articles.


[bscolumns class=”one_third”]

If you’re ready to give your WordPress site wings, here are powerful tools to speed up your site.


[bscolumns class=”one_third_last”]

Learn how the most popular plugins and ideas waste your time – and hurt web speed. Includes important tips for mobile speed without coding.


Contact Form 7 plugin slows down page speed for your entire website. Not just your contact page.

Many WordPress site owners cause damage when adding a popular contact-form plugin. Contact forms can hurt your load time. Not just on your contact page where the form appears – but on every single page of your site.

We love free stuff. Contact Form 7 is absolutely free. But we want the best free stuff money can’t buy. So we test a lot of free plugins. Before adding the popular Contact Form 7, our special test page had the following specifications:

Page size: 29.6k, requests: 5, load time: 543ms.

After installing and activating Contact Form 7, here’s what happened:

Page size: 78.3k, requests: 10, load time: 768ms.

Wait! The page size more than doubled. The number of requests doubled. And speed slowed down by 40 percent. What happened?

OK. We admit this is a worst-case scenario. We’re using a test theme, Sobe, that doesn’t enqueue jQuery. For extreme speed, we often build WordPress sites without jQuery. used to use Frank theme which doesn’t enqueue jQuery either.

But when you install Contact Form 7, it needs jQuery. That file combined with the needed Javascript and CSS to make the form work adds the 5 extra HTTP requests. Here’s the list of Gzip file sizes added:

  • contact-form-7/styles.css 944B
  • wp-includes/js/jquery/ 33.4k
  • wp-includes/js/jquery/ 4.3 k
  • jquery.form.min.js/contact-form-7/jquery.form-min.js 6.1k
  • plugins/contact-form-7/scripts.js 3.7k

That’s 48.4k total weight added site-wide to every single webpage. Even if we don’t have a form shortcode on any page or widget.

WordPress Form Mystery: Why does the silly form load everywhere – instead of only on the page with the shortcode like it should?

Contact Form 7 isn’t the only form plugin that loads its Javascript and CSS files on every page. This is not uncommon for most slider plugins, too. We call this global loading – or site drag. It’s a bad way to do things for speed. While it’s common, it’s not a universal practice. We’ve found sliders and forms that only load code on pages containing their shortcodes. How can you tell? Only by testing. There is nothing in the plugin documentation telling if this will happen. It’s a negative thing – so why would they publish it? Honesty perhaps?

You’d think those plugins that have better behavior would advertise speed benefits – but they don’t. Not yet anyway.

Do you suppose 200 millisecond per page global-site waste is insignificant? Do you care about page speed for mobile users? They know if you do. Page speed is web hospitality. Do you serve pages slowly? Then your site may be apathetic and rude.

If you get a lot of form Spam then additionally you must protect Contact Form 7 with an anti-spam plugin. Usually another popular plugin – Akismet. It can cost you money.


Contact Form 7 is the second most popular WordPress plugin of all time. It has hundreds of extensions or addons made by third-parties to enhance it’s features. Over 42,546,968 downloads. And presently, has 1+ million installs. Mid-2006 is when Takayuki Miyoshi (Japan) uploaded Contact Form 7 to the plugin repository. That makes it 10 years old – and still ticking.

So what can you do to speed things up? There are three things:

  1. Use a free plugin called Plugin Logic and activate your contact form only on your contact page. Just slow down that single page instead of all pages – especially protect your Home page speed. We use Plugin Logic all of the time now for speed improvements. We’ve an article written about this plugin: Selective activation of plugins for improved speed. >
  2. Use an alternative free plugin (see list below). Preferably a fast form that has Spam-protection built in (2-for-1 deal).
  3.  Don’t use a form. Use an email text link instead. Screaming-fast sites do just that simple solution. Especially for mobile users.

Below is a table of 60 free WordPress contact-form plugins with links.

Yes. Contact Form 7 is on the list. Contact Form 7 isn’t bad. We don’t hate it. But better alternatives exist for your site now. New contact form plugins appear and losers disappear on a regular basis. Our list is the “state of the moment.” Tomorrow it’ll be obsolete already because the 55,000+ plugin repository is growing between 20 to 25  percent per annum. Gads! How can we keep up with the changes?

Ranked plugins are in descending download package size (expressed in megabytes). Compressed package size is indicative of an author’s concern for optimization. That affects page speed. That’s our concern.

This ranking by package size is our crude rule of thumb used to cull plugins. It beats randomly loading and testing 60 separate plugins one at a time for hours. We start with the best speed candidates. Then work our way down the list until we find the first fast plugin that satisfies our needs. Is that safe? No. You still have to check what user forums say about a plugin’s reputation. And check with security vulnerability reporting plugins.

Small packages usually yield the fastest plugins. That doesn’t mean they’re any good. They still need torture testing.

Form builders usually are the plugin packages with the most bloat.

Plugin retention is the number of active installs divided by the number of all-time downloads. We call this the “satisfaction factor.” This number gives us an idea of how many plugins are actually kept and used after testing or temporary use. Small numbers show “fallout.” The higher the retention number the better it’s market acceptance and longevity. This is a more important benchmark than popularity or active installs.

Before you look at the table below, let’s talk about the TOP10 speed candidates – and winner. We installed and tested each of them with WordPress. It was boring work – but better we do it than you. Right? Besides we have an insatiable curiosity. We disqualified several immediately.

Group One: Instant fails.

We eliminated Powr Form Builder because it’s cloud-based (slow). And additionally charges for usage above 100 form emails per month. We don’t like that stuff.

We also axed SimpleModal Contact Form simply because it had a “clear” button. Including this button in a form is bad usability. It’s explained in the book, “Don’t Make Me Think.” Read it for free PDF download. Accidentally clearing a filled form with the wrong button is the ultimate user frustration. So clear buttons are page suicide.

Group Two: ReCAPTCHA slow downs.

reCAPTCHA establishes that a computer user is human. But you knew that.


  1. NM Contact Form plugin was the worst – adding 552 milliseconds. This is because of requesting Google’s free, cloud-based reCAPTCHA, a Spam-prevention utility.
  2. AntiRobot was the second-heaviest load time after installation. Adding 354 milliseconds to the baseline page speed for the same reason – reCAPTCHA loading killed it.

Group Three: Forms that enqueue jQuery.

jQuery is an oft-used Javascript library and usually adds between 30k and 70k extra page weight. Some WordPress sites already enqueue jQuery with sliders, top-of-page buttons, or other animation. Then, it’s no big deal to add these contact forms. But for extreme speed, we frequently use themes that don’t use jQuery.

Read more about jQuery and Speed >

These not-so-bad jQuery form plugins included:

  1. Just Ajax Contact Form with Captcha (204ms added).
  2. Quick Contact Form (229ms added).

Group Four: One fast form is a widget for footers and sidebars.

  1. CB Contact Form only adds 22 milliseconds. But isn’t a conventional form for contact pages. Still a winner in our book.

Group Five: The three fastest contact form plugins.

  1. Very Simple Contact Form
  2. Simple Basic Contact Form
  3. SEOS Contact Form

These three are first-place tied. Especially since testing can fluctuate by close numbers on our deliberately-chosen, shoddy host (GoDaddy). So we’ll use how the forms look to choose the best.

SEOS Contact Form

SEOS Contact Form Bonus! We could customize the button with our own words, “SEND IT!” easily in the plugin control panel. Stacking labels on top of fields is not good usability. It also occupies more vertical space. Includes Captcha-addition question.
287 milliseconds. SEOS Contact Form speed test –

Simple Basic Contact Form

Simple Basic Contact Form – Nice! ‘Send Email” label on button. That works. Nice placement of labels by the left side. That’s the best usability from user testing. Includes Captcha-addition question for antispam.
289 milliseconds. Simple Basic Contact Form speed test –

Very Simple Contact Form

Very Simple Contact Form – Oh, oh! They used the word “submit” on the SEND button. Submit is what slaves do. That’s coder-jargon. “Enter number” for antispam instead of addition confuses some users. We know this from our user testing.
262 milliseconds. Very Simple Contact Form speed test –

Contact Form 7

Contact Form 7 benchmark.
294 milliseconds. Contact Form 7 speed test –

Our recommendation for general use on extreme speed sites: Simple Basic Contact Form. No settings are required and it’s the fastest with 1 less HTTP request. But it’s a matter of what works for you and your audience, so test. The main thing is these three finalists don’t add global site drag like Contact Form 7 does.

Simple Basic Contact Form
Active installs: 9,000+
Zip file size: 261k
All-time downloads: 75,017
Retention rate: 12 percent (medium)

*All forms require placing a shortcode on your contact page.

Here’s the list of 58 Contact Form plugins:

plugin name,Meg,installs,downloads,retention
AntiRobot Contact Form ,0.005,300,”1,361″,22.04%
POWr Form Builder cloud ,0.01,”1,000″,”11,636″,8.59%
Very Simple Contact Form ,0.014,”10,000″,”108,838″,9.19%
Just Contact Form ,0.018,400,”2,214″,18.07%
Seos Contact Form ,0.02,”2,000″,”10,021″,20.0%
CB Contact Form ,0.024,300,”1,727″,17.37%
NM Contact Forms ,0.042,”2,000″,”19,612″,10.20%
SimpleModal Contact Form ,0.06,”4,000″,”149,963″,2.67%
Jazzy Forms ,0.065,”3,000″,”37,709″,7.96%
Simple Basic Contact Form ,0.088,”9,000″,”75,017″,12%
Slick Contact Forms ,0.104,”10,000″,”249,803″,4.00%
MN Contact Form ,0.11,”1,000″,”15,696″,6.37%
Quick Contact Form ,0.145,”10,000″,”83,180″,12.02%
Simple Contact Forms ,0.145,100,”1,441″,6.94%
DD Contact Form ,0.17,700,”6,872″,10.19%
HTML Contact Form ,0.189,”1,000″,”5,176″,19.32%
Contact Form With Captcha ,0.195,”9,000″,”78,096″,11.52%
PirateForms ,0.199,”100,000″,”631,213″,15.84%
Contact Form Email ,0.332,”40,000″,”507,682″,7.88%
FormBuilder ,0.332,”10,000″,”219,113″,4.56%
Contact Form Clean and Simple ,0.342,”50,000″,”355,254″,14.07%
Contact Form ,0.349,”20,000″,”57,572″,34.74%
Calculated Fields Form ,0.359,”20,000″,”362,809″,5.51%
PROPER Contact Form ,0.4,”4,000″,”31,179″,12.83%
123ContactForm for WordPress ,0.408,”4,000″,”38,032″,10.52%
Contact Form 7 ,0.467,”1,000,000″,”42,546,968″,2.35%
Contact Form With Shortcode ,0.51,700,”8,240″,8.50%
Visual Form Builder ,0.551,”100,000″,”854,831″,11.70%
Contact Form Pro ,0.552,”1,000″,”10,850″,9.22%
Ultimate Form Builder Lite ,0.65,”40,000″,”233,100″,17.16%
Responsive Contact Form ,0.67,”4,000″,”55,774″,7.17%
Nino contact form ,0.703,700,”2,516″,27.82%
Forms ,0.724,”20,000″,”102,122″,19.58%
Contact Form Builder by vCita ,0.85,”10,000″,”282,210″,3.54%
Contact Form by Supsystic ,0.872,”10,000″,”34,072″,29.35%
WPForms Lite ,0.951,”30,000″,”134,414″,22.32%
Perfect Easy & Powerful Contact Form ,1.2,”7,000″,”79,227″,8.84%
First Contact Form ,1.2,70,”1,800″,3.89%
Formidable Forms ,1.3,”300,000″,”1,478,785″,20.29%
Form Plugin ,1.3,”10,000″,”487,178″,2.05%
Contact Bank,1.5,”30,000″,”1,629,504″,1.84%
FormGet Contact Form ,1.6,”30,000″,”456,524″,6.57%
BigContact Contact Page ,1.7,”7,000″,”105,623″,6.63%
WCP Contact Form ,1.8,”10,000″,”81,774″,12.23%
Fast Secure Contact Form ,1.9,”400,000″,”6,545,459″,6.11%
Contact Forms by Cimatti ,1.9,”5,000″,”40,137″,12.46%
Smart Forms,1.9,”10,000″,”158,031″,6.33%
Contact Form Generator ,2,”9,000″,”63,132″,14.26%
Creative Contact Form ,2,”3,000″,”55,866″,5.37%
Custom Contact Forms ,2.1,”60,000″,”1,186,420″,5.06%
Form Generator,2.1,”1,000″,”12,938″,7.73%
WR ContactForm ,2.3,”5,000″,”39,359″,12.70%
Form Builder ,2.6,”80,000″,”706,898″,11.32%
NEX-Forms – Ultimate Form builder ,3.4,”8,000″,”48,251″,16.58%
Contact Form by BestWebSoft ,3.5,”200,000″,”3,823,211″,5.23%
Contact Form ,3.5,”70,000″,”530,041″,13.21%
Form ,3.7,”80,000″,”1,293,902″,6.18%
Ninja Forms ,5.5,”700,000″,”3,563,703″,19.64%
Cool Contact ,6.6,50,”1,797″,2.78%

oEmbed removal for mobile WordPress speed fanatics.

There’s a small and innocuous request of JavaScript made by WordPress core. Most WordPress site owners are unaware it even exists. Since 2017, WordPress 2.9 and up support oEmbed industry-standard protocol. When you look at a waterfall diagram, this *call* shows up as wp-embed.min.js.

oEmbed was designed to avoid the need to copy and paste HTML code from sites hosting videos, images, text, and more. There are pointless additions to WordPress slowing it down – such as emojis. oEmbed, like emojis, by itself is pretty harmless. It’s the unexpected imported data  delays slowing down your page. Especially video or ‘embed a tweet’ for example.

Adding media is quick and easy with oEmbed. Too easy in our opinion. The content being brought in can include a lot of heavy baggage. This code baggage slows down pages. And example, YouTube includes a lot of ad and tracking data. This isn’t the fault of oEmbed. It’s the fault of the source Google – trying to make money.

WordPress doesn’t care if you use emoticons or embeds – or not. The scripts are loaded on every page regardless if emojis and oEmbeds are visible or absent. That’s global site drag. You can switch this junk off.

oEmbed takes care of all the technical aspects of embedding. It generates an additional request loading the wp-embed.min.js file. And this loads on every single page. While this file is only 1.7 KB, things like these add up over time. Is any optimization too small for mobile web performance?

To embed a video or another object into a post or page, place its URL – like a YouTube video – into the content area. Make sure the URL is on its own line and not hyperlinked (clickable when viewing the post). It will be automatically stylized and responsive. Keeping your site responsive isn’t a problem with oEmbed.

Another option is to wrap the URL in the embed Shortcode.

If WordPress fails to embed the URL, the post will contain a hyperlink to the URL.

WordPress will automatically turn the URL into a YouTube embed and provide a live preview in the visual editor. How much will that add? Usually a speed-killing 500k of extra page weight. A workaround is lazy loading the video.

If WordPress fails to embed the URL, the post will contain a hyperlink to the URL.

WordPress only embeds URLs matching an internal security-approved whitelist. The oEmbed format provides a way to take content from an approved site and then port into your WordPress site while maintaining the content’s graphical look and feel. This is done by simply copying the URL into your post. No need to for extra CSS styling.

You used to need a shortcodes to embed things like video. Shortcodes are codes telling WordPress what to do when it sees that code. These are also called code macros. They’re wrapped in square brackets and look like this:


Once you remove a shortcode plugin, abandoned shortcodes becomes visible in body text. Not cool. There are simple plugins to remove unused shortcodes. Then they don’t show up in body text.



  • Disable Embeds 2.5k
    Our recommendation: The free plugin Disable Embeds is super lightweight, only 3 kilobytes. It has over 10,000 active installs (22 percent retention rate). There is nothing to configure, simply install, activate, and the additional JavaScript file will be gone. Features the following:
  • Prevents others from embedding your site.
  • Prevents you from embedding other non-whitelisted sites.
  • Disables the JavaScript file from loading on your WordPress site. You can still embed things from YouTube and Twitter using their embed iframe scripts.

We have disabled embed functionality on PagePipe. We use selective activation to enable it only on pages where we want it.

Disable Embeds
Active installs: 10,000+
Zip file size: 3k
All-time downloads: 45,760
Retention rate: 22 percent (medium)


To embed a video or another object into a post or page, place its URL into the content area. Make sure the URL is on its own line and not hyperlinked (clickable when viewing the post). WordPress will automatically turn the URL into a YouTube embed and provide a live preview in the visual editor.

Does this work with any URL? No, not by default. WordPress will only embed URLs matching an internal whitelist. This is for security purposes.

Here are examples of whitelisted sites:
Service Embed Type Since
Animoto Videos, WordPress 4.0
Blip Videos, WordPress 2.9
Cloudup Videos, Galleries, Images, WordPress 4.4
CollegeHumor Videos, WordPress 4.0
DailyMotion Video,s WordPress 2.9
Facebook post, activity, photo, video, media, question, note, WordPress 4.7
Flickr Videos & Images, WordPress 2.9 Videos, WordPress 3.0
Hulu Videos, WordPress 2.9
Imgur Images, WordPress 3.9
Instagram Images, WordPress 3.5
Issuu Documents, WordPress 4.0
Kickstarter Projects, WordPress 4.2 Various, WordPress 3.9
Mixcloud Music, WordPress 4.0
Photobucket Images, WordPress 2.9
PollDaddy Polls & Surveys, WordPress 3.0
Reddit Posts & Comments, WordPress 4.4
ReverbNation Music, WordPress 4.4
Scribd Documents, WordPress 2.9
SlideShare Presentation slideshows, WordPress 3.5
SmugMug Various, WordPress 3.0
SoundCloud Music, WordPress 3.5
Speaker Deck Presentation slideshows, WordPress 4.4
Spotify Music, WordPress 3.6
TED Videos, WordPress 4.0
Tumblr Various, WordPress 4.2
Twitter Tweet, profile, list, collection, likes, Moment, WordPress 3.4
VideoPress Videos, WordPress 4.4
Vimeo Videos, WordPress 2.9
Vine Videos, WordPress 4.1
WordPress plugin directory Plugins, WordPress 4.4 Videos, WordPress 2.9
YouTube Videos, WordPress 2.9

Embedding media into your site looks as though you did style it to fit into your theme. Plus, no matter what kind of media you add, it consistently looks great even on mobile screens.

You won’t have to worry whether your content can remain responsive since oEmbed already has its bases covered. And changing your color scheme is also not a problem.

Media is displayed dynamically so your visitors can interact with them. If you display a magazine from Issuu, for example, a user can click to turn the pages as you would a book and select a larger view.

The only two requirements are that the URL be placed on its own line and it’s not hyperlinked.

Once you have pasted the URL of the media you want to embed into the visual editor, it appears after it’s processed and displays exactly how it should appear after you publish your post or page.

There’s also another way you can use oEmbed and that’s with a simple shortcode. Media is displayed the same way, but you can add simple styling options.

For example, you could adjust the width and height just as you would with an iFrame. The biggest difference is the link is included between the tags, not inside them.

It works the same as most other shortcodes so it’s easy enough to use. The oEmbed shortcode does have a closing tag so don’t forget to include it when you’re embedding media to your site.

Here’s an example of the structure you would use, and in this case, a YouTube video is being embedded:
[x embed width=”560″ height=”315″][/embed x] (remove x’s)

Achieving oEmbed with Plugins

Embedly plugin
Embedly extends the providers that are available to you by default to over 300 different sites including Google Maps, Dribbble, Skitch and deviantART to name only a few. This is also the plugin you may want to use if you prefer not to touch any code, but want to add more oEmbed providers to your site.

It installs as easily as most other plugins and you can even customize the styling if you want. To use it, you just need to add a URL to your posts and pages just as you normally would.

Add External Media plugin
This plugin adds the files you want to embed into your site’s media library to use as if you were the one who uploaded them to your site, but you still get all the regular space-saving benefits you would with regular oEmbed. Plus, it installs like most other plugins so you can get started quickly.

oEmbed Provider plugin
This plugin turns your site into an oEmbed provider so others can easily share your content on their WordPress sites with oEmbed. Just keep in mind that the more your content is shared, the more bandwidth is used so be sure to make sure you have enough in your hosting plan. This plugin is also easy to install with no special instructions outside the regular install pattern.

Faster and free alternatives to popular OptinMonster or SumoMe WordPress plugins.

Like many people, you may hate website popups. What’s a popup? It’s that annoying type of window – or web element – opening over the top of content without your permission. Popups usually contain advertisements, chats, or a request you signup for a newsletter or email list. It may cover the entire page or just a corner. Popups can occur instantly or be timed. It may happen only once or incessantly on every single page and post.

The popup problem is mainly about usage. They’re an intrusive, in-your-face, artificial-urgent-appeal to divulge your email address or engage in a sales pitch. They happen when you arrive on a page – or as you’re leaving a page (called exit intent).

Demonstration of “exit intent” and a large popup using OptinMonster. Bad UX! This thwarts the user. Frustration and annoyance!

Popup plugins will *not* force people to sign up. But the goal is collecting leads and generating more sales. Sounds noble.

Even though some popups are inoffensive and look nice, most deliver a bad user experience. They often cause so much animated shaking-shuddering-swinging screen action it ruins all good user experience. They then are frustrating and annoying – and even as disturbing as sparking a blue-static-arc on a cold metal doorknob. Painful and jarring.

We rarely see popups used in inoffensive and unobtrusive ways. Site owners simply abuse popups thinking the more *visual noise* the better for communicating or grabbing attention. It’s not fun – it’s usually repellent. It’s garishly ugly. It’s shouting indoors.

The worst and biggest popup offender is OptinMonster plugin, first created in 2013. It uses an API that adds 385 milliseconds of load time to every page. And costs a minimum of $9 per month. What? The pro version is $29 per month. That’s terrible. There is no free version. Yet this plugin resides in the free WordPress plugin directory. What the heck is OptinMonster doing in the free plugin directory?

OptinMonster smacks of slowness with a 1.1 megabyte zip download and requiring an API (application programming interface). It has a whopping 4 million downloads with 600,000+ active installs. Retention then is: 15 percent – that’s pretty amazing. With those numbers it, must be good. Right? But these guys are robbing people. Why isn’t anyone complaining? Why no one is complaining defies reason.

Perhaps we made a mistake. Are we sure OptinMonster isn’t free? Yes. We double checked. And while it appears free, it’s not.

If you download OptinMonster and install it, you can’t use it until you install the API. It does nothing. You’re locked out. So you click a link and you’re taken to a typical 3-tier plan where you select how much you’ll pay per month (but it’s an upfront annual payment). Then you get your API key to use the so-called *free* plugin. That’s not free in our opinion. Do you think it’s free – just because it’s in the free plugin directory? This is a bait-and-switch ploy. Only there isn’t even any tasty bait to chew on.

So a little math: $9 x 12 months = $108 per year (minimum) x 600,000 active installs = $64.8 million dollars per year. Now we suppose some installations don’t have APIs activated and are just laying there dormant. But that’s still a lot of cash. Those poor users could get something with less “in-your-face” and a more pleasant user experience for free.

We have yet to see an OptinMonster plugin review that isn’t an affiliate link. The reporting is self-serving and biased.

What is the better, faster and free popup plugin?

Holler Box (112k download) does all the essential OptinMonster functions for free – plus some – and doesn’t weigh a ton. Hollarbox is lightweight and loads fast.

Holler Box – WordPress Popup Plugin for eCommerce
Active installs: 1,000+
Zip file size: 122k
All-time downloads: 13,273
Retention rate: 7 percent (low)

This small plugin uses only 3 calls (HTTP requests). 2.8k, 3.6k, and 3.8k loaded in parallel. That’s about 10k. Estimated load time: less than 40 milliseconds. But not on every page – only where it’s used (selective activation). Holler Box is a nice, lightweight plugin built correctly for mobile speed.

So don’t put a monster on your page.

We also want to mention this alternative plugin:

Easy WordPress Subscribe – Optin Hound
Active installs: 2,000+
Zip file size: 458k
All-time downloads: 15,206
Retention rate: 13 percent (moderate)

Opt-in Hound only adds 2 local script calls with 7k page weight. Less than 100 milliseconds of drag loaded in parallel with other assets. Very fast.

Our recent speed tests show SumoMe pop-up plugin adds 800k of page weight globally (site drag) and 1.7 seconds of assets loaded in parallel with 20 HTTP requests. Avoid this slow plugin! Active installs: 100,000+, zip file size: 1.6M, All time downloads: 1,688,314, retention rate: 6 percent (very low).

Also, have you noticed just how many websites desperately want you to sign up for their newsletter? … this is also super popular with retailers. From Barnes & Noble to Aritzia, Fluevog to Linus Bicycles, these things are seemingly everywhere. Get a nominal coupon in exchange for being sent an email you won’t read every day until forever — I don’t think so.


The fastest jQuery is the one you never have to load.

Some WordPress themes load fast because they don’t activate jQuery JavaScript functions. External JavaScript calls temporarily block web page rendering. Google Chrome is working to remedy this by moving JavaScript. This future feature is like deferred, lazy-loading images that appear below the web-page fold. But that addition to browsers isn’t here yet.

One of the faster free themes we’ve experimented with and reviewed is Frank Theme. It uses the “Don’t use jQuery” speed strategy. The same goes for the Sobe theme. And also, more recently, GeneratePress v2.0.

JavaScript affects the critical rendering path.

Before a browser can make a page, it builds the HTML markup. If the browser encounters a CSS script or JavaScript, it must wait for the scripted resource to download. That pause increases latency for page rendering.

JavaScript is a client-side, dynamic-scripting, program language. Web programmers use it to alter displayed page content. JavaScript is one alternative to using server-side PHP scripting language.

jQuery is usually one of the biggest chunks of WordPress code. It deserves special attention and treatment.

jQuery is a free, open-source, cross-platform JavaScript library. This library facilitates the creation of dynamic web pages and web applications. WordPress theme developers normally use the resident jQuery included with WordPress. But just because it’s there doesn’t mean it’s “on.” jQuery activation is optional – such is the case in the GeneratePress v2.0 theme and other fast themes.

Optional WordPress plugins may use jQuery for animation like sliders or other interactive elements. So the theme may not use jQuery but a plugin might. You can know for certain by testing with or

For example, the Frank theme is fast but if you add a j Query-activating slider plugin, suddenly all site pages will slow down. It defeats the purpose of using themes that don’t use JavaScript. The same thing will happen if you use the popular Contact Form 7 plugin. JQuery is then loaded globally for every page, not just your Contact page. Other contact forms, like Very Simple Contact Form plugin, do not require jQuery.

One of the bigger benefits of using jQuery is the seamless handling of cross-browser issues. JavaScript usage differs among browsers and can cause difficulty. The authors of jQuery have made JavaScript programming work much easier.

Almost every browser on the planet already has Google’s jQuery CDN address loaded in cache.

You can change the WordPress code to substitute Google’s CDN hosted jQuery. But there’s an easier way. Just use WP jQuery Plus. It’s a WordPress plugin that loads jQuery from Google’s free Content Distribution Network (CDN). Users geographically far from you can download jQuery faster. The Google version of jQuery is also Gzip compressed and minified for fastest page loading. Yet, even though Google’s CDN servers are fast, it’s still not the biggest motivating gain.

WP jQuery Plus
Active installs: 4,000+
Zip file size: 3k
All-time downloads: 22,426
Retention rate: 19 percent (good)

Note: An alternative Use-Google-Libraries plugin exists but WP jQuery Plus is better because it has a failsafe or fallback. If Google jQuery doesn’t respond, the plugin just loads the slower, local WordPress version.

Potential performance benefits:

Using the Google Library CDN eliminates some HTTP requests from your site. This allows more of your local content to downloaded in parallel. It doesn’t make a gigantic difference for users with a modern six-concurrent connection browser. But for those still running older browsers, the difference is noticeable.

The greatest benefit of using Google’s CDN is that your users may not need to download jQuery at all. The chance is high that a user already has these files cached for up to one year.

No matter how well optimized your site is, if you’re using a local WordPress jQuery then it must be downloaded at least once. If forced this way, the user’s browser ignores dozens of identical copies of cached jQuery.

CDN-hosted jQuery references refer to the exact same file. The browser trusts those files are identical and won’t waste time re-requesting the cached file. Thus, the browser uses only a single copy that’s cached on-disk, regardless of which site the CDN references appear on.

Google’s CDN serves the jQuery file with headers that cache the file for up to one year. This creates a potent effect of “cross-site caching.”

The most trafficked sites on the Internet already use the Google CDN to serve jQuery. Many users will never have to make a single HTTP request for jQuery. It only needs downloading once before.

Letting Google handle part of your site’s JavaScript footprint free of charge is too good to pass up. It’s an easy optimization because Google CDN has a vast caching advantage.

Note: If your theme and a plugin both use jQuery, your pages may end up with jQuery loaded twice causing even slower pages. The only way to know for certain is to check using or

Some claim the WP jQuery Plus plugin isn’t a “real” speed fix because it’s small and inconsequential. jQuery by itself is 91KB when it’s minified and further optimized to 33k with Gzip compression. For many, this 33k footprint left by jQuery is insignificant when the average homepage is a heavy 2M to 3M page weight. But if page weight is efficient (around 100k, for example) jQuery weight becomes one-third of the page weight. That’s significant overhead. Plus, do you know how to minify and Gzip your site? If not, this is a easy solution to reduce a 97k load by over 70 percent.


Load time of WordPress resident Gzipped jQuery files before adding the WP jQuery Plus plugin. Two files: 97 milliseconds and 55 milliseconds loaded in parallel.


Two minified files are loaded when using WP jQuery Plus plugin. One from Google, the other from CloudFlare CDN. There’s a high probability they’re already in the browser cache. Each file loads in 5 milliseconds in parallel with other assets. The page weight is the same but delivery is faster.

Increased parallelism is sometimes argued as an invalid benefit of Google CDN since there’s a WordPress-coding workaround: Just load jQuery in the footer rather than the header. This way pages load scripts faster. For WordPress, it’s done by editing the functions.php header code. But there’s no plugin for this code change. It requires some bravery and skill. We just don’t recommend it – even if it makes the plugin unnecessary.

The genius for this speed strategy is the pervasive ubiquity of the Google CDN address in browser caches. We recommend you try out the WP jQuery Plus plugin and test if it speeds up your page load times.

Note: A rebuttal/rant about this approach is explained in the article, “Why Loading Your Own jQuery is Irresponsible” Be sure to read the comments. They explain why “The WordPress Way” isn’t always the right way.

Autodescription SEO plugin and mobile speed.

Yes. “Autodescription” is a worthy plugin. It’s benign. We’ve tested it. It’s good for speed. But we don’t advocate SEO plugins. Keep reading to find out why.

Autodescription (aka The SEO Framework)
Active installs:
Zip download size:
All Time Installs: 370,034
Retention rate: 13.5 percent (medium)

Autodescription plugin doesn’t do grotesque slow downs like Yoast SEO (from 150 to 240 milliseconds site drag). All SEO plugins consume ever-growing database resources. The plugin authors don’t tell you about that hidden liability.

Do we think SEO tricks alter ranking or increase click thru? We’re unconvinced. It doesn’t move the needle. But site owners desire feeling in control of the uncontrollable page rank and clickthrough.

SEO is as therapeutic as knitting.

We also don’t believe speed affects page ranking more than 0.5 percent. Yet, we sell information about speed. Speed affects UX. Focusing on user experience and not gaming Google produces a better return on investment. Think about it.

Google used your handcrafted rich snippet?

Big deal. It’s simply not significant compared to a good product offer – or better and more written content that makes people drool. No one can prove  snippets make any difference. There is no quantifiable data or evidence. No expert certification or credible SEO degree. Except from Google, of course.

But if writing *rich* snippets makes you feel good. Do it.

Google chooses – and has the right to accept or reject – your manufactured rich snippet. When they feel it’s worthy or believable, they’ll keep it. But if they don’t, they’ll make their own concoction. You don’t *force* your snippet upon the world with a plugin. Our opinion is Google’s formula-built snippet is better. Why? They claim it’s based on user intent. They predict based on search history, where they just were, and what users hunt for. They use a smart algorithm.

Is that provable? Of course not.

Nothing Google claims or reports is provable with real metrics. They shamelessly imply or even promise site owners empowerment when there is none. It’s a reward (bribe), manipulation, or distraction. Compliance to their proprietary rules is mysterious behavior. Inexplicable. They really don’t want people knowing how they do things. Knowledge of the *real rules* allows site-owner cheating.

Is there “any harm” in writing custom snippets? Yes. Opportunity cost. That simple. It wastes your time. You’ve got bigger fish to fry. The SEO Emperor has no clothes.

Will it upset us if you install a plugin and do “SEO”? Not at all. We have freedom of speech and religion – and SEO. Go for it.

Our recommendation: Ignore machines and write for humans instead.

If you do SEO and see some miracle happen, please let us know. We’re only right 51 percent of the time. We’re not perfect.

So prove us wrong. That’s the challenge. Document your traffic dramatically increasing in short order after changing SEO tactics using snippets.

We’d actually like to be wrong on this one. 10 speed changes for $1,985. DIY with free plugins.

Let’s examine one of the Internet’s bigger speed service shakedowns: WP Faster. NOTE: Their home page loads in 2.76 seconds in our browser. Hmm? Not a very good example of less-then-2-second speed performance.

WP Faster provides an itemized “ala cart” 10-item speed menu. You can do the same changes yourself for free.

1SETUP FEE is $40.
Fine. A cover charge. A deterrent or penalty for clients with impossible speed tasks. A filter for unqualified leads.

Here are the various entrées you can order from WP Faster:

2CACHING $240.
What does that really entail? They install a caching plugin. Is that hard? No. It’s simple. There are good caching plugins with few (3) settings like free Cache Enabler. Can you do that? Yes. It’s easy to install this plugin. We use it on PagePipe. Now you know which caching plugin to install. We just told you. Don’t waste your 240 tacos! Does caching make a meaningful difference?

Tom Usborne of GeneratePress, a trustworthy and infamous developer, discourages activating caching plugins. Why? Because caching frequently breaks sites! Tom is tired of telling people to turn off caching to fix theme and plugin conflicts. The minimal return in actual speed gains is trifling. A well-optimized website rarely benefits from caching plugins. It’s not worth the pain. Same goes for minification plugins. Better scores but not better speed.

Tom Usbourne also says: “Don’t put too much stock into what Google PageSpeed says – it’s one of the worst performance checking services in my opinion (and a lot of other opinions).” – source

So, why does PagePipe use Cache Enabler if it doesn’t help speed? Face it, some pipsqueak critic won’t read this very page, go test PagePipe, and think a bad score means we’re stupid about speed. Sadness. Sigh. So a preventative preemptive strike is required against whiners and skeptics.

For this service, they use the more complicated and heavier Plugin Organizer plugin. It’s free. Does it require fiddling with settings? Yep. Do plugin “prioritization and load order” make a significant difference in speed? Well. No. It doesn’t. Not advantages we’ve ever measured. Maybe we missed a profound artifact?


If they use Plugin Organizer plugin for selective plugin activation, that would help. But they didn’t say they do that. Selective plugin activation and deactivation is tedious work. For that, we’d choose the more obscure but still free, simpler Plugin Logic.

But plugin priority and load order are NOT needed except for extreme speed optimization. And, by that, we’re talking rescue-attempts at subsecond load times. Even then, this monotonous messing around won’t guarantee acceptable user experience. It’s speed hand waving or superfluous project job padding. The return on your investment is minuscule.

Lossy image optimization is what you want. This is best achieved with a simple free plugin: Imsanity. No typo. Imsanity. Set the size limit to your page column width in pixels. If you don’t know that dimension, use 750 to 1000 pixels. Then set the compression to a range of 70 to 80. After backup, resize all your media library with the press of a button. Resizing is more important than compressing. Why? Because WordPress automatically compresses images to 82 quality. That is good enough for most sites. This speed-saving stopgap is already built into WordPress. But not for uploaded originals, just smaller size images like thumbs and medium-size insets. Imsanity plugin fixes everything.

If you’re using free Smush plugin for optimizing images, please stop. It only compresses images by 10 percent. Worthless! It’s the worst optimization plugin available. Normal lossy compression decreases image file size by 5 to 10 times the original. In other words, around 70 to 80 percent reduction.

First ask yourself: “Are my media library images PNG images? Or JPEG images?” What’s the worst performance problem caused by images? Answer: it’s site owners using high-resolution PNG image format for photographs. PNG photo format is a bad choice for speed. Use instead lossy JPEG compression. But lossy sounds bad. Doesn’t it?

Lossy doesn’t mean lousy. It should be called “automated data removal for visually lossless images.” Using PNG format for photos is a mistake. How big of a mistake? Well, a proper change can take a 12-second load time down to 4 seconds. Is that good enough? Absolutely not. 4 seconds is slow. 2 seconds or below is the target speed.

Is it hard to convert your media library from PNG to JPEG? Not if you use the free PNG to JPEG plugin. It even detects and preserves transparency on your tiny PNGs used as icons and guideposts. Smart plugin. A speed lifesaver.

PNG to JPG plugin
Active installs: 2,000+
Zip file size: 10k
All-time downloads: 10,115
Retention rate: 19.7 percent (good)

Description: Convert PNG images to JPG, free up web space and speed up your webpages:

  • Set quality of converted JPG.
  • Auto convert on upload.
  • Auto convert on upload only when PNG has no transparency.
  • Convert existing PNG image to JPG.
  • Bulk convert existing PNG images to JPG.

The return on image optimization for speed isn’t as great as it used to be. Even though images are still more than half of page weight, they’re not half of page load time. Why? Because improved web browsers do faster parallel loading. Images are loading simultaneously or overlap in the performance waterfall.

This activity is a complete waste of time and money. It’s a coder’s dilemma that programmers take joy in solving and get many billable hours. It produces no measurable benefit in millisecond load time. It only improves those dang fake speed scores misleading site owners into hunting unproductive wild geese. Don’t go on a wild goose chase. Forget this JavaScript-deferral silliness.

Install a minification plugin like Autoptimize and your done. But if your site breaks, try Better WordPress Minify. Read more about minification and it’s dangers here. Minification and concatenation don’t help speed much on a well-optimized site. More money wasted on speed services.

Pulleeze! One free lazy-load plugin with no settings installed for over a hundred dollars. You’ve got to be joking! BJ Lazyload plugin. And there are other freebies we like, for example, Lazy Load by WP Rocket. Does lazy loading help speed? Yep. But it doesn’t really decrease the amount of mobile bandwidth used. It improves perceived speed.

We can’t believe this! Minification is intrinsic in #5 plugin solution above. Double dipping with extra charges!
Scam artists.

This is a waste of time recommended by speed tests. It usually requires a coding solution. There are plugins to help but we’ve never found one that works. Even if we did, it’s simply not worth it. Where is above-the-fold on a mobile device or tablet? Farcical.

The GRAND TOTAL for WP Faster’s shakedown Bundle Offer is $1,125 dollars.

Over $1,000 dollars spent for what? Nothing you can’t do with free plugins yourself. Money wasted!

9. Remove inline CSS, change JavaScript load order $760 extra.
10. A Highly Detailed Before-and-After Report add $100 extra.

They’ve got to be joking!


Judging WordPress plugin quality.

Choosing a plugin would be easier if WordPress permitted a little more repository information. Author-generated advice is untrustworthy because it’s biased. Popularity (number of installs) is, also, a lame indicator. Newer plugins sometimes are better. We can’t search on freshness.

We seek indicators of credibility (which is composed of expertise, trustworthiness, and leadership). These findability cues are sometimes referred to as information scent. These things are inferred in the plugin repository – or are discovered by downloading. They include:

1. Download file size. This is a potential indicator of plugin efficiency. Not always but frequently. If we have alternatives, we recommend the smallest plugin package to avoid bloat. Why doesn’t WordPress just tell us file size before downloading or having to click? Editorializing download links is considered polite and good web etiquette.

2. Date of first approval or submission. Longevity in the market is an indicator of credibility. At present, we either must open the download package and examine the readme.txt for a change history – or figure it out in the repository by compatibility to the oldest version of WordPress. Like a reverse-lookup. Do we have to use Wikipedia? That still doesn’t really tell first-release date of the plugin.

3. Similar or newer plugins should be listed as linked options. Popularity doesn’t always mean “best.” It may just mean old or antiquated. Inference from similar plugins (if listed) helps cue us for plugin usage and adaptation (workarounds).

4. Does the plugin require a signup or registration? In other words, is it bait?

5. Does the plugin interrogate an offsite database or cloud information? This is an indicator of slower load times (page speed) and HTTP requests.

This information and more would make for better productivity using the repository. There isn’t enough information when making choices.

There are a few other things we’d love to see. But we’re being idealistic in our wish list. These include answering plugin questions such as:

  • Does the plugin have hidden non-features? For example, some image optimization plugins have limitations of image-conversion quantity. The repository says nothing about it. Nor does the readme.txt file. You must install first to find this bugaboo out.
  • Are there known incompatibilities or conflicts with other plugins or themes? Sometimes authors only reveal this in the readme.txt file. That wastes our time.
  • Does 8 months since an update concern us? Not in the least. There are plugins that are 8-years old in the directory that work just fine. Those “best if used by ” freshness dates are silly. They throw people off with their arbitrary “expiration-date” warnings.
  • Calculating retention rate is a better indicator of usefulness – rather than popularity (active installs). To determine ballpark retention rate: Take “active installation” from the plugin page. Let’s say it’s: 200,000. Then click on “advanced view.” And scroll down. Get the “All-time downloads:” Let’s use: 2,560,081. Do the math division. The result is 7.8 percent plugin retention rate. Less that 8 percent of the people who tried the plugin kept it. Not great.

Rule of Thumb: Below 10 percent is low retention. 10 to 25 is OK. 25 to 30 is good, and 50 percent is excellent.

Plugin quality can’t be judged by “last updated” any more than “active installs.” Retention is a better indicator than popularity or freshness. Perfectly good plugins appear artificially abandoned in the directory. Most don’t need updating EVER unless they break. They’re evergreen plugins. And should they break, they’re removed by WordPress. We use 8-year-old plugins without problems.

Age isn’t an indicator of low quality. Ask my wife. –Steve Teare

Plugins are backwards compatible. Until you install PHP7 or Gutenberg then they must be verified by the site owner. Gutenberg’s predicted to break 15 percent of all plugins (per Automattic core developer blogs). That includes paid plugins. They aren’t exempt.

This is one reason why it’s important to install “Disable Gutenberg” plugin today.

The plugins causing bigger problems are recently updated with bugs in them. They can unexpectedly nuke an entire site. Old “dormant” evergreen plugins are safer than “fresh” plugins that churn weekly – like some pagebuilder plugins and SEO plugins. This is historical fact. Those plugins cause problems for 100,000s of site owners. Do they recover? Of course.

There’s no such thing as a risk-free plugin or theme.

Speeding Up the WordPress Twenty-sixteen Theme

It’s a myth that using many plugins will slowdown your website. Being sloppy in judging plugin quality or necessity is the culprit. That’s within a designer’s control. It calls for wisdom and speed testing. The best plugins add no page weight at all – weightlessness!

Better WordPress Minify
Allows you to minify your CSS and JS files for faster page loading for visitors. Not all minifier plugins work – in fact – they frequently break your site. This plugin really works. It combines (concatenates) all possible files to reduce the number of HTTP requests and removes code “white space” and comments. In our case, that was the combination of several calls. All the little things add up.

Cache Buddy
Minimizes the situations in which logged-in users appear logged-in to WordPress, which increases the cacheability of your site. Improves page load time.

Remove Google Fonts References
Disable enqueuing of fonts used by WordPress from Google. This speeds up load time. Note: Open Sans is rarely a speed problem because it is cached on so many browsers. But other Google Fonts can drag a site down by a second in speed.

Google fonts can add up to one second to your page load time. For example: requesting Noto Sans and Noto Serif from the Google cloud was adding about 1 to 2 seconds to PagePipe’s website load time. The trade off for branding wasn’t worth it.

Get rid of calling Google Fonts from their remote server and load local websafe fonts instead. We confess Google fonts have more class but there’s nothing wrong with using “Georgia” and “Helvetica Neue” – the fall back fonts in the theme stack. We used “Disable Google Fonts” plugin first. But it failed to remove all offending instances. We then installed “Remove Google Fonts References” plugin instead. It worked great. All font calls were removed.

Remove Google Fonts References is very lightweight. It has no settings, just activate it and it works immediately.

Disable Emojis
This plugin disables the new emoji functionality in WordPress 4.2. WP does not need emoji. Probably, the worst decision ever by WordPress Core is enabling emojis by default, and providing no way to disable them. WordPress core developers should have a disable setting instead of us installing another removal plugin. Emoji functions add 5.6k to 14.7k page weight and 2 or 3 HTTP requests to a site. Waste.

Emoji are the 12-pixel-square-grid ideograms, emoticons, or smileys used in Japanese electronic messages and Web pages, the use of which is spreading outside Japan. Originally meaning pictograph, the word emoji literally means “picture” + “character”.

Beyond the standard emoticon-type “smileys”, there are hundreds of emoji, ranging from plants and animals to people, objects, vehicles, food, the Sun and Moon, and more.

Far Future Expiration Header
This plugin will add a “far future expiration” date for various file types to improve site performance. This is a best practice advocated by the Yahoo Extreme Performance Team. It keeps files and images cached longer. There is also a radio button to enable Gzip – a nice addition.

Optimize Database after Deleting Revisions
Optimizes the WordPress database after cleaning it out. This flushes the deadwood from the MySQL database that WordPress uses. MySQL is provided by your hosting company.

Rocket Lazy Load
A tiny Lazy Load script for WordPress without using jQuery or others libraries. Lazy load is a method of delaying loading non-critical images that are “below the fold.” This technique buys about 1 to 2 seconds of faster perceived load time. Rocket Lazy Load automates everything.

This tiny script (less than 2k!) displays all images in a post or widget, thumbnails, avatars and emoticons as users scroll down your site. It doesn’t come with any options or customizations, just install and activate this plugin and let it do it’s thing.

ShortPixel Image Optimiser
ShortPixel is an image compression tool that helps improve our website performance. The plugin optimises images automatically using either lossy or lossless compression. Resulting, smaller, images are no different in visual quality from the original. The plugin can do this as images are loaded or can retrofit your image library. Retrofits can take about 20 minutes of computer time. So go make a sandwich. The savings results are shown in your media library for each image.

Visitor Mailer
Receive an email update of the number of visitors to your site. We hate using Google Analytics because it’s slow. It requires calls and wait time and adds page weight. We only need reassurance that people are coming to our site. We may get more sophisticated someday and start measuring bounce rate and clickthru. But not yet. We aren’t selling pet supplies or trendy clothes.

WP jQuery Plus
Loads jQuery from Google and is nicely compressed and minified. Plus there’s a failsafe. If it doesn’t respond, it just loads the onboard WordPress version. jQuery is usually one of the biggest chunks of code in WordPress. It needs special attention. Loading WordPress javascript files from Google’s Libraries rather than serving directly from your WordPress install, will – in theory – reduce latency, increase parallelism, and improve caching.

Is removing the default version of jQuery in WordPress irresponsible? No. The fastest jQuery is the one you never have to load.

WP Super Cache
Caching plugin for WordPress. We find this plugin doesn’t always help with speed. But in this case, it did. So we used it. The benefit at best case was 500 milliseconds gain. We’ll take it.

All plugins listed are free downloads from

We frequently remove Genericons by WordPress. They are baked into the WordPress theme installation in the functions.php file. We removed all “genericons” words from the file. This reduced page weight by an additional 75k. It eliminated two [tipso tip=”Whenever your web browser fetches a file – a page, a picture, etc – from a web server, it does so using HTTP – that’s Hypertext Transfer Protocol.”]HTTP calls[/tipso] and bought us another second of reduced load time.

Comment out Genericons in function.php.

Genricons are a special font symbol. They aren’t really used by this theme. Genericons are a bloated bane we have written about before. Commenting out a single line of code in the functions.php file is the solution. Find the file using the Editor. Use the symbols /** in front and **/ on the other end of the single line that has the three words “genericons” in it. That gets rid of almost 40k of deadwood page weight.

Turnoff the silly default avatar.

Twentysixteen theme comes with the avatar switched on and all it calls is the gray silhouette image of a human form. That adds 1 second to the page load time. When your target performance budget is under 2 second load time, one second wastes half the budget. The solution is simple: Deselect (off) Avatar in Dashboard > Settings > Discussion. Done deal. No plugin or code rewriting necessary.


[bscolumns class=”one_half”]

thumbnail of THEME-ME-10-v1.compressed
THEME.ME: What is the fastest free theme? There are 5,100 free themes in the WordPress theme directory. Of those, only 1,602 are responsive. All the rest are fixed-width junk. How did we sort the remaining 1,602 free responsive themes to find the fastest loading?

[/bscolumns][bscolumns class=”one_half_last”]

Twenty-seventeen Default Theme Tips Read our torture-test results of this popular free theme. Don’t get locked in for recurring *annual renewal* theme memberships. Save your money. The Twenty-seventeen Torture-tested Themes ebook contains honest and common-sense reporting and tips about mobile WordPress speed!

[/bscolumns][bscolumns class=”clear”][/bscolumns]

What’s the truth about calculating plugin retention?

Calculating retention rate is a indicator of usefulness – rather than popularity (active installs). To determine ballpark retention rate: Take “active installation” from the plugin page. Let’s say it’s: 200,000. Then click on “advanced view.” And scroll down. Get the “All-time downloads:” Let’s use: 2,560,081. Do the math division. The result is 7.8 percent plugin retention rate. Less that 8 percent of the people who tried the plugin kept it. Not great. Rule of Thumb: Below 10 percent is low retention. 10 to 25 is OK. 25 to 30 is good, and 50 percent is excellent. – Source

Who’s Dave Baker?

Dave Baker

Dave Baker currently works for Envato (ThemeForest). Previous to that he was a WordPress theme and plugin author under the brand “dtbaker”.

He has no affiliation with Elementor besides having made a few themes and plugins that integrate with the Elementor page builder. He’s page builder agnostic. But finds himself using Elementor quite a bit. Its free version is pretty powerful compared to other options – and his customers love free!

At work, he uses Elementor to build pages such as:

Dave is also the programmer behind this plugin:

This gives him direct access to download statistics. He knows that a download graph jumps as soon as he releases an update. Daily download counts are reset at about 10AM AEST (Australian Eastern Standard Time).  So that’s when the chart updates.

Other details about Dave Baker:

A discussion about erroneous plugin retention calculations between Steve Teare (PagePipe) and Dave Baker (Envato – and plugin author):

Dave: I was just having a read of

I wanted to quickly correct you on something about WordPress stats.

The “Download Count” includes everybody who:

  • Clicks the download button on the page (even those who don’t install the zip).
  • Installs the plugin via the WordPress update panel
  • Updates the plugin via WordPress – this is the important one.

If you have 100 users and they all update the plugin, the download count will jump to 200, but you will still only have 100 active installs.

Retention rates are impossible to determine by WordPress stats, because download numbers include every time someone updates the plugin.

You can easily see this on less popular plugin such as:
The “Downloads per day” chart spikes every time there is a plugin update released, because that is all the existing customers downloading the plugin update again without a growth in active installs.

Steve: Thanks for sharing your thoughts about retention calculation.

I’m sorry if I’ve misrepresented Download Count. Where did you get this information about the definition of an “official and unofficial download”?

Dave:  As for how I know about this download counter, I asked Dion Hulse, [WordPress Core Contributor –] about it when we caught up at WordCamp Brisbane.

I really wanted to see if we could track zip downloads vs installations vs updates separately, as the current numbers are a mess. I wanted to see if he could help nudge that particular feature forward in the WordPress core, as he is a major core contributor.

But unfortunately it’s not going to happen – and everything will continue to hit the same “download” endpoint. Updates / downloads and install numbers will all be jumbled together for the foreseeable future. The only way we can track this metric is using 3rd party analytics, or the (quite unreliable – that’s another story all together!) active install count on

If you really want to test it yourself, hit the “Download ZIP” button on a plugin a few times, and then refresh the stats page. The numbers update instantly. You can also install an older version of an unpopular plugin, then update it in WordPress, and watch the download count increase. Repeat as necessary.

So tl;dr, it’s impossible to track retention, even for people like me who create the plugins and really want to know what retention is.

Steve: So I want to clarify something.

If an automatic update is done by a host provider, does that increase the download counter? Or is it actual downloads through the browser that increment the counter? Or in other words, I download and then upload the plugin zip file via the WordPress dashboard.

Can I find a lonely plugin and start pumping up the numbers in manipulation?

If updates count as downloads, that’s really lame and flawed. What good are these numbers for anything?

I’m speechless.

For example, GoDaddy automatically updates millions of WordPress plugins with new releases. So do many MANAGED WordPress hosts like Kinsta and Pressidium (smaller number of users) etc. Are these included in the count?

For example, GoDaddy automatically installs “Limit Login Attempts Reloaded” plugin. And Akismet is loaded on every stinking WordPress install. Those count as downloads?

So can I game the system as a plugin author and make it look like my plugin is hugely popular?

Just trying to wrap my head around this potential weirdness. Also it seems like plugins who do frequent and rapid updates like Elementor would run up the tab – and possibly be an indicator of churning. Frequent updates are indicators of unpredictable fragility more than strength.

Now there’s one company deliberately doing regular systematic updates even when unneeded. That’s Yoast SEO plugin. It’s part of their marketing plan. This triggers ad presentation in the WordPress dashboard. Those have to be dismissed. Anyway, they are definitely gaming – and it works.

Aren’t you effectively saying the number of download counts – reported immediately – double every single time a release is made?

Is there any residual value in “active installs divided by all time downloads” indicating churning, quality, or management practices? Or is it completely useless drivel?

My gut says it’s telling something – even if it’s the shame of WordPress reporting policy.

Dave: Yep. WordPress core will download the plugin update or installation from the same URL (example: )

This is the identical URL you click to get the ZIP from the page:

So yes you’re correct, clicking “Download” on increases the count, the same way as installing through WordPress, the same as updating through WordPress.

Yes. Managed hosted, managewp, automatic installs, if the underlying system tells WordPress to “fetch an update” or “install this plugin” then that download count will increase.

Numbers do double on updates, that’s why the chart is “Downloads per day” and not “Total downloads”.

You can get an indicator of plugin growth by looking at the top of the “download” spikes. This is a great indicator to how many people are actively updating their plugins. If the top of those spikes are going up, it means more people are engaging with the product over time.

You could in theory “game” the system by increasing your download count slowly over time, but no need to game it if you can just release a plugin update and double your download count the next day.

Yoast is a good example, 143,129,874 downloads and 5,000,000 active installs.

That 5 million is only 3% of total downloads.

Also considering there are only about 75,000,000 WordPress sites running WordPress, that download count is a clear indication of all time installs, updates, and zip downloads.

We’ve found no value in this number for our own product and in competitor analytics. It’s just a nice metric to compare popularity between plugins.

Basically, a higher daily number means it’s a more popular plugin. Automated tools such as ManageWP do increase this number, so take it with a grain of salt for sure.

Steve: Thanks for the plugin tutorial.

When is a plugin too old to trust?

Today, PagePipe uses 70 plugins. About 30 not updated for over 1 year. Some for many years. We’re not embarrassed about that. It’s not a mistake.

Plugins listed in our ebooks are currently used on PagePipe. And also on client sites – except for Guerilla sticky bar. The plugin author removed it from the directory in recent times. Why? Because he became bored with it.

So the question is “Outdated? By what definition?”

What does outdated mean? Some think a warning like:

“This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.”

Being orphaned or abandoned doesn’t mean “bad or rotten.”

These lonely plugins still work. And often for over a decade without complaints. That isn’t brokenness.


Above, we explain retention rate is more important than plugin popularity. Or even freshness.

But also in the article, we explain:

“Does 8 months since an update concern us? Not in the least. There are plugins that are 8-years old in the directory that work fine. Those “best if used by” freshness dates are silly. They throw people off with their arbitrary “expiration-date” warnings.”

WordPress places warnings when a plugin isn’t tested with recent versions. Does that mean it won’t work any more with new versions of WordPress? Nope.

WordPress’ motive is covering their legal behinds against liability and lawsuits. If a plugin didn’t work any more or presented security hazards, it’s removed fast. And some are. In particular, malicious plugins. They call those “take downs.” Plugin authors remove some because they didn’t get the market results they wanted. But generally plugins stay as long as there isn’t any noise about them. Retired or dead author’s plugins stay in the WordPress free directory.

No plugin is safe. Not paid (premium) plugins. Not obsolete plugins. And not recently updated plugins. A common plugin problem is automatic updates loading onto managed WordPress sites. Bugs in the new version mangle the site or causes conflicts.

It happens.

There’s no such thing as a risk-free plugin or theme. Even reckless WordPress messes up with their own Automattic-authored plugins.

We use Peanut Butter Bar plugin on various sites in place of the now-absent Guerrilla sticky bar.

We use “Remove Google Fonts References” plugin on PagePipe instead of “Remove Google fonts” plugin. Both work without problems. Both are several years old and work fine.

Good-old “Plugin Logic” is our secret, speed-weapon plugin. It’s used on every site we touch. SELECT.ME issue #11 talks about it. It’s an amazing plugin.

Want to keep a specific plugin from updating? We recommend “Block Specific Plugin Updates” plugin. There are times this is handy.

A plugin we use to track plugin age is “More Plugin Info” plugin

There’s plugin churning in the 55,000+ plugin database. Don’t let silly warnings discourage you. They aren’t for your protection. They’re protecting WordPress.

Don’t fear old plugins.

How Google no-Captcha Captcha slows down your mobile site.

Why does Google repeatedly mess up web speed? We don’t know. The harder they try the worse it gets. Here’s another unrecognized offense against mobile speed.

What’s the cost of placing Google’s “NoCaptcha reCaptcha” on your precious website? Most site owners don’t realize the heavy speed impact of adding this Google-sponsored freebie. It’s speed-destroying bad news. NoCaptcha reCaptcha negates your hard work tweaking away milliseconds.

So what is NoCaptcha reCaptcha – and how did it get such a goofy name? This is what it looks like today (see image below). We’re sure you’ve seen it before. It appears on many sites – big and small. All you need to use it is signing up for a Google API.

NoCaptcha reCaptcha is an automated robot sniffer. It’s supposed to be intelligent. It monitors the user-approach path toward the button. It’s original form was a sort-of-simple reCaptcha to catch spambots.

“A significant number of your users can now attest they are human without having to solve a CAPTCHA. Instead with just a single click they’ll confirm they are not a robot. We’re calling it the No CAPTCHA reCAPTCHA experience.” – Google

API means “application programming interface.” It’s a set of protocols and tools for building application software. APIs are always several calls or requests to remote servers. This takes time and causes delays. The scripts used aren’t cached as part of your website. There’s no escaping the speed burden APIs cause. Does Google gather site data from their APIs and fonts? Of course. Why do you think it’s free?

Above is the old-style reCaptcha. You had to read either numbers or letters from a photograph – or fuzzy squiggly words. Then enter those into a field. This annoyed people for obvious reasons. Can you read those dim numbers? Squint!

reCAPTCHA was acquired by Google in September 2009. It historically was difficult. Google used warped pictures that were hard for bots and humans to fill out. Blurred, jiggled, or fuzzy backgrounds were an ugly mess. Now it’s condensed into a Javascript widget (API), known as the new noCAPTCHA reCAPTCHA. No more letters and numbers that are hard to read, simply click the widget to proceed. Sounds great.

Does it always work flawlessly? Nope. We attest to that from personal experience. If you fail the human test, it presents pictures to recognize. These include things such as “click on all the road signs” or “click on all the storefronts.” It can present never-ending pictures – even if you’re careful. Usability nightmare.

Google introduced reCAPTCHA v3 in November 2018, which promises a new “frictionless user experience.” Earlier versions of the API stopped bots but also drew the ire of internet users across the globe. Users were regularly inconvenienced with distorted text challenges, street sign puzzles, click requirements, and other actions to prove their humanity. Annoying!

The WordPress Plugin Directory has dozens of standalone plugins and contact forms that make use of reCAPTCHA in some way. Sites that are already set up to use v2 or the Invisible CAPTCHA, will not automatically update to use v3. There’s a different signup and implementation process that the site owner has to perform before having it integrated on the site.

Before reCaptcha existed, “captcha” was used on comments, forms, and logins. Preventing and blocking spammers and hackers was the goal. A captcha was real simple. It had no API. It usually asked you to answer a question, describe a picture, or solve a math challenge.

Here’s a typical math-challenge example:

OK. We’re joking.

A math challenge was something more like: “What is 1 + 1?” Or a text challenge might ask, “What color is the sky?” But some people answer azure or cyan – instead of blue. Does simple captcha still work? Yes. Do they add to page weight? No. Do they thwart SPAMbots? Yes. So why use a slow, heavier, sophisticated noCaptcha reCaptcha? Is Google spying on your site? We don’t know. It makes no sense whatsoever. So you’ll feel faddish and hip?

Captcha and reCaptcha are used to protect comment forms, login forms, register forms, rest password forms, and block spam comments.

There are over 50 captcha and recaptcha plugins in the free WordPress plugin directory. We downloaded them all to check them over. We aren’t making any recommendations. Why? Because captcha or reCaptcha – and especially noCaptcha reCaptcha – aren’t necessary in the least. Other plugins can take care of security and SPAM blocking without UX hassle for you or users.

So how bad is the noCaptcha reCaptcha speed damage? From our limited tests, here’s the results:

NoCaptcha reCaptcha adds 350 to 550 milliseconds globally to your website.

When we say, globally we mean site drag. That is where a plugin or script slows down every single page and post of your website. Not only the page where a shortcode or appearance is located. Everywhere.

How many HTTP requests or calls are added? Between 11 and 20. It depends on variables. It’s not always the same. Again, don’t ask us why. It’s a Google thing.

The real kicker is sometimes server connections don’t happen smoothly. Then load times are unpredictable. Users complain of delays of up to 30 seconds. That’s correct. Not 30 milliseconds. Seconds!

We just don’t think noCaptcha reCaptcha is worth it – especially for mobile devices.

A speed comparison of WordPress Link Cloaking plugins

Affliate links are a way to monetize a WordPress website. We don’t do monetization on PagePipe – but many websites do.

Affiliate marketers use link cloaking plugins to create and shorten external affiliate links. You insert these links into posts, pages, and comments. They are a type of hidden page redirection and mask affiliate partner links from site users. Is it a “Black Hat” trick? Maybe? Why? Because visitors are clueless where they’ll be heading. It’s a way to fool humans.

All plugins cause some load time delay. This occurs in HTML code with at least single-digit milliseconds. A heavy plugin may cause 50 to 70 milliseconds of delay.

The link appears benign as an internal site link – when really it’s a mildly-deceptive offsite link. Some affiliates have a advisory note telling people about affiliate fees or credits if you click a link. This “advertiser disclosure” is often in fine print at the bottom of a long scrolling page. It’s not hidden but it’s not always plain either. The link URL has a long query string embedded in it to earn credit for affiliate commissions. Link cloaking also shortens long URLs to simple “pretty or tiny” links. Such as ‘’.

Affiliate links don’t say, “Click here to download this great thing.” Instead they say something like, “Earn 50,000 bonus miles” or “Get 5% cash back.” They are promotional deals and sound like promises of free money – but you must buy something first.

Click tracking and affiliate link cloaking supposedly sell and convert better. Most cloaking plugins collect lifetime-click statistics. A central dashboard helps you manage all the affiliate links on the website. You can create, edit, delete, and manage links by 301 redirects.

You can send clickers to destinations without them even knowing where they are going to land. Is this fair? We think not. Even so, your clients may insist on this feature. Can you create and manage these links with a WordPress plugin? Yes. You can. So which free plugin solution is the fastest for mobile connections?


All seven are easy to install and have similar functions and controls.


Link Cloaking Plugin,Load Time ms,Installs,Downloads,Retention
Affiliate Links Lite,3.1,5000+,20686,24%
WP Cloaker,5.9,6000+,4981,???
WP Shorties,8.5,400+,4461,9%
Premium Link Cloaker Lite,8.9,40+,469,9%
Easy Affiliate Links,9.1,10000+,60792,16%


We deemed Affiliate Links Lite the “best.” Here’s why:

  1. Affiliate Links Lite plugin is the lightest and fastest.
  2. Affiliate Links Lite has above-average retention rate (24 percent). Retention rate is not the same as popularity – which is active installs. Retention is the percentage of people who tested it (downloaded) and kept the plugin (active). That is a better measure of quality and value. The usual scale ranges from 5 percent (low) to 20 percent (high). There are exceptions of pure lunacy*.
  3. Affiliate Links Lite includes the exact same control features as the other fast plugins. Features include: Title, Category, Date, Link URL, Link Target URL, Link Description, and Hits. And there is an additional control panel for “configuring  link redirection.” Overall we’re impressed.

*The plugin retention joke we laugh about most is P3 Plugin Performance Profiler authored by our beloved alma mater Godaddy. Over 100,000+ installs – sounds pretty good right? And 1.2 million downloads. That’s a retention rate of around 10 percent. Not bad. Except for one thing, P3 slows down every single page of a website by 12.7 milliseconds – when left enabled. What was it those 100,000-plus websites were fleetingly testing? Oh, yeah, plugin speed performance! Big oops.

Affliate Links Lite plugin author boasts these benefits:

  • Boost your SEO by hiding affiliate links from search engines.
  • Protect your earnings by masking referral links.
  • Increase your revenue by analyzing your link traffic and stats.
  • Save your time by using affiliate links easily and with no hassle.

PagePipe Note: Claiming SEO benefits from any plugin is nonsense and untruth. But some of our favorite speed plugins are equally misguided. So we’ll let it slide. The other benefits are weak at best. But if your web-project committee insists link cloaking features are needed, this plugin is the painless way to appease them.

Affiliate Links Lite
Active installs: 5,000+
Retention: 24 percent
Zip archive: 199k


FAILED (Wouldn’t work with PHP 7.1 or wouldn’t load)
Affiliate Link Cloaking
WP Affiliate Linker
Clickmeter Link Shortener and Analytics

FAT (Fat plugins had double-digit millisecond load times. )
Shoutcodes Lite
Link Cloaker for Affiliates
WP Auto Affiliate Links
Pretty Link
Shorty Lite

OLD (Crusty. Not updated for many years.)
Simple Link Cloaker
Custom Affiliate Links Cloaker

NOTE:  Some rejected plugins are especially bad for speed. The worst being: Link Cloaker Affiliates which causes heavy site drag. It loads down every page and post with an extra 339k of page weight. The other two worst offenders for ruining speed weren’t so bad. They added extra HTTP requests: WP Auto Affiliate Links – 2 calls, and Shoutcode Lite – 3 calls. But that still disqualifies them from the fast list.

Is Jetpack bloated, and slowing things down?

“Jetpack adds powerful features previously only available to users including customization, traffic, mobile, content, and performance tools.”

—Plugin description from

Developers, designers, end users, and even the founder of WordPress himself, rave about the importance of Jetpack, and want everyone to think that using Jetpack is necessary not only to get the most out of WordPress, but necessary if WordPress is to continue its dominance in the field of website design.

According to these people, Jetpack is the fix-all, the be-all, and the essential plugin that brings in important features missing in the naked WordPress installation. In other words, if we don’t use Jetpack we’re putting the entire WordPress universe in jeopardy.

We disagree. We think they’re wrong. We think Jetpack is bloated, and slows things down. We think you will get more speed and more value by taking a “naked” theme, and adding the “just right” individual plugins as needed – without Jetpack. We call those open-source discreet plugins. They are purpose-built for usually one function and have no or few settings. Jetpack is a multifunction plugin. Multifunction plugins are usually bloated with code overkill.

We’ve done some research and some testing, and here’s what we’ve found out:

Weight matters
Size of WordPress decompressed: 28.MB
Size of Jetpack decompressed: 14.8MB
Jetpack file size is 50 percent the size of WordPress.

Jetpack has a retention rate of 6.5 percent. That’s terrible. For comparison, good is around 30 percent retention and bad is 10 percent.

People like to say that WordPress is bloated, and maybe it is. But look at this comparison: Jetpack, which is just a plugin, an add-on to WordPress, has a file size 50 percent the size of WordPress itself. Talk about bloat!

Does this bloat make a difference? You bet it does. For more information, read our discussions about weight  here.

Speed test with Jetpack activated but no modules activated
We wanted to test page speed on a simple WordPress site two different ways: Naked (no plugins) vs. Jetpack installed and activated with no modules activated. Here’s what we found:

Naked (No Jetpack)
First-visit speed (empty cache) 802 milliseconds
Subsequent-visit speed (primed cache) 608 milliseconds

Loaded (Jetpack installed and activated)
First-visit speed (empty cache) 3.13 seconds
Subsequent-visit speed (primed cache) 995 milliseconds

Test conducted on
Theme: Omega, a fast and free theme.
Page weight: 7k.

What a difference. Initial page load with JetPack installed was totally non-jet-like – a full 3 seconds – while the naked theme loaded up in under 1 second. That’s a huge difference.

Do you think your site visitors would prefer a page that loads in less than 1 second, or would they rather sit there drumming their fingers on their desk while waiting a full 3 seconds for the page to load?

More Speed Results

We further benchmarked Jetpack page speed on a simple, Gzip-enabled, WordPress site:
Setup 1: Five Jetpack modules activated.
Setup 2: Three “equivalent” third-party plugins activated plus favicon.ico image file FTP upload.

Modules used: Contact Form (Akismet Anti-Spam plugin required), Widgeted Tiled Gallery, Carousel, Site Icon, Extra Sidebar Widgets.
First-visit speed (empty cache) 1.633 seconds, 19 components, 309k weight.
Subsequent-visit speed (primed cache) 1.1 seconds, 5 components, 169k weight.

Lookalike third-party plugins
Plugins used: Simple Basic Contact Form, Image Widget, Tiled Gallery Carousel without Jetpack, Favicon.ico upload via FTP
First-visit speed (empty cache) 1.45 seconds, 17 components, 152k weight.
Subsequent-visit speed (primed cache) 673 milliseconds, 1 components, 5k weight.

About Extra Sidebar Widgets module – I searched across the web and did not find a WordPress plugin that provided a similar group of widgets. To mimic the functionality of this module, you’ll need to install anywhere between 3 – 4 separate plugins with widgets.
–Jeff Chandler, contributing writer for WPTavern blog 2013.

As Jeff Chandler said, you can’t mimic the Extra Sidebar Widgets module even with many plugins – yet. With it, we could place our carousel in the sidebar. That was the only thing that impressed us about Jetpack. On the benchmark, we placed the carousel in the body. The image weights were the same for both tests.

The speed difference on the first load isn’t that impressive: 183 milliseconds. But on the second load or cached load, the difference was significant: 427 milliseconds – almost half the page speed.

Test conducted on
Theme: Omega, a fast and free theme.
Page weight: 7k.

Another alternative: Unplug Jetpack plugin

Calling cloud-based web functions slow down page load time. In theory, the more HTTP requests the slower your site runs. Do you want a feature from Jetpack but don’t want to connect to’s cloud? Just use “Unplug Jetpack” plugin combined with the regular Jetpack plugin. It allows only the modules that don’t make offsite calls accessible.

“Unplug Jetpack” plugin contains only two files. One is the file and the other is a Javascript file that weighs only 1.2k decompressed. It requires installing Jetpack first. By default, “Unplug” switches off all cloud-based functions and leaves the remaining modules activated. You then go through the list and deselect the remaining functions that aren’t needed.

Asterisked below * are the 17 features the tiny “Unplug Jetpack” plugin leaves activated. Ghosted, control-panel modules show the auto-disabled cloud features.

So what wonderful features do you get with JetPack?

Jetpack lists 36 features. Are they useful? Perhaps for bloggers but not website creators. How many of Jetpack’s modules will you actually use? Read below for our further assessment of each feature:

  • Custom CSS*
    Customize the look of your site, without modifying your theme.
    — Essentially create a child theme. One-button child theme plugin is a weightless alternative – among others.
  • Single Sign On
    Let users log in through with one click.
    — Big deal.
  • Stats
    Simple, concise site stats with no additional load on your server.
    — An alternative to Google Analytics. But many small sites could care less about stats.
  • Site Icon*
    Add a site icon to your site.
    — Favicon. There are various ways to solve loading a favicon. Many themes allow upload via the WordPress administration panel. The way the “Site Icon” feature does it guarantees a heavier favicon – around 2k. Most of our favicons weigh around 300B or less. This isn’t a big issue. All modern browsers know how to recognize and handle lazy loading of a favicon simply by placing the image in your website root folder. You don’t need any page coding any more. So this feature is odd. For novices, it may be a godsend.
  • Site Verification*
    Verify your site or domain with Google Webmaster Tools, Pinterest, and others.
    — Say what? Who cares!?
  • Related Posts
    Display links to your related content under posts and pages.
    — There are plugins that do this. We don’t know their impact on speed. We would never use one because it’s a blogging feature.
  • Markdown*
    Write posts or pages in plain-text Markdown syntax.
    — Oh, boy. You can code. Yuck.
  • Monitor
    — Uh. We suppose some would like this but we don’t care.
  • Jetpack Single Sign On
    Allow your users to log in using their accounts.
    — Again, we wouldn’t use this.
  • VideoPressPaid
    Upload and embed videos right on your site. (Subscription required.)
    — Say what? Paid feature!?
  • Widget Visibility*
    Specify which widgets appear on which pages of your site.
    — There are free plugins for this such as Dynamic Widgets plugin.
  • Omnisearch*
    Search your entire database from a single field in your Dashboard.
    — We’d never use it. Not on a small website.
  • Likes
    Give visitors an easy way to show their appreciation for your content.
    — Do we really need our ego stroked that bad?
  • Tiled Galleries*
    Display your image galleries in a variety of sleek, graphic arrangements.
    — Plugins exist for tiled or masonry style image presentation. But, we found this feature had potential not advertised. For more comparisons of discrete free plugins versus using comparable Jetpack features, Go to this page >
  • Publicize
    Share new posts on social media networks automatically.
    — We wouldn’t use this because we don’t believe social links help B2B websites. Social links slow a site way down.
  • Post by Email
    Publish posts by email, using any device and email client.
    — Not for us.
  • Photon
    Accelerate your site by loading images from the CDN.

    — They offer a CDN for images. CloudFlare offers free services for every file with security and a WordPress CloudFlare plugin helper for free, too.
  • Infinite Scroll*
    Add support for infinite scroll to your theme.
    — Other free plugins can do this.
  • Notifications
    Receive notification of site activity via the admin toolbar and your Mobile devices.
    — Like we’re going to sit and watch for this? There are plugins that do this.
    Allow applications to securely access your content through the cloud.
    — Whoopee.
  • Mobile Theme*
    Optimize your site with a mobile-friendly theme for smartphones.
    — Responsive themes are free. This feature implies the module converts your theme to responsive design. What they are really doing is offering apps to make themes work on specific devices and operating systems. It’s unclear if these are paid or not. To us, it appears to be a band-aid.
  • Carousel*
    Transform standard image galleries into full-screen slideshows.
    — Many plugins available for this stuff. But even better –don’t use a slider or carousel.
  • Jetpack Comments
    Let readers comment with, Twitter, Facebook, or Google+ accounts.
    — No thanks.
  • Contact Form*
    Insert a contact form anywhere on your site.
    –There are perfectly good plugins for this that are lightweight.
  • Extra Sidebar Widgets*
    Add images, Twitter streams, your site’s RSS links, and more to your sidebar.
    — Again, these can be solved with discreet plugins.
  • Enhanced Distribution
    Share your public posts and comments to search engines and other services.<
    — No thanks. We’re not bloggers.
  • Subscriptions
    Allow users to subscribe to your posts and comments and receive notifications via email.
    — Already have plugins with this feature.
  • VaultPressPaid
    Protect your site with automatic backups and security scans. (Subscription required.)
    — PAID!? Free alternative plugins exist that don’t cause any page load.
  • Stats
    Monitor your stats with clear, concise reports and no additional load on your server.
    — Reiteration of the Google Analytics alternative.
  • Shortcode Embeds*
    Embed content from YouTube, Vimeo, SlideShare, and more, no coding necessary.
    — Again if you want these features plugins exist already.
  • Spelling and Grammar
    Check your spelling, style, and grammar with the After the Deadline proofreading service.
    — This can be added as an addon or extension to your favorite browser and not load down WordPress.
  • Sharing*
    Allow visitors to share your content on Facebook, Twitter, and more with a click.
    — No social for us.
  • Shortlinks
    Enable shortlinks for all posts and pages.
    — Nice. But again plugins already exist for this.
  • Gravatar Hovercards*
    Enable pop-up business cards over commenter’s’ Gravatars.
    — No thank you. No comments allowed on our sites.
  • Beautiful Math*
    Use LaTeX markup language in posts and pages for complex equations and other geekery.
    — Nice if you have a scientific client. But other solutions probably exist.

Asterisked above * are the 17 features the tiny “Unplug Jetpack” plugin leaves activated.

While we don’t agree with everything on this offsite blog post, it’s a good overview of Jetpack. It’s biased in favor of Jetpack and it’s bloat.

Overcoming MailChimp signup on Twenty-seventeen theme with no page section widget.

Want to use the MailChimp WP Subscribe form on the default WordPress Twenty-seventeen theme?

Then you have a problem. The Home page is sectional pages in the customizer. You ask, “That’s a problem? How so?” Choosing this customization, sacrifices home-page sidebars – and thus no standard widget areas. Widgets are only allowed on posts. Here’s our journey to find a workaround  solution:

We ran into a problem using WP Subscribe on a test site. There, we used the default WordPress Twenty-seventeen theme. Notice during the test (image above), we got a 404-error message. “The requested resource could not be found.” Why was this happening? The same form worked fine on We’ve verified the MailChimp API key and the widget matched. It was Kosher.

The Twenty-seventeen theme has a surprise built-in dilemma. You customize the theme home page with optional front-page sections. These allow parallax scrolling images between sections. Nice. Thank you very much. But Twenty-seventeen theme doesn’t allow sidebar widgets on pages. Only posts allow that. Therein lies the problem [disapproval – Boo!]. Since WP Subscribe is in a widget area, we tried using a workaround to place the signup at top, front, and center.

There are various plugins that can help create a widget area inside a page. We thought we’d be clever and use one of those. Failure!

We tried first a plugin called Widgets on a Page. We disabled all other plugins except “WP Subscribe” and “Widgets on Page” plugins. The same 404 error message still reappeared with another test.

Widgets-on-Page plugin is superseded with Turbo-Widgets plugin. But it doesn’t allow editing of the WP Subscribe settings. Widgets on Page is still maintained and last updated 3 weeks ago and has 70,000+ installs. It is compatible with WP 4.7.3 – which we’re using. We suspect this combination of plugins is corrupting code somewhere. And we mean permanently altered – as in undoable.

To remove variables, we tested this errant plugin combination back on The result was the same 404 error message. We removed “Widget on Page” plugin. The results on all sidebar signup forms – that formerly worked fine. Errors galore. Corruption of the plugin database.

On, because the WP Plugin database was now corrupted. That forced us to reinstalled a recent site backup. That cleared the errors. That was a harsh lesson.

We also investigated AMR Shortcode Any Widget as a workaround to embed a widget. Further testing on PagePipe revealed more. The “AMR shortcode any widget” plugin fails also (unknown error, call etc) when embedding the WP Subscribe plugin widget. But it doesn’t corrupt sidebar widget versions of WP Subscribe. We didn’t have to reinstall backups. No corruption. Whew!

This plugin also fails but not destructively. We finally ran out of widget embedding options.

Because of these problems, we switched to “YIKES Easy Forms for MailChimp” plugin (freebie). 50,000+ installs, 3.7M download size. You can place its shortcode on the front page of the Twenty-seventeen theme. That’s the secret fix. Now you can place a MailChimp signup on default Twenty-seventeen theme pages. Note: In spite of it’s massive plugin download weight (11.5MB decompressed), it is a lightweight plugin and doesn’t bog down page speed. Much of the weight (8M) is in SVG image files for international flag icons. What?! Silliness.

The good news is with a Autoptimize minification plugin installed, this final signup form only added 36 milliseconds to site drag. This is 20 times faster than other alternatives – like iContact.



The prototype page on Twenty-seventeen theme:

Misunderstood “Asset Queue Manager” speed plugin has great performance potential.

We admit there are times we find new plugins and think we know their function – only to find out later what they’re really good for. This is one of them.

It’s just that the plugin author didn’t know how to explain or market the plugin the way we were thinking. They had a clever solution without our real-world problem mentioned. We didn’t recognize the plugin’s potential to solve our problems until later – by accident.

For ages we’ve wanted the ability switch off FontAwesome icon font. We see it as unnecessary baggage many themes include as a feature. In fact, most themes include it any more. Sometimes, this 70k+ file is added to page weight just to make a single icon – like the magnifying glass in the search field, or perhaps the hamburger icon for a mobile menu. What a waste!

We learned we could “de-enqueue” that icon-non-feature in the WordPress functions.php file. But this always proved tedious or broke things. We wanted a faster, safer way to test. We asked our local WordPress meetup if they knew of a plugin that would remove FontAwesome painlessly. No one had any clue.

We found the answer while testing for plugins to remove the annoying Google PageSpeed error message:

Eliminate render-blocking JavaScript and CSS in above-the-fold content.

We found “Asset Queue Manager” plugin. It doesn’t really help much with solving that Google PageSpeed error message. But what a gem, once we understood what it could really do. Not only can we de-enqueue FontAwesome, we can get rid of Google fonts and other heavy assets like unused sliders that have universal page loads.

Asset Queue Manager
101k compressed, 1,000 installs.

Description: A tool for experienced frontend performance engineers to take control over the scripts and styles enqueued on their site.

Hey! We are frontend performance engineers! But that name threw us. It didn’t say, “FontAwesome Remover plugin.”

The word “experienced” in the description is scary. But the damage done by novices can be quickly undone with some safety features the authors built-in.

Once the plugin is activated, browse to any page on the front of your site. An Assets link will appear on the top right of the WordPress admin bar. Click that to view and manage all assets globally.

That’s it “Assets” on the front side of the page. Not the dashboard side. Up there in the top right corner of your screen. Click it to open up the control panel for the plugin.

The plugin author explains he put it on the front because the assets only get enqueued on the frontend, so the plugin doesn’t really know anything on the backend. That’s why he decided to only show the link on the frontend. But many people don’t understand this link location. It’s not in the admin dashboard. It dequeues assets globabally – not per page.

What if I dequeued jQuery (or something I shouldn’t have) and now my site is broken. Go to the list of plugins in your admin panel. Find the Asset Queue Manager and click the “Restore Dequeued Assets” link. Nice and easy.

What a beautiful misunderstood plugin with a lot of hidden speed potential.

Here’s another application example, we recently used Asset Queue Manager plugin to de-enqueue the lazy-load-images function of Speed Booster Pack plugin. That was a javascript file called sbp-lazy-load.min.js. It was being loaded globally and adding page weight. We wanted to test the nice other features of Speed Booster Pack plugin – but not the lazy load because it caused site drag. That function was loaded even if it wasn’t selected in the plugin control panel. Weird! Our preference was using Rocket Lazy Load which has no site drag at all – a weightless plugin. Piece of cake with Asset Queue Manager!

Oh, and it’s weightless and free. Perfect.

How WordPress Emojis affect page speed.

Using the Disable Emojis plugin removes the emoji functionality added in WordPress 4.2. WordPress does not need emoji. Probably, the worst decision ever made by WordPress Core is enabling emojis by default, and providing no way to disable them. WordPress core developers should have a disable setting instead of having to install another removal plugin. Emoji functions add 5.6k to 14.7k page weight and 2 or 3 HTTP requests to a site.


Emoji are the square-grid ideograms, emoticons, or smileys used in Japanese electronic messages and Web pages, the use of which has spread outside Japan. Originally meaning pictograph, the word emoji literally means “picture” + “character.”

Beyond the standard emoticon-type “smileys,” there are hundreds of emoji, ranging from plants and animals to people, objects, vehicles, food, the Sun and Moon, and more.

PagePipe thinks emojis are a waste of bandwidth.
As of July 2016, Disable Emojis plugin has over 30,000 active installs.
As of June 2017, Disable Emojis plugin has over 50,000 active installs.
As of April 2018, Disable Emojis plugin has over 60,000 active installs.

Emojis may be recognizable by the majority of people, but that doesn’t mean that they’re universally accepted as a professional form of communication.

The usage of emojis may be too distracting to place within the body of your content.

You also have to be careful about placing them in titles or metadata. Google will only display emojis when they deem them to be relevant.

If emojis are obscure or show up differently depending on browsers or devices, your intended message may be confused or misinterpreted. -Author: Suzanne Scacca

Note about why Emojis happened:

“You know emojis in itself are just great, but they should never have been implemented into CORE. Why? At least 98% of active WP sites simply do not use them, still it occupies space and some milliseconds will be wasted in vain. That is a trade-off for nothing for the majority. That is why emojis should have been left as a plugin.” Author: Sam Heavyside

FYI, The emoji implementation was also a way to quietly patch a massive security vulnerability.

About Video Published on May 8, 2015

Andrew Nacin walks step by step through how a critical security vulnerability was discovered in WordPress core code and then patched using emoji as a trojan horse in WordPress 4.2.

Speed optimization for mobile WordPress websites is our specialty.

Your plugin choices affect website speed. But how much plugins affect load time varies from a thousandth of a second – to seconds. A page load time of under 2 seconds is our goal. Half our performance budget is for a theme and plugins. It also includes cloud-based, widgets like Google Analytics, Google Fonts, and Facebook. The other one-second is for branding the site with images.

It’s a common myth that installing too many plugins slows down your site. It isn’t the quantity of plugins that matter – it’s the quality.

The WordPress Plugin Directory now has over 55,000 plugins to choose from. In error, many site owners think the most popular plugins are the wisest choice. This isn’t always true. In fact, from our testing the most-liked plugins are often the slowest loading plugins.

The number of active installs indicates “herd” popularity. The plugin download page tell us what this number is. Or you can click the View Details link on your WordPress dashboard page.

We have many choices of free WordPress plugins that add unique and sometimes esoteric functions. Our rule of thumb is selecting the plugin with the smallest-download package size. The compressed file size is in “k” (kilobytes) or in some cases, “M” (megabytes).

It’s best practice to add functionality into your theme using several small plugins. One fat Swiss-army knife plugin can cause what we call “site drag” – adding delays to your site. Some plugins add drag globally to your entire site even when they’re just used on one page.

For example, Contact Form 7 plugin has over a million installs. Site owners don’t realize this plugin adds three HTTP requests. And 28k page weight to every page on your site – yes, every single page. Even if the shortcode is only used on your contact page – or even not used at all. That may sound small – but in our book, where milliseconds add up to seconds, it isn’t.

For an unknown reason, WordPress doesn’t give compressed plugin size information. You don’t see this number until you actually download from your browser. A proper link would tell the size of a download. That’s good “web etiquette.” WordPress doesn’t think it’s important information (yet). Speed information isn’t high on their agenda. But it is on ours. Any site owner concerned about mobile user experience should pay attention.

When optimizing in a staging area, most online speed tools can’t access these test spaces. So we’ve build prototype pages offsite with the exact same plugins and theme. This helps us establish speed opportunities and pitfalls.

One site under test has 33 active plugins. A few of these plugins improve load time and site optimization. Others add functionality to a responsive, fast-loading theme. Others are for better security. In this case, the theme is “Accelerate.” It’s available at the free WordPress Theme Directory. Most of the default WordPress themes like Twenty-sixteen and Twenty-seventeen are fast loading. Others need speed testing.

Page load time with 33 plugins:
Pingdom to NY: 750 milliseconds. 1 second.

Tested on a cheap, shared, Linux server.

Learn More Plugin Speed Tricks

How the ShortPixel plugin eliminates needless web junk.

PagePipe is anti-waste and pro-thriftiness about more than just web speed. We don’t like the misuse of any web resources. Conservation and recycling create a better web ecosystem.

Find more time and space from positive optimization side-effects:

  • Don’t waste bandwidth.
  • Don’t waste server space.
  • Don’t waste the user’s time waiting.
  • Don’t waste your own time trying to optimize individual files.

“Portable Document Format” PDF is a powerful technology that can produce large, unwieldy files. Bloated PDFs are a big source of wasted resources. PagePipe publishes PDFs at a 150-dpi print resolution. We start with print quality and then optimize for web publication, too.

PDFs are usually created with a desktop, page-layout program at one of three different qualities:

  • 72dpi screen resolution with embedded fonts for screen reading.
  • 150dpi print resolution for laser printer output on paper.
  • 300dpi for press resolution on glossy, magazine-like printing.

PDF quality settings affect web user experience. Those UX  factors include:

  • Download time.
  • Offline printing time.
  • On-screen visual quality.
  • Readability.

Our PDFs are 11 x 7 inches horizontal (landscape format) for screen reading and for printing on letter-size paper. That is 1099 x 699 pixels. A computer viewing screen can be much larger than that. A PDF reader utility may use a best fit to fill the entire screen.

For example, a common 19″ screen size is 1024 x 768 pixels. That makes for a pretty good display of our PDFs. But what if the monitor is larger or set for an even higher-resolution view. Then embedded raster-based images look ugly. Type still holds up well because it’s vectored and stretchy. But our PDF content is full of visuals.

Screen resolutions are just too grainy for PagePipe’s design-sensitive audience. We’ve user tested this and they complain about image quality when using 72-dpi, screen-resolution PDFs.

Why? If users read on a large screen, it’s perhaps enlarged by 200 percent or more. This is when image graininess and pixelization starts showing up. Publishing a print-resolution PDF online makes for a more readable, quality format. But it’s still page-weight overkill. There’s that carelessness, again. Things can be better.

Press-quality PDFs are out of the question for us because they’re so heavy. When websites download huge, press-quality PDFs, it’s complete laziness and overkill. A waste! Big downloads happen when print design department’s hands off bloat to their web people. They either don’t know how to optimize or it’s just too much of a hassle. What happens is the user pays the price waiting for long downloads. We call that bad web etiquette. This impoliteness is often overlooked by site builders and owners. They suppose no one will notice – a bad assumption.

Compressed PDFs are a wise communication strategy that is called a post-decisional reassurance. It helps end any possibility of user remorse for pressing a download button. The choice to download is a good one when we get reinforcement of how fast the download is working. It makes us feel like someone cared. To not compress, indicates site-owner apathy about basic user’s needs.

User eXperience (UX) means being polite. Many web developers are inconsiderate of end user’s when they serve uncompressed PDF files. We’re a big advocate that users are grateful for the small polite details of faster downloads. Things feel right. That’s a UX goal. It’s good hospitality.

Was it our brilliance that lead us to find a better optimization process for our case studies? No. In truth, a wonderful image optimization service in Romania pointed out the possibilities. They are ShortPixel, the creators of the ShortPixel Plugin for WordPress. In the web world, Romania isn’t that far away.

ShortPixel pointed out they could optimize more than just our JPEGs or PNG images. They also would improve PDF files. This had never occurred to us. We then realized we were doing things backwards by uploading our PDFs via FTP client.

With the ShortPixel plugin installed, the WordPress Media Library would automatically optimize our PDFs. Faster PDF downloads without stress or hassle was a relief.

ShortPixel compression was a much better compromise for balance between image quality and speed. We were more than satisfied with the results. We were even happy! Unusual for us.

Our PDFs now politely downloaded 3 times faster without visual quality loss for users. Fantastic! It wasn’t as aggressive as screen-quality compression –nor was it as heavy as print-quality. ShortPixel hit the sweet spot for our PDF-publishing needs.

You can now bulk process all your existing PDFs in the WordPress media library. This feature is important when retrofitting an old website for site optimization. Rebuilding an old website is much more painful than building a new fresh one. ShortPixel reduces the pain and frustration during site retrofits.

ShortPixel not only told us the savings for each PDF but also a summary of the total savings from compression for the entire website. It’s a warm fuzzy that makes us feel good about clearing out so much deadwood from our page loads and server space.

Some designers might consider saving server space insignificant. Please remember that for us – with just 10 PDF files – we saved as much hosting space as WordPress occupies. That puts the previous waste into perspective.

We don’t want to store backups on our server. ShortPixel permits deselecting backup if desired. We feel PDF backups are wasteful since we keep copies on our computer and, also, have our site backed up on DropBox. We don’t want junk floating around. If you have backups selected, you can revert to saved originals.

Install the ShortPixel plugin to discover your unrealized potential for website savings.

NOTE: Here’s an online PDF compression tool: For one-at-a-time, manual compression of PDFs, visit >

Where is the missing WP Super Simple Speed plugin?

Where is the missing WP Super Simple Speed plugin?

It’s still available to download on GitHub.

The plugin author removed the plugin  because he was probably fed up with trying to help people with conflict problems from minification – actually concatenation of files. The plugin wasn’t removed by WordPress. The conflicts were mainly with fat, heavy plugins you shouldn’t use anyway – like Gravity Forms plugin.

If a plugin “breaks” anything. Simply don’t use it.

WP Super Simple Speed is lightweight (less than 20kb in size), and has no clutter or unnecessary code or settings. Simple performance optimization without any hassle.

Don’t be afraid of the two-year staleness on WP Super Simple Speed plugin. It works fine with newer PHP 7.1.

There is some redundancy with Autoptimize plugin and Far-Futures plugin features. But there’s no conflict and it finishes off a few hard to remove speed bumps.

WP Super Simple Speed writes new command code into your .htaccess file on your server. It does not overwrite any existing code.

Features include:

  • Automatic hotlink protection to prevent bandwidth stealing/leeching.
  • GZIP compression (speeds up page load time and saves bandwith).
  • Loads jquery from google CDN (decreases latency | increases parallelism | better caching).
  • Includes Vary: Accept-Encoding Header (increase performance and score on various performance tools).
  • Disables auto-save on posts (lowers overhead on the server that can impact performance).
  • Automatically sets UTF-8 encoding for files being served as text/html or text/plain.
  • Enables keepalive (allowing persistent connections) which saves on bandwidth.
  • Removes unnecessary clutter from wp head (rsd, version generator, and much more).
  • Dequeues extra fontAwesome stylesheets loaded to your theme by other plugins.
  • Removes query strings from all static resources.

The usefulness of this plugin varies with each site. There are alternative discrete plugins to achieve the same features. This plugin is just “handy” to cut down the plugin count.

The discrete plugins are:

The fastest alternatives to heavy JPEG images for page speed.

Focus on reducing image file sizes for ultrafast mobile page speed. We’ve written an ebook about JPEG image optimization. Seventy percent of images used on websites are JPEGs. Images are half the lump of web page weight. But that doesn’t mean they are half of page speed*.

*We guesstimate images slow page loads by 30 percent – not half.

Our “Faster Loading Images for Mobile UX” eBook is 1,629 words.
Download the PDF for free.

Image weight is important but not the high priority it once was. Why? On modern browsers, many images load in parallel saving time. And lazy-load plugins postpone image from presenting until needed. Loading occurs when the user scrolls and the image enters the screen. These help with perceived load time. Those are improvements for good user experience (UX).

Third-party APIs or widget scripts are much worse for slowing down pages than images.

WordPress compresses JPEG images uploaded to your media library. It compresses to the same degree as a Photoshop save-for-web quality setting of 50. Because of this automation, proper sizing of dimensions is now more important than fretting about compression. Read more about JPEG compression in our free PDF download (above).

You’re thinking, “What? Are you telling me I don’t need any image optimization plugin?” You’ve got the picture. Today, WordPress does a good job optimizing images for you. In most cases, anyway. We have more to say about a few exceptions. So read on.

Mobile users are bandwidth sensitive. They sometimes are browsing on expensive, remote, mobile roaming connections. Ill-prepared images consume money for mobile users. Dishing up heavy images on mobile requires polite consideration (aka hospitality).

There are many tricks to optimize images. We always prefer hand-optimizing using an offline image processor like Photoshop or Gimp. Simply use “save for web” features. Automated optimization can’t judge how far to push image quality settings. Only a human can do that. Failsafe plugins like Imsanity ensure JPEG images never exceed certain limits. We set our largest images to match our page layout column width. That’s specified in pixels. And, we set compression in Imsanity to a quality of 70 –lower than the WordPress default of 82.

READ our article about online image optimization tools.

Automating image optimization with plugins doesn’t change the image dimensions. The plugins only change compression. WP Smush plugin is the worst because compression gain is only 10 percent. That’s insignificant for speed improvement. WP Smush – the free-version – only offers lossless image compression. To get 10X (visually-lossless) lossy compression requires the *premium* plugin version. There are many free plugins providing better lossy compression – like Imsanity. So don’t let any plugin author take you to the cleaners.

Are there better alternatives to using heavy JPEG images on a mobile website?

There are two great alternatives. The first is using GIF or PNG format images. We’ll demonstrate with pictures. This is a PNG image used as a 800px x 220px header on a blog post:

This sample header image has few colors. It uses an PNG-8 format with 8-bit color depth selected (not PNG-256). That is the secret and why it only weighs a tiny 12k. It allows resizing to large-screen full width without much distortion. The stretched image doesn’t pixelate like a JPEG would – even when increased to a width of 1350 pixels. At “medium-size,” the image resizes to both desktop-screens and mobile screens. It still looks good on both. It’s a good-enough compromise of size. Don’t build headers as big as recommended.

How heavy would this image be if it were a JPEG 2000px wide header image? It wouldn’t be bad. Because of the limited number of colors, it’d be around 32k. Still, almost 3 times heavier.

The Visually-lossless Daisy Test

Let’s say we want a beautiful JPEG stock photo of vintage-style daisies in our page header. Assume the dimensions are recommended as 2000 x 1200 pixels. First we can knock off about 100k of it’s stock 500k weight. That’s just by putting it through an offline save-for-web feature. It then becomes about 400k in file size. Below (before) is what it looks like uploaded with no optimization plugin. It’s 390k files size and 1920 x 1200px (scaled to 714px x 446px). Scaling is bad by the way. It cause the browser to slow down and calculate on-the-fly what the new image size should be. Math-time wastes time.


And, below, after automatic optimization using the installed Imsanity plugin. The difference: it’s 70k and cropped to our column dimension and our 70-quality setting.


Can you see a difference? Do you have super powers or gifts of extra sensory perception? This comparison demonstrates visually-lossless compression. It’s technical name is lossy compression. We admit it isn’t magnificent here. That’s because we set our Imsanity quality setting to 70. Instead of the default 82 that WordPress uses. We push images harder.

Why do we compromise image quality for speed? Because it’s proven site visitors don’t care about image quality as much as you, the site owner. Don’t over-engineer your site. Image quality judgment is way down the list of user irritants or values. Speed frustration is number one – top of the list. We admit – it needs better quality if it’s a portfolio site for an artist or photographer.

Site owners are afraid of lossy compression. Why? Because it sounds like the process shreds the image through a meat grinder. Loss is not good right? Wrong – in this case. You did recognize the second image was of vintage-style daisies, too? What? You thought they were roses?

Using lightweight PNG images is one of our favorite speed tricks.

You can make PNG large-dimension images with small-weight. For example, this PNG image (below) is 3.3k file size and 1000px x 600px dimensions. It’s perfect for a Twenty-seventeen default theme header. Or a featured image – even though their spec says to produce a 2000 x 1200px dimension image.

Uploading featured PNG images to Twenty-seventeen pages, we found a surprise. The PNG weight automatically increased by 3 to 4 times the original. But if we used GIF image replacements, we had “no weight change” and a smaller image file resulted. Freakish image voodoo.

ruby hex color #c43a2c

For example: As a featured image in WordPress, this 2000 x 1086px simple, red signage changed:

  •  A 9k PNG converted to 32k (by WordPress) as a featured PNG image. Fail!
  • As a 25k JPEG, WordPress automatically converted it to 58k of JPEG bloat.
  • Making the red signage a 15k GIF. Then WordPress won’t change it. It stays 15k. Oddity.

We said using PNG and GIF images is our favorite speed trick. Our second favorite trick and the lightest, fastest solution is – using no images at all.

Fifteen percent of websites don’t use any images. None. Zero.

Yes. Some pages are completely text and CSS. But the average website is heavy on JPEG image usage. It’s the big beast to tame. It’s where the most unrealized potential is for UX improvement. But having no images can be even better if you can get away with it. What could be faster?

Can you avoid image-bloat problems completely by using image optimization? No. Sometimes it’s best not to use an image at all under certain conditions. Think about it. Does the image contribute to understanding the website’s written content? Does it attract, distract, or repel? Users are the judge. Not us. It requires testing.

How much testing? Simple. Ask just five people who aren’t related to you and aren’t your employees. That’s it. You don’t have to spend a lot of money or time. Irrelevant images are a waste of space. Reducing page-load time is still a big criteria for maximizing readership.

One big question: Are images attractive or motivating – and not alienating or repulsive? These questions address a primary component of web credibility. Credibility is the feeling web designers want to achieve. What is right isn’t always what feels good. If you put an ugly image into a compressor, it’ll still be ugly – but faster loading – when it comes out. There is even a possibility it may be uglier from distortions.

Two best ways to improve images have nothing to do with optimization: 1. Images with story appeal. 2. Images that demonstrate.

MailChimp email service permits fast page loads.

On the Internet, there exist widgets – or interface components. They allow connecting your site to specialty services. These are  sometimes called third-party integrations (such as Facebook, Twitter, YouTube videos, Google Fonts, Google Analytics, CDNs, etc.).

We call them annoying – because they usually slow down page load time. Under ideal conditions, they can be fast. But because you call to a remote server, that server’s engagement is unpredictable. There can be long, random delays. Then we’re at their mercy. We’ve seen 1- to 2-second delays for third-party add-ons. And in bad cases, more than 8 seconds. Ugh! These delays are essentially “waiting in line” for service. It’s peak traffic dependent.

In an ideal situation, what time delay might we expect for a third-party email service?

We’re all about speed. So we need to set a proper example. Yet, we also desire “free.” And MailChimp’s free email service sounds enticing. Is it fast enough for us? Yes. 36 millisecond load time with the right plugin. There are ways to do this without a plugin – but we found it particularly easy.

With MailChimp, you can send 12,000 emails a month to a list of up to 2,000 subscribers – free!

MailChimp provides an API key for access control using free, signup form plugins.

After setting up a free MailChimp account, adding a form to our site was a piece of cake. We used WP Subscribe, a lightweight opt-in form plugin for WordPress. The widget supports several email providers – currently MailChimp, AWeber and Feedburner. You can then customize the basic signup text used in the opt-in form. Just click the “Labels” option right inside the widget. To customize colors, you need to dig into CSS – and add code to the customizer or a child theme. We did that. An explanation of changing default colors is on the WP Subscribe plugin forum. Here’s a link to a CSS example.

WP Subscribe default form colors and text.

WP Subscribe Features

  • Customizable text.
  • Add to multiple widget areas.
  • Supports MailChimp, AWeber and Feedburner.
  • Mobile responsive.
  • Free!

Here are two typical experiences from our experiments:

WP Subscribe plugin
MailChimp (without CSS minification)
40,000+ installs, 61k download
Using WP Subscribe plugin with MailChimp adds:
2 requests, 2.6k weight, and 88 milliseconds load time.
No improvement with minification (concatenation). This happens because of the way WP Subscribe plugin is coded.

Yikes Easy Forms for MailChimp plugin
50,000+ installs, 3.7M download
3 HTTP requests, 4.5k page weight,  93 milliseconds load time.
This plugin is coded so minification is a big benefit. Concatenating and minifying with Autoptimize plugin reduced load time to 36 milliseconds for all theme and plugin CSS files. Bonus!

A demonstration of potential speed differences.

iContact (a MailChimp competitor)
5 HTTP requests, 5.5k weight, and 783 milliseconds load time. MailChimp is 10 times faster than iContact.
There is no benefit from concatenation or minification with iContact. The form is created by embedding iContact supplied CSS in a theme text widget.

A note: Each request can load in parallel speeding up load times. It depends upon your server configuration and user’s browser.

16 Alternatives to MailChimp:

Get Response
1,000 list, $15/mo.
10,000+ installs, 1M download.

Send 100K emails/month for free.
8,000+ installs, 35k download.

Active Campaign
1,000 contacts, unlimited sending, $17/mo., 14-day trial.
10,000+ installs, 396k download.

30-day free trial, $19/mo. for up to 500 subscribers and unlimited emails.
10,000+ installs, 35k download.

10,000 contacts, $89/mo., free trial account
1,000+ installs, 73k download

500 subscribers, $14/mo
2,000+ installs, 166k download

Constant Contact
Free trial for your first 60 days. 500 list size, $20/mo
100,000+ installs, 2.2M download

SendInBlue 9,000 free emails per month, unlimited contacts. There are daily sending limits and the SendInBlue logo is visible on all emails.
10,000+ installs, 2.7M download

MadMimi – free plan for 100 subscribers.
100+ installs, 741k

Target Hero – This free plan includes 1,000 contacts and unlimited emails. Target Hero requires SMS verification to activate an account. If you don’t text, you won’t be able to start an account.
100+ installs, 111k download

Send unlimited number of emails, no credit card needed.

1,000 subscribers, Unlimited emails / month, Free
8,000+ installs, 1.6M download
Send up to 2,000 emails for free with our 30-day trial—no credit card required.
send 500 Emails / month, free
forever free Mailigen plan starting with 3000 subscribers.
80+ installs, 435k download

free, 2000 emails to 500 subscribers per month.
800+ installs, 184k download

Upload up to 2,000 subscribers and send up to 14,000 emails per month for free.
2,000+ installs, 89.2k download

Render-blocking JS is the most annoying and unresolvable error message

We don’t recommend using Google’s PageSpeed Insight tools for doing mobile website benchmarking – or even for desktop. We avoid this tool. We refer you to the following articles as to why:

Why the .@Google Mobile Test Tool Is Absolute Crap >
Why you Shouldn’t Care About Google PageSpeed Insights >
Why Trying to Get 95+ on Google PageSpeed Insights for Your WordPress Site Will Drive You Mad! >
The Truth about Google Pagespeed Insights >

Better tools for evaluation are and
Note: WebPagetest is an open-source project owned by Google.

Deferring Javascript breaks WordPress.

Google’s Bogus Error Message for Mobile Anxiety

Should Fix:
Eliminate render-blocking JavaScript and CSS in above-the-fold content.

ender-blocking JS is the most annoying and unresolvable error message Google’s mobile test delivers. It pushes some perfectionists to the brink of frothing madness. We’ve decided it must be ignored completely if you use WordPress. Give yourself a break. It’s not you that’s bad. It’s Google.

“Everybody is talking about Render Blocking. Sounds like something Google planted so we’d spend more time learning code – instead of thinking of how to run a successful blog.”

When you’re using WordPress for website production, it’s an impossible situation. The most basic components of WordPress trigger the “render-blocking JS” error message. No other method of speed testing uses render-blocking JS as a parameter. It’s not worth reporting.

Many supposed solutions are created by plugin authors attempting to resolve this frustrating error message. We tested all of the 8 plugins below. They do not work as claimed. They are not “plug-and-play.” They don’t eliminate the “render-blocking” error message on PageSpeed Insights. Nor do they improve page load time in the least. Three plugins broke the page being tested. Those three are marked with a red asterisk.

These are not simple or easy plugins. In most cases, they are dangerous in the wrong, inexperienced hands. You can easily damage your site. We recommend you not use them. They are esoteric fluff. Their claims are presented below but don’t believe them without testing for confirmation on your site. We had no success. This is a warning.

above the fold optimization 103.4k
Description: Enables to pass the “Eliminate render-blocking JavaScript and CSS in above-the-fold content”-rule from Google PageSpeed Insights

performance optimization order styles and javascript 5k
Description: Ordering StyleSheet and JavaScript (external and inline) for performance optimization. The plugin will also collect different inline scripts to one place.

wp deferred javascripts 14k
Description: Defer the loading of all JavaScripts added by the way of wp_enqueue_script(), using LABJS. The result is a significant optimization of loading time. It is compatible with all WordPress JavaScript functions (wp_localize_script(), js in header, in footer…) and works with all well coded plugins. If a plugin or a theme is not properly enqueuing scripts, your site may not work.

external files optimizer* 4.7k
Description: Automatically combine and compress css/js files generate with wp_head() and wp_footer()

head cleaner* 262k
Description: Cleaning tags from your WordPress header and footer. To speed up the loading of JavaScript and CSS. PHP5 required.

headjs loader* 15k
Description: Load your Javascript files via Head JS. Caution: this plugin can cause major issues with the javascript on your site if not implemented properly. Please be sure to test on a development server first.

wp asset clean up 34k
Description: Make your website load FASTER by preventing specific scripts (.JS) & styles (.CSS) from loading on pages/posts and home page. WP Asset Clean Up scans your page and detects all the assets that are loaded. When editing a page/post select the ones you DO NOT wish to load.

wp super simple speed 7k
Description: Super Simple Speed is a stable and powerful plugin that dramatically increases your WordPress page load speed and gives you a better performance score on the major speed testing services. Unlike most other similar plugins, WP Super Simple Speed is lightweight (less than 20kb in size), and has no clutter or unnecessary code or configs. Simple performance optimization without any hassle. We use this plugin on PagePipe.

[bscolumns class=”one_third”]

If you’re new here, start with our best primer speed articles.


[bscolumns class=”one_third”]

If you’re ready to give your WordPress site wings, here are powerful tools to speed up your site.


[bscolumns class=”one_third_last”]

Learn how the most popular plugins and ideas waste your time – and hurt web speed. Includes important tips for mobile speed without coding.


Popular plugins usually aren’t the best for page speed.

From our experience with WordPress search, we get better results without the search enhancement plugin Relevanssi. It shuts down or bypasses normal search functions. There is no failsafe or fallback when Relevanssi malfunctions.

We tested the Relevanssi plugin free version some time ago. Many reviewers were sold on it. But real-world testing by us didn’t reveal much value from it. It was theoretically better. That doesn’t mean you shouldn’t use it if you want but we see no reason to recommend it to clients.

Relevanssi is available as free and paid versions. It doesn’t appear to slow down a website with any HTTP requests. P3 Profiler plugin (authored by GoDaddy) reports it adds only 19 milliseconds to load time. Big deal. It’s just another benign plugin taking up space.

We’ve never had a circumstance where WordPress search wasn’t sufficient – and even sometimes impressive. We use it all of the time to relocate obscure content on PagePipe. We suspect WordPress “search” has improved over time.

Summary: The WordPress search is much maligned but it’s probably not justified and the importance of a search function is often overstated.

Quote from that posts comments:

“As the developer of Relevanssi, I have to agree with your premise: for most users, the WP default search is good enough, now that it can sort results by relevancy and not just date (that search was awful, and something that had to be replaced in most cases).

I wrote Relevanssi, because I own two sites that are basically information warehouses. When you have 4000 book reviews, you need a good full-text search. But not every site is like that.” September 30, 2014, 2:33 am – Mikko Saari

To Engineer is Human by Henry Petroski is a book about engineering failures – mainly of buildings and bridge structures and airplanes during the 1980s and before. The main takeaway from the book is still applicable – and maybe even more so today: When technology or ideas are changing rapidly, there is never the opportunity to build a history or library of experience. This increases errors. Experience is what prevents accidents and disasters.

New upgraded versions of WordPress come out multiple times each year. And new plugins are being introduced at a breakneck pace. In 2013, 15,000+ plugins were in the WordPress plugin repository. In 2014, there were 29,000+ plugins in the repository. By 2015, the number was 35,000+. There are now (Sep. 2016) over 46,000+ free plugins in the repository. It’s difficult to stay on top of that rapid rate of change. It’s staggering – an annual growth rate of over 50 percent.

To make a fast decision, it’s plainly easier to select from the Top100 most popular plugins – and consider that good enough. Even this chart with a recent copyright of 2016 is outdated. It wrongly states there are over 35,000 plugins in the repository (it’s over 46,000). And this doesn’t count any of the plugins available on GitHub where authors refused to go through the WordPress red-tape of acceptance.

You can choose any plugin from the TOP100 and from our experience it will be the slowest and most bloated plugin in its class. For example: #1 Akismet: 52M installs, #2 Contact Form 7: 42M installs, #3 Yoast SEO: 33M installs, #5 Jetpack: 28M installs. These are all heavy plugins and either directly or indirectly affect load time. We see these plugins installed on most slow sites.

Jetpack plugin alone weighs almost as much as WordPress in it’s entirety! Jetpack is a 5.4M compressed download. WordPress is 8.2M.

Plugin popularity is rarely an indicator of good value. People assume they must be good. It makes for a faster decision. At one time, they were either the-only-game-in-town or repaired or compensated for WordPress deficiencies that later became solved with new WordPress versions. So even though the need for “repair” was gone or obsolete, the herd kept installing out of habit and myth. It became de-facto standard best practice.

As an example, WP Smush Image Optimization plugin (500,000+ installs) is an extremely popular plugin. But best case, it only reduces JPEG image file sizes by 10%. That’s insignificant for speed improvement. That’s because it uses lossless optimization. To get the real improvement from lossy compression (up to 70% reduction), you have to buy the premium/paid version. But WP Smush still doesn’t address the biggest issue. That is actual image dimensions. It will attempt to “smush” a monstrously-sized camera image – which of course still remains the same huge dimensions and a slow load.

The most preposterous marketing claim made by WP Smush plugin authors is that it will improve your SEO. Ridiculous!

That is why we recommend using Imsanity free plugin instead. It resizes and does lossy compression to whatever values we set. In our case, we set Imsanity to crop uploaded images to a maximum blog column width (750 pixels) and compress to a quality of 70. It doesn’t compress PNG images by default which we don’t care about in our case.

There are many free, good, lossy image optimization plugins but they are less popular with less than 100k installs. People just don’t test. They assume popular must be the best. To the contrary, it usually means they contribute to site drag and slow page speed.

Minification is “not” an important optimization tactic for mobile speed.

Minification is not an important optimization tactic for mobile speed.

There are 31 minification plugins in the WordPress directory. They vary from 3.8k to 6.6M Gzip-compressed archive size. The plugins may be fresh and updated – or as stale as 8 years. What good are minification plugins? Why are they common recommendations for speed? Do they make a difference? Why do they often break your website?

Claims are: Minification plugins lead to faster page render times. These plugins reduce bandwidth consumption. Unbeknown to site owners, minification plugins lump several functions together. One function is minification – another is concatenation.

NOTE: If code is offsite, like Facebook scripts, it won’t concatenate. It’s out of the control (reach) of the plugin. That code resides on a different protected server. No luck. Offsite third-party scripts – like WebFonts or GoogleAds – kill speed.

Minification by itself is harmless. It’s removes white space and comments from HTML, CSS and JS code. There was a time when minification (white space removal) was significant. This was before the days of standard Gzip compression on servers. All modern browsers have Gzip activated for decoding or decompressing. Before Gzip, white space made a difference of 10 percent to 30 percent reduction in file size. In the  days of slow dialup modems, programmers hand removed white space and comments. That was worthwhile. But not any more.

Read PagePipe: Learn more about Gzip

When compressing a file with Gzip, file reduction is as much as 70 percent. Gzip codifies redundancy caused by code duplication. Additional white space removal, after Gzip compression changes, file size is less than 1 percent difference. Pretty minuscule benefit. So why even do it? Well, it doesn’t break anything.

We’ve done tests. After enabling Gzip, minification (white space removal) only reduces file sizes by an extra one percent. Small speed reward.

Doesn’t minification increase the chances of site breakage?

No. Minification never breaks your site. But concatenation is a different matter. Minification plugins are a misnomer. The big speed gain with minification plugins is concatenating files. Concatenation is bundling files into groups such as the HTML – and makes them all one file. Then doing the same for all CSS files – making them one file. And also the same with all Javascript – into one file. You then retrieve each bundle in a single request. In theory, much faster. You’ve saved HTTP overhead.

Minification is OK. But concatenation can really mess things up. Most minification plugins minify – and concatenate. Minification is safe white-space removal. Concatenation is the more risky combining of scripts. Beware.

Example: Before adding Autoptimize plugin.

Below are test results with no concatenation. We see that there are 23 HTTP requests. Each “call” is in the waterfall of file requests. Page weight is lightweight: 132k. Speed is fast: 363 milliseconds. This also shows how the web assets load in parallel improving speed.

After adding Autoptimize plugin.

After adding concatenation, the number of requests is 11. Much less. Reduction in page weight is 116k (a 16k reduction) and speed is 137 milliseconds faster.

Is improving page speed from 363 milliseconds to 226 milliseconds significant? Does it matter?

As speed freaks, we’d like to think so. But most desktop site visitors can’t perceive those kinds of speed difference. They see 1-second page changes as almost instantaneous. No waiting. But a 100 millisecond change is transparent.

For mobile speed, 100 milliseconds is a big gain. But not if it breaks your site.

Offsite link: Performance implications of bundling and minification on web browsing. Microsoft.
Offsite Link: Minification – Explained in Plain English. WP Rocket. (We highly recommend this article). 

Why not take advantage of the improvement? We’ll keep Autoptimize plugin installed. But if there is any sign of problems, forget it. It’s better to have a stable and usable site than a fast flaky one. Quality is important for credibility and usability.

Minification plugins are nice when they work. But more often than not, concatenation breaks your website in some odd way. Reducing the number of HTTP requests is nice. But parallel delivery makes a bigger difference in speed than minification and concatenation. You don’t control that. Browsers have changed and allow more parallel loading than ever before. The pipe is bigger.

Concatenation is a process that often doesn’t work “out of the box.” You need trial and error by switching on and off options. You may not eliminate all render-blocking resources without breaking the site. In fact, we gamble you’ll break your site before you’re done.

So what breaks most often:

  • Responsive navigation elements disappear.
  • Email or ecommerce signups malfunction.
  • Page resets (refreshes or loads) produce HTML unstylized pages.
  • Delayed pages rebuild like cold molasses before your eyes.
  • Disappearing page elements such as menus.

These are all signs of concatenation messing things up. You may get the white screen of death. It’s happened to us. And we thought we were careful.

How much speed from minification plugins when combined with gzip compression?

Minification/concatenation combined with Gzip give some improved speed results. Gzip is a general, generic algorithm. It’s required protocol in our book. Minification is aware about content and does improvements general compression algorithms can’t. When it completely eliminates comments and whitespaces – that’s 100% data compression. There is no harm. Concatenation is always the real problem.

We have used this tool to minify CSS child themes using copy and paste.

Minification is removing whitespace from site files. Often, minification can reduce file size by 20 to 50 percent. That doesn’t translate into 20 to 50 percent speed improvement. Sorry. Just paste the CSS contents into the CSS input area. Tweak the compression settings and options, and process it. Then, replace the processed contents. If you only get 5 – 10 percent improvements, be more aggressive with the compression settings. 99 percent of the time, the only thing removed from minified JavaScript files are the comments and whitespace.

Our Recommendation: Test minification plugins. If they break your site, forget about it. We do minification – if it doesn’t affect the theme functions. But often we invent workarounds. Any sign of trouble and we may try a couple more favorite minify plugins and then quit. Not worth the grief.

If there wasn’t some “measurable goodness,” we wouldn’t minify. Often, it’s only a psychological benefit. There’s therapeutic value for those afflicted with Speed OCD.

Feel guiltless if you drop minification.

What are our favorite Minification plugins?

Zip archive 186k
Active installs: 300,000+
updated: 1 week ago
downloads: 1,734,437
retention: 17.3%

Better WordPress Minify

Active installs: 90,000+
Zip archive: 655k
updated: 2 years
downloads: 553,585
retention: 16.3%

Speed Booster Pack
Active installs: 40,000+
Zip archive: 82k
updated: 3 weeks
downloads: 324,934
retention: 12.3%

We found Speed Booster Pack’s minification features succeed where other minification plugins caused conflicts or white screens. It’s not for everyone but worth noting here.

We recently used Asset Queue Manager plugin to de-enqueue the lazy-load-images function of the Speed Booster Pack plugin. That was a javascript file called sbp-lazy-load.min.js. It was being loaded globally and adding page weight. We wanted the nice other features of Speed Booster Pack plugin. But not the lazy load because it caused site drag. That function was loaded even if it wasn’t selected in the plugin control panel. Weird! Our preference was using Rocket Lazy Load plugin which has no site drag at all – a weightless plugin. Piece of cake with Asset Queue Manager! Read more about Asset Queue Manager.

Free discrete plugins replace bloated security plugins.

While studying site security and speed, we tested the iThemes Security plugin. It’s claimed to prevent malware injection. We’re sure it works but the plugin is major overkill. We duplicate it’s core features with lightweight, fast-loading, standalone free plugins. Beneath the surface, this large, 3.1M plugin contains a lurking, greedy speed bite. Chomp!

ut iThemes Security plugin only adds a mere 36 milliseconds. Measured with GoDaddy’s P3 Plugin Performance Profiler (100,000 active installs). Using, there’s no detectable difference in load time. With this security plugin onboard, there’s not even an extra call (HTTP Request). The plugin appears pretty safe and benign for speed. And it’s popular! (800,000 active installs) What could go wrong?

iThemes Security, WordFence, and Sucuri Security are all popular security plugins. That’s an immediate red flag that they’re slow. Why? It’s crazy. But the speed results for popular plugins always turn out slow in tests. Same for themes. People just go for the heavy plugins loaded with the most features. Overkill. The herd starts following the path thinking active installs must mean goodness. Nope.

Sucuri Security – Auditing, Malware Scanner and Hardening

Remove and add substitute recommended discrete plugins.

Change your WordPress login password to anything that has a total of 16 characters, numbers, or symbols. Make it lower and upper case for a few characters.

“Avoiding both types of attacks is dependent on the complexity of your password. Ideally, your passwords would be at least 16 characters, and contain a combination of numbers, symbols, uppercase letters, lowercase letters, and spaces.”

Nine-character passwords take five days to break, 10-character words take four months, and 11-character passwords take 10 years. Make it up to 12 characters, and you’re looking at 200 years‘ worth of security – not bad for one little letter. Source

Hey! Backup your site.

For security with free plugins:

Please install: Limit Login Attempts Reloaded
Increase the login failures to 17. Yes 17 is good enough.

Please install: Email Address Encoder
No settings needed.

Please install: Change Table Prefix
Change the prefix to something other than the default “WP_” such as “AS_” or something random.

Remove Sucuri Security – Auditing, Malware Scanner and Hardening plugin
It uses too many server resource and slows down the server. It’s a complicated plugin. The above 3 discrete plugins will suffice for security and speed.

Nowadays, there’s a herd-panic or paranoia about WordPress security and getting hacked. It’s easy to get caught up in the frenzy – and go plugin crazy. All that’s required are a few simple things. First, change your login from the default “admin.” Duh? Use something a little more challenging for bots. Don’t use “password” as your password. These are obvious right? Right.

Then add a plugin to prevent brute-force attacks. The 5-year-old plugin solution is Limit Login Attempts (2 million active installs). But WP Limit Login Attempts (30,000 active installs) is fresh and up to date. (They’re OK. They work. But, we don’t use either of these two on PagePipe). instead we now use, Limit Login Attempts Reloaded (40,000 active installs). It works with PHP version 7.1.

Only 8 milliseconds for extra site security with four recommended plugins:

PagePipe uses the following simple security plugins. We predict load time in milliseconds using P3 Plugin Performance Profiler (by GoDaddy). NOTE: P3 plugin will slow down your site. Don’t leave it installed!

1Brute Force Login Protection (1ms)
Active Installs: 20,000+
package download size: 15.6k

Brute-force attacks are the simplest method to gain access to a site. The hacker tries usernames and passwords, over and over again, with a “bot” until they get in. This lightweight plugin prevents brute force login attacks using .htaccess. .htaccess is a configuration file on web servers running Apache Web Server software.

Time-limited number of login attempts block the hacker’s IP address.

2Change Table Prefix (1ms)
Active Installs: 1,000+
package download size: 10.3k

Protect your website from SQL injections. Replace your database WordPress default prefix (WP_). Use any other alternative prefix in a single click. An SQL injection is a computer attack. Hacker’s can embed malicious code in a poorly-designed applications. Then pass it along to the backend database. Anything can then happen on your site.

3Email Address Encoder (2ms)
Active Installs: 80,000+
package download size: 4.8k

A lightweight plugin to protect email addresses from email-harvesting robots. The plugin encodes addresses into decimal and hexadecimal entities. No configuration required.

4Block Bad Queries (BBQ) 4ms
Active Installs: 70,000+
package download size: 7.2k

A simple, super-fast plugin that protects your site against malicious URL requests. Hackers can redirect user requests from your site to an illegitimate site. No plugin configuration required.

What went wrong?

After installing iThemes Security plugin, we got a GoDaddy email notification. It said our hosting account exceeded its resource limits.

Email warning from GoDaddy hosting (shared Linux, magnetic drives).

The recommended solution by our benevolent host, of course, is buy more server goodies. But the better answer – they don’t tell you – is simpler and cheaper than that.

Once again, we observe that plugin file weight is indicative of resource consumption. If not page load time, then RAM or MySQL databases are gobbled up. This isn’t always the case. But a fat plugin is suspicious and requires testing. To find out how your site is using resources, click the C-Panel icon “CPU and Concurrent Connection Usage.”

After the “warning,” we checked Cpanel (CPU and Concurrent Connection Usage). It said RAM usage jumped from 89M normal to the 512M maximum available. We’d never encountered this problem before. The “spike” in the Cpanel Memory data occurred when we installed the iThemes plugin.

We completely uninstalled that nasty security plugin. Ram usage immediately began dropping down. An hour later the RAM usage was 221M. By 1.5hrs, it was 128M. We were finally drifting back into the green zone. Are we the only ones to ever see this weirdness? No. Read on.

In the production notes:

“Enhancement Jan 2016: Updated the File Change Detection feature to attempt a max memory limit of 256M rather than 128M as some users experience out of memory issues which could be fixed with the higher memory limit.”

So what? What’s the big deal?

When you exceed server limits, many hosts at least will start throttling your site. Or worst-case, take your site offline for hours to days. They claim they’re protecting other sites hosted on the server from your malfeasance. You’re dragging everyone else down with you.

Bandwidth throttling is the intentional slowing by your Internet service provider. This helps limit network congestion and server crashes. But it’s also often a lame excuse to justify poor performance. And sloppy cramming  of thousands of domains on a server. You can’t control this. But you can avoid memory-hog plugins – like iThemes Security.

Is iThemes Security the Lone-Ranger plugin that consumes RAM? Nope.

There are a bunch of plugins we know of (and many others we don’t). But they aren’t security plugins.

Here are some examples:

Checking broken links one by one is not physically possible, even for a small site. There are many free and paid tools that check for broken links. You can get the Broken Link Checker plugin (active installs 500,000) and check the health of your links with it.

But Broken Link Checker is a RAM hog. You’ll see two spikes on the graph below. The first is when we switched on Broken Link Checker and it started it’s automated crawling of the site. The second peak is UpDraft Plus (1 million active installs) doing an automatic site backup. We keep Link Checker deactivated and only run it once a month.

What if you’re running Link checker? And doing a backup? And have a hog security plugin running all together? You’re doomed. What can you do!?

Well, on the C-Panel dashboard is a icon that looks like this:

Click it. You’re taken to a dropdown menu. There you can select the version of PHP (Hypertext Preprocessor), a server-side scripting language. This is the code used to run WordPress.

Our PHP version was set to 5.3. We reduced WordPress memory usage by upgrading from PHP5.3 to PHP5.5. The newer versions compress better and run faster. And this speed improvement is free. Version 7 is the latest and greatest. And supposed to really be fast – but not all hosts provide it yet. How much improvement did we see?

Changing the PHP version reduced RAM usage by 20 to 30 percent. This keeps us safe. Now we idle around 70M. We’re staying far away from the 512M rail. But when we do daily backups, we push up to around 300k usage. We improved this with better backup plugin settings. We could do manual backups when we create new content. But instead we compromise and switch from daily to weekly backups to reduce the load. That works for us.


Want to complicate your life in the name of absolute security so you can pass an odd security test? Like Try one of the futile header modification plugins below. We’re not using them. We tested them and found them over the top in complications. We accept our a big fat “F.” Do we care?

content security policy
Content Security Policy prevents content injection attacks by specifying valid sources of content for a site.

content security policy Pro
This Content Security Policy plugin will help the setup the Content-Security-Policy HTTP response header and block the XSS vulnerabilities.

eazy http headers
Eazy HTTP Headers provides three check boxes for settings on the general settings page.
Two of the check boxes, activate two functions built into WordPress, send_frame_options_header() & send_nosniff_header(), while the other sets a header for X-XSS Protection.
This allows you to control your sites HTTP Headers for X-Frame-Options & X-Content-Type-Options using functions built into WordPress functions.

The Eazy HTTP Headers Settings section is on the general settings page.

http headers
HTTP Headers gives your control over the http headers returned by your blog or website.

http security
Set up header instructions included in the HTTP protocol for website security improvement.

This plug-in provides enabling of the following measures:

* HSTS (Strict-Transport-Security)
* CSP (Content-Security-Policy)
* Clickjacking mitigation (X-Frame-Options in main site)
* XSS protection (X-XSS-Protection)
* Disabling content sniffing (X-Content-Type-Options)
* Referrer policy
* Expect-CT
* Remove PHP version information from the HTTP header
* Remove WordPress version information from the header

security header optimization
Advanced HTTP security header optimization toolkit. Content-Security-Policy, Strict Transport Security (HSTS), Public-Key-Pins (HPKP), X-XSS-Protection and CORS.

The plugin provides Content Security Policy Management with support for Reporting API and legacy policy conversion based on browser sniffing.

The plugin supports most security headers, including Strict Transport Security (HSTS), Public-Key-Pins (HPKP), X-XSS-Protection and all Cross-Origin Resource Sharing (CORS) related headers (Access-Control-Allow-Origin).

security headers
SetTLS headers for HSTS.

TLS is growing in complexity. Server Name Indication (SNI) now means HTTPS sites may be on shared IP addresses, or otherwise restricted. For these servers it is handy to be able to set desired HTTP headers without access to the web servers configuration or using .htaccess file.

This plug-in exposes controls for:

* HSTS (Strict-Transport-Security)
* HPKP (Public-Key-Pins)
* Disabling content sniffing (X-Content-Type-Options)
* XSS protection (X-XSS-Protection)
* Clickjacking mitigation (X-Frame-Options in main site)
* Expect-CT

HSTS is used to ensure that future connections to a website always use TLS, and disallowing bypass of certificate warnings for the site.

HPKP is used if you don’t want to rely solely on the Certificate Authority trust model for certificate issuance.

Disabling content sniffing is mostly of interest for sites that allow users to upload files of specific types, but that browsers might be silly enough to interpret of some other type, thus allowing unexpected attacks.

XSS protection re-enables XSS protection for the site, if the user has disabled it previously, and sets the “block” option so that attacks are not silently ignored.

Clickjacking protection is usually only relevant when someone is logged in but users requested it, presumably they have rich content outside of WordPress authentication they wish to protect.

Expect-CT is used to ensure Certificate Transparency is configured correctly.

simple iframe buster
You can set the X-Frame-Options header to SAMEORIGIN. Also enqueues a javascript based iframe blocker.

Provides a method of adding X-Frame-Options to the http headers for sites hosted in an environment that does not grant access to
the webserver config, .htaccess or lack mod_headers type facility.

+ Sets X-Frame-Options to SAMEORIGIN
+ Enqueue iframe blocking javascript

wp content security policy
Block XSS vulnerabilities by adding a Content Security Policy header, plugin receives violations to easily maintain the security policy.

Content Security Policy (CSP) is a W3C guideline to prevent cross-site scripting (XSS) and related attacks. XSS allows other people to run scripts on your site, making it no longer your application running on your site, and opens your whole domain to attack due to “Same-Origin Policy” – XSS anywhere on your domain is XSS everywhere on your domain.

CSP tells your browser to push least-privilege environment on your application, allowing the client to only use resources from trusted domains and block all resources from anywhere else.

Adding CSP to your site will protect your visitors from:

* Cross-site scripting (XSS) attacks
* Adware and Spyware while on your site

This plugin will help you set your CSP settings and will add them to the page the visitor requested. Policy violations will be logged in a database table which can be viewed via an admin page that supplies all the violations, along with counts. Buttons easily allow you to add the sites to your headers or to ignore them.

This plugin also allows you to ignore sites that repeatedly violate your policies. For example, some tracking images will show as violating your policies, but you still don’t want them to run, therefore you can block the site from showing up in your logs – note, however, that the browser will still call your server and your server will still spend resources processing the call.

Why Google AMP is not the ultimate solution for mobile WordPress speed.

Google’s ambitious AMP project (October 2015) speeds up the entire mobile web. Right!? It’s a WordPress speed miracle – wait! No it’s not. It’s another Google sham. It promises better SEO results in exchange for people surrendering control and information. Google’s great boon for mobile publishing fizzled.

Three examples of Google AMP hijacking URLs and valuable screen space:



Three examples of Google AMP hijacking URLs and valuable screen space.

Google, to speed up AMP, stores publisher’s pages and serves from Google. When a reader clicks an AMP link, the address bar displays instead of the publisher’s Web address. Oops? Where’d that site branding go?

Google says articles served from its Internet network is four times faster. That’s right. But developers disagree. Engineering or “designing in” origin optimization gives the same or even better results. That’s right. It appears Google has a hidden agenda not-so related to speed. That’s their mask.

What do these wonderful plugins claim?

AMP Active installs: 300,000+
Downloads: 1,962,560
Retention: 15 percent (moderate)
zip file size: 2.3M

AMP for WP – Accelerated Mobile PagesRetention: 4 percent (dismal)
zip file size: 1.6M

The Big Promise: AMP makes your website faster for mobile visitors. SEO pros claim Google prioritizes AMPs in search results. Feb. 24, 2016: Google integrated AMP listings into mobile search results. Big deal.

Really? But when we search on the phrase:

“Why Google AMP sucks”

we’re inundated with blog posts by developers. They say unexpected derogatory words about how AMP doesn’t help. They say it’s all a ploy by Google. These aren’t crackpots chiming in here. There are tech heavyweights who think AMP is bad for the free web. Why?

How to Setup Google AMP on WordPress Site (Using AMP Plugin) When you read the above post the propaganda sounds wonderful. Google AMP is the magic silver bullet curing all mobile speed problems. And there are two WordPress plugins helpers to get you set up. One authored and endorsed by Automattic, the  founders and owners of WordPress. What an amazing endorsement! (Question: What is Automattic doing in bed with Google?)

AMP hijacks the real URL of the page and provides no UI control to get back to the canonical URL. Consumers, publishers, sites and users are asking Google to give an opt out feature. AMP often loads broken links, takes longer to view, or may not format properly

When a user searches for an article on Google and clicks on an AMP link, it never leaves Even if the AMP link is an external entity. Google rehosts pages from popular search destinations. But they truncate it and reformat it. It’s supposed to be helpful because it lets complex pages load faster, but it’s a pain because it frequently doesn’t format properly or they cut it off in an inconvenient place. You’ve got to waste time getting to the original page.

There’s no way to turn AMP off. If they’ve got an AMP mirror for a domain, they’ll give you those results instead of the actual page every time.

Smaller publishers have more to lose if they use AMP. For many, they think Google owns the small-guys story.

John Gruber at Daring Fireball says the following:

The Problem With AMP

The lock-in aspect makes no sense to me. Why would I want to cede control over my pages to Google? AMP pages do load fast, but if publishers want their web pages to load fast, they can just engineer them to load fast. Best answers I got were that it wasn’t really strategic — publishers are going with AMP just because their SEO people are telling them to, because Google features AMP pages in search results. I suppose that is a strategy, but ceding control over your content to Google isn’t a good one in the long term.

Wikipedia negative quotes about AMP (there aren’t any positive ones):

Some tech media outlets, including The Register have criticized AMP:

I feel this needs to be said very clearly: Google’s AMP is bad – bad in a potentially web-destroying way. Google AMP is bad news for how the web is built, it’s bad news for publishers of credible online content, and it’s bad news for consumers of that content. Google AMP is only good for one party: Google. Google, and possibly, purveyors of fake news… Pinboard founder Maciej Cegłowski already recreated the Google AMP demo page without the Google AMP JavaScript and, unsurprisingly, it’s faster than Google’s version… Anybody can cram an illegitimate idea into a web page and – so long as it’s encoded as AMP content – it’ll look like it’s from a legit new organization endorsed by Google.

Chris Coyier, cofounder of CodePen, writes that AMP would be better if it “was never used as search ranking factor (or anything that could be interpreted as such) by anybody.”

At AMP Conference, Gina Trapani described some aspects of AMP as being “scary to me.”

John Gruber (again) writes:

I’m on the record as being strongly opposed to AMP simply on the grounds of publication independence. I’d stand by that even if the implementation were great. But the implementation is not great — it’s terrible. Yes, AMP pages load fast, but you don’t need AMP for fast-loading web pages. […] It’s a deliberate effort by Google to break the open web.

Why is PagePipe against Google AMP?

[perfectpullquote align=”right” cite=”” link=”” color=”” class=”” size=””]Here’s a good offsite article about how Google AMP failed for Kinsta by actually impacting their SEO by a negative 59 percent drop in leads. Read it in a new tab.[/perfectpullquote]
Speed is a strategy not a band-aid. You build site and page quality in – not sprinkle it on afterwards. AMP serves Google’s purposes – not ordinary users. We’re surprised an AMP content blocker hasn’t shown up by now. Improving the web is a better answer than donating it to Google. AMP is for apathetic site creators. We can fix the problem without handing everything over to Google.

PixelEnvy Written by Nick Heer.
“Given the assumption that any additional bandwidth offered to web developers will immediately be consumed, there seems to be just one possible solution, which is to reduce the amount of bytes that are transmitted. For some bizarre reason, this hasn’t happened on the main web, because it somehow makes more sense to create an exact copy of every page on their site that is expressly designed for speed. Welcome back, WAP — except, for some reason, this mobile-centric copy is entirely dependent on yet more bytes. This is the dumbfoundingly dumb premise of AMP.

Launched in February 2016, AMP is a collection of standard HTML elements and AMP-specific elements on a special ostensibly-lightweight page that needs an 80 kilobyte JavaScript file to load correctly. Let me explain: HTML5 allows custom elements like AMP’s <amp-img>, but will render them as <span> elements without any additional direction — provided, in AMP’s case, by its mandatory JavaScript file. This large script is also required by the AMP spec to be hotlinked from, which is a Google-owned domain. That makes an AMP website dependent on Google to display its basic markup, which is super weird for a platform as open as the web.

That belies the reason AMP has taken off. It isn’t necessarily because AMP pages are better for users, though that’s absolutely a consideration, but because Google wants it to be popular. When you search Google for anything remotely related to current events, you’ll see only AMP pages in the news carousel that sits above typical search results. You’ll also see AMP links crowding the first results page, too. Google has openly admitted that they promote AMP pages in their results and that the carousel is restricted to only AMP links on their mobile results page. They insist that this is because AMP pages are faster and, therefore, better for users, but that’s not a complete explanation for three reasons: AMP pages aren’t inherently faster than non-AMP pages, high-performing non-AMP pages are not mixed with AMP versions, and Google has a conflict of interest in promoting the format.

It seems ridiculous to argue that AMP pages aren’t actually faster than their plain HTML counterparts because it’s so easy to see these pages are actually very fast. And there’s a good reason for that. It isn’t that there’s some sort of special sauce that is being done with the AMP format, or some brilliant piece of programmatic rearchitecting. No, it’s just because AMP restricts the kinds of elements that can be used on a page and severely limits the scripts that can be used. That means that webpages can’t be littered with arbitrary and numerous tracking and advertiser scripts, and that, of course, leads to a dramatically faster page. A series of experiments by Tim Kadlec showed the effect of these limitations:

AMP’s biggest advantage isn’t the library — you can beat that on your own. It isn’t the AMP cache — you can get many of those optimizations through a good build script, and all of them through a decent CDN provider. That’s not to say there aren’t some really smart things happening in the AMP JS library or the cache — there are. It’s just not what makes the biggest difference from a performance perspective.

AMP’s biggest advantage is the restrictions it draws on how much stuff you can cram into a single page.

AMP’s restrictions mean less stuff. It’s a concession publishers are willing to make in exchange for the enhanced distribution Google provides, but that they hesitate to make for their canonical versions.

So: if you have a reasonably fast host and don’t litter your page with scripts, you, too, can have AMP-like results without creating a copy of your site dependent on Google and their slow crawl to gain control over the infrastructure of the web. But you can’t get into Google’s special promoted slots for AMP websites for reasons that are almost certainly driven by self-interest.”


Below are 8 other offsite links worth checking out:!topic/news/ixPneB4vpGk

Google AMP Is Not a Good Thing

link: I decided to disable AMP on my site >

17 common slow plugins – and some faster speed alternatives.

Often blogs posted by other authors recommend “the best” plugins. We ignore these Disneyland fantasies fabricated by errant or evil bloggers.

Other times, the blatant ignorance and bad judgment overwhelms us. In a fit, we’re compelled to fight for speed truth.

Sounds dramatic, huh. But PagePipe’s credo – as you know – is: Save the Internet from WordPress abuse. PagePipe is the little David slinging stones at Goliaths. We rebel against web dogma. Sounds fierce (shiver).

Author Sam Hollis wrote a blog article over at Aweber titled, 17 WordPress Plugins Email Marketers Should Know About. Aweber is a company creating email marketing and autoresponder tools. Below are Hollis’ plugin recommendations. You’ll realize why we rebuttal his article. Reading it made our blood boil.

First up, Hollis claims you can increase traffic using an SEO optimization plugin. And he recommends none other than our favorite archenemy, Yoast SEO. Read our article about why Yoast SEO plugin is a waste of your time.

Google XML Sitemaps. THE CLAIM: Using Google XML Sitemaps helps search engines like Google, Bing or Yahoo find your site. We say, Google finds and crawls every little thing fine without any sitemap. We do believe in sitemaps for content findability by users – not machines. We don’t mind helping Google do their job. We recommend an alternative lightweight plugin that does both HTML and XML sitemaps:

Simple WP Sitemap

Active Installs: 30,000+, compressed download: 75k

Smush Image Compression and Optimization. THE CLAIM: WP Smush plugin optimizes images for better page load times. Then author, Sam Hollis, blasphemes by stating, “Site speed is super important for SEO and general usability.” Speed doesn’t improve SEO. It improves UX. So he got it half right. But a half-truth is still wrong. He’s perpetuating the Google myth.

WP Smush plugin is the worst compression plugin in the WordPress directory. WP Smush compresses JPEGs by only 10 percent. That’s insignificant. Optimized JPEGs compress images by 10X and are visually lossless.  Read our article: WP Smush plugin doesn’t really help with speed.

The alternative we recommend instead:

200,000+ active installs, compressed download 152k

Read more about why here on PagePipe

Sam Hollis then recommends growing your email list with an Aweber account (naturally) using a signup form plugin: Sumo – 1.6MB download. We’re sorry. But there are other signup forms and services. We’re using alternative MailChimp API services with:

Easy Forms for MailChimp
60,000+ active installs, compressed download 3.7 MB

We’ve written about why here.

HelloBar plugin is Hollis’ next recommendation. It’s light package size of 105k is deceptive. It’s a SAAS plugin – meaning it makes calls to an offsite database and server. Third-party services load down websites. We explain in our article: Hello Bar plugin slows down your page speed

Contact Form 7.
Not again!
This is the oldest and slowest contact form. Read our review of faster form plugins. We recommend as a faster plugin alternative:

Simple Basic Contact Form
Active installs: 8,000+, compressed download 88k

AWeber Webform Widget. A blatant promotion for their services. Does anyone else care about these embedded advertisements eroding blog content credibility? Seriously. This conflict-of-interest recommendation is one of the BEST plugins? No bias there.

WooCommerce can process payments through your WordPress site. THE CLAIM: And it’s easy with a direct AWeber integration. What a coincidence! Another advertisement. They’re recommending selling eBooks. Doesn’t anyone write about how heavy WooCommerce is? There is actually a plugin called: WooCommerce Speed Drain Repair. We’ve never tested it. This plugin instructs WordPress to not load the huge variety of WooCommerce scripts unless the user is on a WooCommerce page. That’s selective activation of plugin loading. But the fact this “reduction” plugin exists indicates something foul, doesn’t it? How about substituting an alternative free plugin like:

Easy Digital Downloads
Active Installs: 60,000+, compressed download 4.2M

BuddyPress plugin. Why? THE CLAIM: To create a sense of belonging and exclusivity. To build a core group of customers as influencers who’ll speak about your brand on your behalf. Sorry. Excuse us while we barf. Does this touchy-feelie baggage help small-to-medium size web businesses? We’re thinking it’s a waste of time and plugin space. We don’t think this plugin is necessary.

AddThis plugin THE CLAIM: Generate social sharing buttons so your readers can  promote your content to their networks. AddThis inserts their tool next to each blog post. Is this plugin necessary? PagePipe doesn’t advocate social media as an effective marketing strategy for small to medium size web businesses. If you’re a celebrity, that’s different. Stick with email signups.

Leadin (HubSpot Marketing Free) THE CLAIM: This plugin is so you can track your leads and create more interest in content. This plugin allows you to set up analytics that capture information about your audience and what they are doing. You can track the content they read to find out and what works best. We’re suspicious. Is this an affliate link? Maybe not. But we don’t agree this third-party service is necessary. Remember: Third-party APIs cause speed deterioration. Repurpose WordPress Popular Posts plugin to determine what visitors view:

WordPress Popular Posts
Active installs: 200,000+, compressed download 122k

PDF Embedder THE CLAIM: Add an incentive to your sign up forms by offering a content upgrade or lead magnet. Host that document on your website. What’s a lead magnet? An irresistible bribe offering a specific chunk of value to a prospect in exchange for their contact information (email). Sounds disgusting. We sanitize the definition as, “The offer of valued proprietary intellectual property (downloadable PDF).”

We recommend instead combining an alternative plugin:

Beacon Plugin
Active Installs: 3,000+, compressed download 1.5M

Yet Another Related Posts Plugin (YARPP) THE CLAIM: Cross promotion from within your site increases higher conversion. We have a speed article reviewing 38 related-post plugins. Read it here. We recommend:

WordPress Related Posts plugin
100,000+ active installs, compressed download 1.7M

Revive Old Post THE CLAIM: Automatically share posts to social media. It lets you set the interval and number to share based on what is performing the best. Our PagePipe philosophy is one of recycling Evergreen content and freshing it up. Do this judiciously and use your human brain. Not plugin automation.

Insert Headers and Footers THE CLAIM: It’s easy to embed a Facebook tracking pixel, Google Analytics script, or custom code that you create. We say, think real hard before you add these things. The only thing slowing down your site worse is GoogleAds. For faster Google Analytics, read our speed article, “How does Google Analytics affect mobile speed?”

Akismet THE CLAIM: This plugin helps combat spam and keep your comments and contact form submissions safe, clean and professional. PagePipe’s recommendation, “Disable comments.” Read our article about: “Should you use Aksimet anti-spam plugin?”

Wordfence Security THE CLAIM: A secure and protected site keeps your reputation in check. It makes your readers feel safer too. Read our PagePipe article with alternative, lightweight plugin suggestions: Do security plugins slow down WordPress?

Not a single one of Sam Hollis’ 17 wonderful plugins satisfies mobile speed strategy. No surprise we’re so hopping upset.

You don’t have to be a coder or programmer to help improve your mobile page speed.

[bscolumns class=”one_third”]

If you’re new here, start with our best primer speed articles.


[bscolumns class=”one_third”]

If you’re ready to give your WordPress site wings, here are powerful tools to speed up your site.


[bscolumns class=”one_third_last”]

Learn how the most popular plugins and ideas waste your time – and hurt web speed. Includes important tips for mobile speed without coding.


Repairing WP Post Navigation plugin with CSS.

We had a weird problem appear on PagePipe and a client site. We’re using a plugin called: WP Post Navigation. It’s more decorative and usable than normal theme “next-previous” bottom-of-post links. The two site themes were different: GeneratePress and Twenty-seventeen default. The plugin had not changed for almost 2 years. And those themes didn’t change simultaneously either.

But WordPress core had many changes recently.

Anyway, the “next-previous” theme links were no longer suppressed by the plugin. See the images below:

Adding a snippet of CSS code fixed both sites.

.single .post-navigation { display: none; }

Oddly, the plugin and theme were presenting different links on PagePipe. No time for solving that at the moment. But curious. WP core is the culprit. Backward compatibility is a low priority at WordPress.

End of lesson.

What slider is the fastest loading?

We generally think image sliders are a bane. We’ve written about the problems before. But if your client is insistent upon having a slider to show a gallery of photos, what should you do?

First convince the client of the negative aspects of a slider – especially if better SEO is their defense. (See the links at the bottom of this article). Using a slider for presentation is not a bad thing. But offload it from the Home page to a page of it’s own. And then use Plugin Logic to only activate the slider on that page. That means you’ll have one slow page and not all site pages will be sluggish.

So what slider do I choose?

Fortunately, Chris Lema did some quick-and-dirty benchmarking in his review: How do you find the best WordPress slider? Saved us a lot of trouble not having to test 20 different slider plugins. Some plugins are paid and some are free.

Also, there’s a good slider-speed article over at WP Rocket >

They said:

“For your everyday slider needs, I would go with Meta Slider. It’s free, relatively lightweight, really easy to set-up and will have the least negative impact on performance.”

Our recommended winner for speed is: Huge IT Slider – just 315 ms. And good news, it’s one of the free ones.

Sliders are usually large moving images that “slide or fade-in” at the top of the page. This can be an unlimited number of images. They may or may not contain textual content. Slider function may be included in a theme or it can be added as a plugin. Sliders can be responsive or fixed width. They can also do some weird and wild animation like exploding the image or breaking into a matrix.

Any movement or animation on a web page is as distracting as a fly crawling across the screen.

Are there redeeming qualities to sliders?
Yes. We think so. But Steve’s thinking is more unconventional. Christian will probably mention, all clients want a slider on their home page. We’re in favor of a single large static image on the Home page. That single image may be best used in a “solo” slider. People like to look at large images with depth and detail. It’s a pleasant experience and if transparent it will not distract readers from written content. A slider can make for an “inviting space” where visitors will want to return. A series of three slides can tell a motivating visual story. That requires thought or custom art.

What is the biggest problem with sliders on Home pages?
The problem almost never lies with the slider itself – even though they’re not all the same. Problems are introduced by designers or a committee. Slow page load time is the worst problem and very close to that is page clutter. Visual noise. Multiple messages with no hierarchy. By visual noise, we also mean things like a slider running too fast so visitors can’t absorb the content with self-paced reading. Too many irrelevant slides.

How much time does a slider slow down a website?
Random tests have shown an additional delay of 1 to 2 seconds worst case per page. That is a long time in the web world. But it’s not the worst speed hog for WordPress. Some themes are not well engineered and with no plugins or slider activated can load in 4 to 8 seconds. But add a slider on top of that and you are pushing the limits of human attention span.Seven expert testimonials that sliders suck. Free PDF get it. >
1 page, 7×11 inch, b/w, 22k, PDF download

Great online demonstration of how frustrating sliders are >
Offsite HTML slider demo page

Is it bad to make slider images clickable?
Only one percent of visitors actually click on a slide, which almost always is the first slide. They simply ignore sliders. This is called “banner blindness.” There is nothing wrong with clickable images as long as it’s not the only way to navigate. Companies like Apple, Adobe, Amazon, eBay, etc use navigation redundancy on a web page. Their typical goal is three different ways to navigate (header, footer, buttons). This again is a transparency thing. They don’t want visitors getting frustrated finding anything. So clickable sliders isn’t necessarily productive but it’s a benign navigation alternative.

Any other comments about sliders?
WordPress sliders don’t always work well on mobile devices. The vendor or author may claim they work fine but they can cause failure of page navigation and distort images. You have to test this stuff. Just make your screen thin as an iPhone and see what happens. You may be surprised by ugliness and loss of functionality.

We’ve been anti-animation for many years. This is because moving objects distract from the really important stuff. We’ve used the example of trying to read printed text with a fly crawling around on the page. Your eye is naturally pulled to the fly and it drives you nuts. It’s the same way with all web history of animation. Animation is not inherently bad. It’s the abuse of animation by designers that ruin pages. We call it excessive expressive aesthetics or simply visual noise.

Offsite article about sliders >

How we cheated the speed tests using Twenty-seventeen theme.

Slow plugins? It’s not the quantity, it’s the quality that makes a difference. Web designers can’t be arbitrary in loading and activating plugins. The result is slow pages.

All plugins recommended are free downloads from directory.

Our first speed trick, of course, is using thematic graphic elements tying fast-loading visuals together. Color usage in branding elements is good speed strategy. Limiting the site palette to just a few colors makes super, fast-to-load GIF graphics – and the lightest-weight, 16-second video.

Get a freebie graphics package for Twenty-seventeen theme >

Second, we use free plugins that help page speed. It’s a myth that using many plugins will slowdown your website. Being sloppy in judging plugin quality or necessity is the culprit. That’s within a designer’s control. It calls for wisdom and speed testing. The best plugins add only single-digit millisecond delays. Almost no page weight at all – weightlessness!

Here’s the speed plugins we use on Twenty-seventeen:

Optimizes your website, concatenating the CSS and JavaScript code, and compressing it.

2Remove Google Fonts References
Disable enqueuing of Twenty-seventeen’s Libre Franklin and Helvetica Neue and other fonts used from Google. Twenty-seventeen then uses browser and system default fonts. This speeds up load time. This plugin is a very lightweight. It has no settings, just activate it and it works immediately. The trade off for typographic branding isn’t worth it. The body text is generic and ubiquitous thus perceived as an utility font. The common fall-back fonts in the stack aren’t special except for being fast loading. The family font stack is: “Libre Franklin”, “Helvetica Neue”, helvetica, arial, sans-serif. The font being rendered usually is Helvetica.

3Disable Emojis
This plugin disables the emoji functionality (since WordPress 4.2). WordPress does not need emoji. Emoji functions add 5.6k to 14.7k page weight and 2 or 3 HTTP requests to a site. Waste. Emoji are the 12-pixel-square-grid ideograms, emoticons, or smileys used in Japanese electronic messages and Web pages.

4Lazy Load for Videos
Speeds up your site by replacing embedded Youtube and Vimeo videos with a clickable preview image. Visitors simply click on the image to play the video. This isn’t needed for the Twenty-seventeen header video. That’s already using deferred loading. But if you have any other video, like we do on our posts, it helps speed things up.

5Far Future Expiration Header
This plugin will add a “far future expiration” date for various file types to improve site performance. This is a best practice advocated by the Yahoo Extreme Performance Team. It keeps files and images cached longer. There is also a radio button to enable Gzip – a nice addition.. The changes are made in your .htaccess file on your server. You don’t have to do any coding. Nice.

  1. Far Future SETTINGS
  2. Set the expiration to 365 days (yes, 1 year).
  3. Select all the file types you are using.
  4. Select Gzip compression.
  5. Save.

Note: This plugin doesn’t have a setting for .mp4 files. We went in and modified the .htaccess file on the server later. But not for this test.

6Optimize Database after Deleting Revisions
Optimizes the WordPress database after cleaning it out. This flushes the deadwood from the MySQL database that WordPress uses. MySQL is provided by your hosting company.

7Query Strings Remover
Removes query strings from your static resources like CSS and JavaScript files. It will improve your cache performance and overall score in Pingdom and GTmetrix. No configuration needed.

8Rocket Lazy Load
A tiny Lazy Load script for WordPress without using jQuery or others libraries. Lazy load is a method of delaying presentation of non-critical images that are “below the fold.” This technique buys seconds of faster perceived load time. Rocket Lazy Load automates everything.

This tiny script (less than 2k!) displays all images in a post or widget, thumbnails, avatars and emoticons as users scroll down your site. It doesn’t come with any options or customizations, just install and activate this plugin and let it do it’s thing.

9WP Super Simple Speed
No configuration needed. Uses GZIP compression, leverages browser caching, includes automatic hot-link protection and more. There is some redundancy with Autoptimize and Far-Futures plugin features. But there is no conflict and it finishes off a few hard to remove speed bumps.


[bscolumns class=”one_half”]

thumbnail of THEME-ME-10-v1.compressed
THEME.ME: What is the fastest free theme? There are 5,100 free themes in the WordPress theme directory. Of those, only 1,602 are responsive. All the rest are fixed-width junk. How did we sort the remaining 1,602 free responsive themes to find the fastest loading?

[/bscolumns][bscolumns class=”one_half_last”]

Twenty-seventeen Default Theme Tips Read our torture-test results of this popular free theme. Don’t get locked in for recurring *annual renewal* theme memberships. Save your money. The Twenty-seventeen Torture-tested Themes ebook contains honest and common-sense reporting and tips about mobile WordPress speed!

[/bscolumns][bscolumns class=”clear”][/bscolumns]

Update on Gzip Compression

Gzip compression speeds up text based file transfers. It’s not applied to image files. But it does compress HTML, Javascript, PHP, CSS, and others by 50 to 70 percent. The load time improvement can be noticeable.

he option to enable gzip compression was removed in WordPress 2.5 because Apache servers could handle it much more efficiently than PHP. The Gzip function was never put back. It then became necessary to edit the server HTTP access file manually. However, many people don’t have root server access (as in many shared hosting accounts) so that denied them Gzip speed benefits.

Because of the WordPress 2.5 change, Gzip could only be enabled by editing the HTTP access file via FTP or Cpanel. This is not only cumbersome but also dangerous. Making a mistake breaks your WordPress site. We know from experience. It’s not a fun place to be.

Plugins were soon authored to compensate for the loss of functionality in WordPress. We don’t recommend any of these plugins. They are unnecessary. These useless plugins are:

Repeat: We don’t recommend any of the above Gzip plugins. WARNING: Several may actually break your site (white screen of death from plugin conflicts) or make your site slower. We speak from experience again. It depends upon your theme and other plugins.

Many, Gzip plugins run through PHP, which, although fast, is not as fast as running directly from the Apache server using mod_deflate. Running Gzip via PHP uses extra CPU cycles and memory.

Before installing any plugins for Gzip.

Your hosting may automatically enable Gzip. Then no plugin is needed. For example, today GoDaddy’s Linux Web Hosting accounts have mod_deflate enabled by default. Mod_deflate is an apache server module that compresses data using gzip compression before sending it to the user. This compresses all text type files requested from it (HTML, CSS, JS, PHP, etc). Your hosting may do the same. Check your site with this tool:

Or this one:

But a reader, Erica Velásquez, prefers this faster Gzip test:

(Thanks for the tip, Erica!)

Example – Our PagePipe Gzip results using online tests:

  • Page size (uncompressed): 74,153 bytes
  • Download size (compressed): 23,436 bytes
  • Bandwidth saved by compression: 68.4%

If your host isn’t providing automatic Gzip compression, then use one or both of the following plugins. They’re proven safe methods:

WP Super Cache
Caching plugin for WordPress. We find this plugin doesn’t always help with speed. This plugin has an option to enable gzip compression.
Select: “Compress pages so they’re served more quickly to visitors.”

Far Future Expiration Header
This plugin will add a “far future expiration” date for various file types to improve site performance. This is a best practice advocated by the Yahoo Extreme Performance Team. It keeps files and images cached longer. There is also a radio button to enable Gzip – a nice addition. Set Far Future expiration to 365 days. You’re done.

WP Super Simple Speed
WP Super Simple Speed is lightweight (less than 20kb in size), and has no clutter or unnecessary code or configs. Simple performance optimization without any hassle. Gzip is automatically added to your .htaccess file on your server by this plugin.

Gzip is a software application used for file compression and decompression. Gzip is short for GNU zip; as the program was created as a free software replacement for the compression program used in early Unix systems.

Gzip replaces patent-encumbered data compression algorithms.
Most browsers and server platforms (including Apache and Microsoft IIS) support Gzip. It is often used in web applications and software such as PHP to improve speed. Hypertext PreProcessor (PHP) is a server-side HTML embedded scripting language. PHP is not always provided by a hosting server or may be a “paid” option. PHP is something that need to be “switched on” on the server. Check your ISP for how to do this. Or assume it’s on and just test. You can test to see whether PHP is activated with YSLOW or PageSpeed tools. Gzip can compress the HTML code by 50 percent to 70 percent. It does not compress images. Use SmushIt for image optimization or an image processing program like GIMP or Photoshop – or online at pixlr express.

Gzip compression: What’s the speed gain?
Gzip reduces redundancy in the HTML code. All modern servers and browsers can compress and decompress Gzip on-the-fly. It’s not the same as removing “white space.” White space removal eliminates spaces between words and code. That would buy a 10% reduction in the HTML and is meaningful on dialup. White space removal is now called “minification” or “minifying.” Removing white space AND using Gzip simultaneously are almost an insignificant compression gain—about 1%. Not worth the time usually since all “blanks” are redundant and compressed by Gzip anyway. The difference in speed is usually indistinguishable.

There are a number of plugins that claim to invoke Gzip. Many actually break your site (white screen of death from plugin conflicts) or make your site slower. The goal usually is a simple code modification in a file located in your site’s root folder. This is called the “.htaccess” file. You can alter this code with a simple copy-and-paste in a text editor. But even easier than that is using the “Far Future Expiry Header” plugin. We’ve found that is the simplest – and weightless. When we say “weightless,” we mean the plugin doesn’t add any weight to your pages and thus has no “drag” slowing things down. With the plugin, there’s no messing around in C-panels or FTP clients. The plugin is built for caching your site assets for up to 365 days into the future. We recommend doing that. At the bottom of the plugin control panel page is a little radio button that when clicked enables Gzip for your entire site. Easy! And it works.

Related Post plugins and mobile speed.

Related-posts plugins are a functional category. And there are a bunch – 38 plugins at the time of this writing. Perhaps more before you finish reading this post!

Suggested related content improves the user experience. Plus improves your bounce rate, page views, and time-on-website statistics, too. Selected “related posts” vary from an automatic, complicated algorithm to mere identical WordPress categories.

The factor determining if a reader will come back to your site is whether they read more than one post. If they do, they are likely to return. If they don’t, they won’t. How much does “related posts” increase internal traffic: a mere 10 percent. We’ll take it.

The most popular plugin is Yet-Another-Related-Posts plugin or YARPP. But is it the fastest? We thought this plugin a bit complicated. We don’t appreciate having to watch a video to understand a plugin. But sometimes it’s necessary.

WordPress hosting providers block or blacklist YARPP (like GoDaddy and WPEngine). “Heavy database usage” or database search incompatibility is their reason. This may be true. Web hosts claim related posts plugins overuse your database. They propose it’ll crash your site if you get a lot of traffic. We doubt it. Theoretical bluster as an excuse to protect the host – not you.

The next most popular related-post plugin is JetPack. We don’t even include it on this list. Because it’s a Swiss-army-knife, multi-function plugin.

Plugin popularity varies depending upon what review you’re reading. We have specific speed goals in mind first.

38 free related-posts plugin candidates from the WordPress Plugin Directory

We immediately eliminated any plugins with floating popups, API keys, animation, and grid formats. Also, we wanted automatic selection features and not a manual selection of related posts. Thirteen plugins claim speed benefits. 8 had shortcode functions and 4 said they were responsive.

This left three categories: widgets, end of post, and both places. We wanted a text-based plugin for a sidebar widget. And a responsive one with end-of-post thumbnails using featured images. Some plugins actually made speed claims as a differentiation. We also looked at creation dates. (We find this in the file release notes.)

We considered the number of installs and when the plugin was last updated. We used unzipped file size to rank all 38 of the download plugins.

The oldest 2 released in 2012. Two more in 2013. Eight in 2014. Ten in 2015. And 16 in 2016. An upward trend.

Top 7 most-installed and their weight:

  1. yet-another-related-posts-plugin: 2M, 300,000+ installs
  2. wordpress-23-related-posts-plugin: 2.5M, 100,000+ installs
  3. contextual-related-posts: 1.2M, 60,000+ installs
  4. related-posts: 1.5M, 40,000+ installs
  5. related-posts-thumbnails: 219k, 30,000+ installs
  6. related-posts-by-zemanta: 1.4M, 20,000+ installs
  7. yuzo-related-post: 5.6M, 20,000+ installs

Notice how popular plugins are the heaviest – in the megabyte range. Typical. The rest were between 44k to 500k weights.


WordPress Related Posts plugin
100,000+ active installs.
unzipped: 2.5M !!! Incredibly heavy.
last updated: 3 weeks

WordPress Related Posts plugin inserts related posts after your content. It’s lightweight because it has few “activated” features. It supports different styles, thumbnails, caching, and other customization options. Why it weighs 2.5M? Well, 1.5M of the files are styling options that once selected aren’t used. They are static or inert. Not active.

It’s a simple yet fast plugin. It doesn’t damage your site and adds related posts at the end of your content. We aren’t looking for advanced features. WordPress Related Posts plugin – amazingly – won’t slow down a site. Excellent performance.

Like many plugins, it loads globally. This adds 203 milliseconds site drag for every page and post. Our home page is a post directory with no related posts links shown. So we disabled the plugin on that URL with Plugin Logic plugin. The related-posts plugin only works on posts. Not pages. But we’re most concerned about optimizing the Home page (post directory) for now. We’ll catch the rest when we’re bored.

The plugin authors encourage using a feature called “linking out” to other blogs. We don’t recommend it. We’re suspicious. It slows things down or takes traffic elsewhere. We don’t need it. They claim it grows community and traffic. Self-promotional hype.


Pro Related Post Widget plugin
unzipped 28k
introduced in 2014

This plugin adds undetectable page weight and no HTTP requests. No site drag. The plugin author no longer supports the plugin – but it works great. It only has 200 installs and no updates for over 1 year. We can live with that. P3 Performance Profiler plugin testing says the widget adds 4 millisecond load time. Invisible in speed tests.

Settings in Dashboard > Appearance > Widgets > Sidebar

We made this plugin choice by testing lightest weight plugins first (all introduced in 2016!) and worked our way up the list. The first 5 broke the site – or didn’t work. We finally came to #6 Pro Related Post Widget. It worked great. No need to look further.

plugin name unzip thumbs speed creation installs updated
media-related-posts 5 02/09/16 20 8 mo
perfect-related-posts 6 y 02/10/16 10 8 mo
smart-related-posts 8 n 04/21/16 10 1 yr
nifty-related-posts 13 end y/n 09/30/14 30 2 yrs
the-related-posts 23 end n 08/20/16 70 1 mo
flexi-related-posts 24 widget y 06/16/15 10 1 yr
simply-related-posts 27 widget n 10/23/16 500 2 yrs
pro-related-post-widget 28 widget 12/26/14 200 9 mo
lab404-related-posts 35 end y y 05/10/15 100 1 yr
nelio-related-posts 44 12/12/14 20 5 mo
related-posts-mwip 44 n 07/25/16 10 2 mo
efficient-related-posts 45 end y 02/20/16 6,000 7 mo
super-simple-related-posts 62 widget y/n y 02/15/16 400 7 mo
related-post 77 y 11/08/14 4,000 1 mo
all-related-posts 95 widget n 08/11/16 500 1 yr
igit-related-posts-widget 114 widget y 08/06/15 200 1 yr
cp-related-posts 131 y 08/29/16 1,000 4 wks
quick-related-post 132 end y/n 04/27/16 60 4 mo
related-posts-by-taxonomy 141 end/widget y/n y 08/12/16 8,000 1 mo
modern-related-posts 166 end 04/23/15 600 1 yr
ark-relatedpost 170.9 10/08/14 100 5 mo
related-posts-thumbnails 219 end y 07/14/16 30,000 2 mo
related-posts-for-wp 484 end y 12/30/14 7,000 2 mo
amity-related-posts 495 10/16/15 30 11 mo
easy-related-posts 861 end/widget 09/15/14 2,000 2 yrs
os-related-posts 915 y/n/slider 12/08/16 10 10 mo
relatify 1800 end y/n y 03/21/15 100 2 yrs
contextual-related-posts 1200 y/n 05/30/12 60,000 4 mo
related-posts-by-zemanta 1400 end y y 01/21/13 20,000 1 mo
related-posts 1500 end y 04/09/14 40,000 1 mo
related-posts-lite 1600 end y y 10/02/15 900 1 yr
wordpress-23-related-posts-plugin 2500 end y y 11/05/13 100,000 3 wks
addthis-related-posts 2800 float popup y y 07/05/16 300 7 mo
relevant 2900 end/widget n 08/26/16 2,000 4 wks
yet-another-related-posts-plugin 2000 end/widget y 11/25/12 300,000 8 mo
contextly-related-links 3500 API key y 08/13/15 1,000 5 mo
related-posts-list-grid-and-slider-all-in-one 5200 grid or list y 08/08/15 1,000 2 yrs
yuzo-related-post 5600 end y y 07/24/15 20,000 3 wks

A blog is nothing without great content. You can spend all the time you like configuring social media, adding advertising, and sharing your content. But if that content isn’t great, you won’t get an audience. Author: Rachel McCollin