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.
WebPagetest.org: 1 second.

Tested on a cheap, shared, Linux server.

Learn More Plugin Speed Tricks

Under 1-second page speed with Twenty-nineteen theme – and heavy video.

Speed best-practices.
Creative performance optimization.

by PagePipe staff

This episode shows you how to speed up the default Twenty-nineteen WordPress theme. And without using any coding.

12:12 minutes. Click image to watch now.

Eleven plugins are all free and available online.
Links further below the list.

Links below – scroll down.

We’ll remove unnecessary slow components from WordPress core. And then reveal how to speed up pages containing heavy embedded YouTube videos.

PagePipe is a page-speed technology company. We curate speed research and tips about non-traditional mobile performance. We do site tuneups and rebuild websites for extreme performance.


Our performance budget is under a 2-second load time – or 2000 milliseconds.

W matters is load time for best user experience. Scores are meaningless. Performance grades don’t affect SEO. Page size affects mobile bandwidth and data rate consumption. The number of requests doesn’t matter as much since they often load in parallel.

The YouTube video preloads fonts, ads, tracking beacons, recommended videos, etc. The heavy load added by one single video slows a page around 500 milliseconds. The best solution is to lazy load the video using a plugin.

Twenty nineteen theme doesn’t load Google fonts. This is a speed benefit. A mobile system font stack loads fast. The authors designed Twenty nineteen for mobile users and speed.

Speed improved 50 milliseconds with caching. A 10 percent improvement for extreme optimization.

The heaviest plugins in this tutorial load in around 17 milliseconds. Very fast. Many are less than one millisecond. WordPress core is 120 milliseconds. The Twenty-nineteen theme loads in 15 milliseconds. Twenty nineteen is the fastest theme on the planet – once stripped using plugins. No coding needed. Amazing!

Remove WordPress child themes for mobile speed.

WordPress released core version 4.7 in early December 2016. The default Twenty Seventeen theme included a new Customizer CSS editor. The new editor allows the removal of child themes and related plugins. This helps your site load a little faster – every little bit counts.

Before then, using child themes added custom code to WordPress themes. You edited CSS in a child theme with the WordPress file editor. It protected custom code from being overwritten by theme updates. Without a child theme, updating caused loss of code changes.

Since WordPress 4.7, the option to add custom CSS is in the WordPress Customizer. You can then remove child themes. But you can’t edit PHP or JavaScript files – only CSS.

The custom CSS editor is in Appearance > Customize. Then select the “Additional CSS” option from the Customizer menu. That opens up a live CSS editor — no refreshing. Preview your changes immediately as you type. The live preview feature speeds up web work. There’s no waiting for page refreshes to view each change.

The “Additional CSS” menu keeps the edits safe in the confines of the Customizer. Your changes aren’t seen by users until you press Save and Publish. You can only edit CSS (not PHP or JS).

Child themes allow JS and PHP modification. So this doesn’t mean the extinction of child themes. But for most, it’s an opportunity to squeek out a little more speed. We do extreme performance optimization. We favor using the Customizer over a child theme.

“Additional CSS” is inlined before the closing head tag. This means no extra HTTP requests to fetch the custom CSS. Inlining CSS into HTML header removes CSS render-blocking. It also eliminates an extra HTTP request — both great things for speed. “Additional CSS” also does code syntax highlighting and error checking. Nice.

A child theme requires an extra HTTP request – unless combining by concatenation. Read more about minification plugins.

“Additional CSS” isn’t cached. It’s downloaded, processed, and rendered by the browser with every page load. This sounds inefficient. But for small amounts of CSS, it’s negligible speed difference. A few dozen – or even a hundred lines – of CSS loads fast inlined. Even Google recommends inlining CSS. No need calling an external style sheet when CSS code is small.

“If the external CSS resources are small, you can insert those directly into the HTML document, which is called inlining. Inlining small CSS in this way allows the browser to proceed with rendering the page.” – Google

From our past experiments with hand-coded sites, we agree with Google. This technique produces the fastest loading pages. Eliminating a child theme – by inlining custom CSS – produces a small boost in mobile site performance.

So, theme updates won’t wash away custom CSS – but that’s true only up to a point. If you change your theme (rather than just updating the theme), all the code added in the “Additional CSS” area disappears. Then it’ll all be gone.

Tom Usborne, the developer at GeneratePress, has a free plugin called “Simple CSS.” It’s a nice CSS editor – complete with code syntax highlighting to help you. It keeps all additional CSS safe from any theme updates and replacements. It works with all themes but Simple CSS is included as a standard feature with GeneratePress premium theme. With this plugin, you can also apply CSS only to one specific page. Navigate to your page or post in the Dashboard and look for the “Simple CSS” metabox.

Simple CSS

Load Time: 30 milliseconds


And it also opens up a new area in the Customizer where you can view your CSS changes live. This code saved by the plugin doesn’t disappear if the theme is changed.

Site owners can stop using child themes. Opportunities for CSS customization is in WordPress core.

Need to preserve your WordPress functions.php file changes besides the style.css file, here’s our tip use:

Code Snippets
Add code snippets to your site. No need to edit your theme’s functions.php file again!

Gutenberg versus Elementor: mobile speed – good or bad?

Before you read our post: read this one first offsite:


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?

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

Wow! Those claims aren’t true. It’s not that slow.

But really, it’s impossible to tell how the final phase-3 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. Three example plugins follow:

Classic 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

Gutenberg 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 millions of Elementor installs. That’s a lot. Elementor is a popular page builder.

Gutenberg is damaging (retarding) all page builder adoption. The installation numbers would be even more if Gutenberg were complete.

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 compare?

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) may mickey-mouse for years getting Gutenberg to a workable version. Let’s see what happens. The first released version was 100-percent extreme poor quality. But they promised to fix it – right away (stall tactic).

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

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

Harness block-editor power.
Build fast, good-looking websites.
No page builder needed.

Be fast – without being ugly.


Assessing speed overhead with P3 Plugin Performance Profiler.

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

WARNING: At present, P3 plugin will whitescreen a WooCommerce site. The solution is removing P3 plugin via Cpanel or FTP. Not fun. So watch out.

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 read.me files.

The plugin directory is one of WordPress’s great assets. It provides over 58,000 applications extending WordPress. It’s also completely open and free. Any author can contribute. Anyone can download it. 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 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.

WordPress.org used to place a label on plugins not updated in over 2 years. Now instead they show how many missed update versions. 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 or Elementor stubs its toe. It happens to the peerless.

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

A plugin we use often is P3 (Plugin Performance Profiler). As implied, this plugin creates a profile of the speed performance of your plugins. It was published by GoDaddy, one of the biggest hosting providers in the world. But they abandoned the plugin for years. In 2020 it was reworked to function again with PHP 7.x. It measures load-time impact expressed in seconds for every plugin you have activated. It helps narrow down plugins causing potential speed issues. P3 now works with newer PHP version 7+. Hurray!

P3 (Plugin Performance Profiler)
Load Time: 40 milliseconds

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

At this point, we smile. Over 90,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 22.7 milliseconds – even when sitting there.

P3 (Plugin Performance Profiler) causes 22.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 usually remove it. Don’t leave the lights on.

There are attempts to prove P3 plugin numerical 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 time 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. What we care about most is identifying the worst offender plugins. The hogs and fatties.

NOTE: We are still testing but WP Rocket may conflict with this newer version of P3 plugin and white screen your site. Caution is needed. Just deactivate WP Rocket before running the test.

There are articles about purported P3 alternatives and lookalikes. We’ve examined them. None give the speed ranking information we desire. It’s needed for speed assessments. P3 shows information not represented in any known speed report we’ve found. We’ve found workarounds for its shortcomings by digging out the data and reformatting.

Let’s look at PagePipe.com which loads in under 1 second.  We use the Twenty-seventeen default theme. Theme load time is around 20 milliseconds. We selected this bare-bones theme because its package size was small and light. We’re way beyond the year 2017 now. But this is still a fast theme when stripped using our KrunchKore recommendations.

We have 53 free WordPress plugins. What?!

That’s right. 53 are active. 20 are inactive. P3 says they all load in 593 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:

  • Bulk Plugin Copier
  • Bulk Post Update Date
  • Easy Debug Info
  • Enable Media Replace
  • Export Media Library
  • Find Posts Using Attachment
  • Laps
  • Link Finder (which we run quarterly)
  • Link Whisper Free
  • Optimize Database after Deleting Revisions (we activate and run once monthly for cleaning).
  • P3 (Plugin Performance Profiler)
  • Plugins List
  • Query Monitor
  • Regenerate Thumbnails
  • Search Exclude
  • Shortcode Lister
  • Title like Alt
  • Tuxedo Big File Uploads
  • Unused Shortcodes
  • Widget Shortcode
  • Word Stats

Most of our inactive plugins are resource intensive – or only used for maintenance and troubleshooting. That means they hog database and RAM on the host server. If they all were running at once, most ungenerous hosting providers would – with total lack of courtesy – shutdown our site. Our resource overages affect our other 23 shared-host neighbor’s speed. Can’t upset the server neighbors!

Pareto principle is still alive! Using SpeedXray and P3 plugin we find 8 of our heaviest plugins contribute to 80 percent of the cumulative weight. 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 “heaviest” plugin choices. These slower plugins needing the most scrutiny.

Here are the P3 ranking results:

Similar Posts,182.30,30.74%,30.74%
Advanced Ads,93.70,15.80%,46.54%
Simple Content Adder,78.20,13.18%,59.72%
LiteSpeed Cache,50.10,8.45%,68.17%
UpdraftPlus – Backup/Restore,24.60,4.15%,72.31%
Lazy Load Optimize Images,14.20,2.39%,78.55%
Lazy Load For Videos,9.10,1.53%,80.09%
WP Post Hide,8.50,1.43%,81.52%
Import External Images,7.90,1.33%,82.85%
Plugin Toggle,7.90,1.33%,84.18%
Si Widont 1.0,7.50,1.26%,85.45%
Really Simple Ssl,7.40,1.25%,86.70%
Limit Login Attempts Reloaded,7.30,1.23%,87.93%
Simple Drop Cap,7.10,1.20%,89.12%
Better Search Replace,4.80,0.81%,89.93%
Hide Dashboard Notifications,4.70,0.79%,90.73%
amr shortcode any widget,4.20,0.71%,91.43%
Email Address Encoder,3.30,0.56%,93.32%
Disable Comments,3.00,0.51%,93.83%
Simple Pull Quote,2.70,0.46%,94.28%
Blog Manager Light,2.40,0.40%,94.69%
Easy Publisher,2.10,0.35%,95.04%
Category Sticky Post,2.00,0.34%,95.38%
Speedswitch Rules,1.90,0.32%,95.70%
Change Table Prefix,1.80,0.30%,96.32%
Asset Queue Manager,1.70,0.29%,96.61%
De Updraftplus Backup Exclude Image Thumbnails,1.70,0.29%,96.90%
Fake Whos Online Widget,1.50,0.25%,97.15%
More Plugin Info,1.50,0.25%,97.40%
All 404 Pages Redirect to Homepage,1.40,0.24%,97.64%
BBQ Firewall,1.40,0.24%,97.88%
Watu Quiz,1.30,0.22%,98.09%
Super Simple Google Analytics,1.20,0.20%,98.30%
Hierarchical Html Sitemap,1.10,0.19%,98.48%
ToTop Link,1.10,0.19%,98.67%
Far Future Expiry Header,0.90,0.15%,98.82%
Classic Editor,0.70,0.12%,98.94%
My Favicon,0.70,0.12%,99.06%
Display PHP Version,0.60,0.10%,99.16%
Restore Image Title,0.60,0.10%,99.26%
Simple CSS,0.60,0.10%,99.36%
Admin Post Navigation,0.50,0.08%,99.44%
Date/Time Now Button,0.50,0.08%,99.53%
Disable Embeds,0.50,0.08%,99.61%
Disable Emojis (GDPR friendly),0.50,0.08%,99.70%
Current Year and Copyright Shortcodes,0.50,0.08%,99.78%
WP Author Date and Meta Remover,0.50,0.08%,99.87%
WP Image Borders,0.40,0.07%,99.93%
Easy Table,0.20,0.03%,99.97%

This is a great example how crazy scores fail to show real speed improvement. It’s milliseconds that count!

PagePipe.com Pingdom results:
714 milliseconds. 22 requests. 910k page weight.

  • Cheap shared hosting: GreenGeeks.
  • No paid or free CDN.
  • PHP version:  7.4.
  • No paid plugins or themes. You can do it, too!

PS: Think we’re cheating with homepage numbers. OK. Maybe. How about this very article’s load time – curious? Here are the speed numbers: Performance grade: B 85 (what???), Load time: 612 milliseconds, Page size: 406.9k, Requests: 29, Tested from San Francisco USA by Pingdom.

We decided to run a test on WebPagetest.org. This produces a homepage worst-case scenario (1.179 seconds). Pingdom being best-case results.

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

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

Is this homepage beautiful?

Well? Not beautiful perhaps. But it’s fast. It focuses on usability first. Site goals are the foundation for decision-making. Improve branding and expressive aesthetics can happen later. Those costs money – and always slow down the page. The page needs to prove itself with results first. Then formalize the graphics. Or maybe leave it “as-is.”

Most heavy plugins can be substituted with faster ones – or eliminated. Plugins that cause global site drag can be selectively deactivated.

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.
As of today, we give up counting. There’s just a lot. More than 80 thousand 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.

Too weird.

Should you ever use a slow image slider on your site?

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

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. Our thinking is more unconventional. Many will probably mention, “all clients want a slider on their home page.” (Really?) 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.

How good is good enough?

We’ve written before about the audience expectation for wait time. Here’s a quick summary:

Usability studies established how long people expect “machines” to take. Passing seconds alter human perception. These human expectations have not changed for over 30 years.

Sub-second page loads have the illusion of instant response. This is often achievable on the web under excellent and pricey hosting conditions. Or use cheaper speed strategy and build a fast site – even on shared hosting.

A one-second page load, or page change when clicked, yields a seamless flow of thought. This meets an ideal criterion of having the user be “in the flow.” Changes are not noticed thus causing no distractions.

After 10 seconds of waiting, attention begins to wane. This is the point where users will bail out off a page. They may begin another search or hit the back button. At 11 seconds, the “visitor” is usually gone for good. Only the die hard who arrived with an exact purpose – or knows the value of the website content – will hang on – maybe? But at the least, it’s still annoying and frustrating.

We’ve suggested a WordPress standard of a two-second, load-time goal or performance budget. Especially for Google’s mobile-first indexing. This is for sites using low-cost shared hosting. It’s not perfection but it’s “good enough.” We’ve proven it’s possible.

Do you need WordPress search enhancement? Why?

“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 – Mikko Saari

Search Enhancement
Myth: Plugins can increase the power and relevance of your searches to users.
The most common recommendation is Relevanssi plugin. But our comments here this pertain to any search field enhancing plugin claims.

Read why the Relevanssi plugin author says not to use this particular plugin any more:

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 long ago. (100,000+ installs, 235k download size). 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. It adds 10 to 19 milliseconds to load time. Big deal. It’s seems another benign plugin taking up space.

We’ve never had a circumstance where WordPress search wasn’t enough. And even sometimes impressive. We use it all the time to find obscure content on PagePipe. We know WordPress “search” has improved over time.


The WordPress search is much maligned. But it’s not justified.

Site search function is often overstated in importance. Follow the herd? We often don’t even use the WordPress default search field. For a small site, it indicates you site is bloat and needs a “helper” to find content. A potential indicator of bad UX.

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. PagePipe.com 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 – Pingdom.com

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 – Pingdom.com

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 – Pingdom.com

Contact Form 7

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

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

Load Time: 90 milliseconds

*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%


Selective plugin activation is your secret mobile-speed weapon.

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.

★ ★ ★ ★ ★
Load Time: 30 milliseconds


Plugin Organizer

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

and another:

WP Asset CleanUp (Page Speed Optimizer)

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, SpeedSwitch 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 SpeedSwitch.

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


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

Load Time: 110 milliseconds

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
FunnyOrDie.com Videos, WordPress 3.0
Imgur Images, WordPress 3.9
Instagram Images, WordPress 3.5
Issuu Documents, WordPress 4.0
Kickstarter Projects, WordPress 4.2
Meetup.com 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
WordPress.tv 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″]https://youtu.be/WQE2nCaihNQ[/embed x] (remove x’s)

Achieving oEmbed with Plugins

Embedly plugin

Load Time: 140 milliseconds

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

Load Time: 20 milliseconds

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.

ShortPixel plugin optimizes PDFs.

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 http://www.verypdf.com/online/free-pdf-compress-online.php >

Do lightweight form plugins even exist?

We do not like multi-function plugins claiming to do everything imaginable. That’s sure trouble. For speed and fast results, we prefer purpose-built, lightweight, single-function, no-setting plugins. We call these discrete plugins. They need no operators manual, tutorials, or explainer videos.

Form-builder plugins claim you won’t need a developer to create your jazzy form. Uh. That doesn’t sound realistic. They say their plugin takes minutes – not hours- to set up. Get serious. Not a task for newbies.

For example: Do a Google search on the phrase “form video wp YouTube.” How many hit results do you get – not mere blog posts – only for videos?

About 249,000,000 results. A quarter of a billion videos. Ugh!

Now try: “Super Simple Contact Form” plugin video tutorial.

Google results: None. Zip.

What? No video tutorials? Is it that junky?

No. It’s that good.

Here’s why: Discrete plugins require zero configuration settings. There are no options at all.

Super Simple Forms plugin is so simple it doesn’t activate jQuery or Ajax libraries. Those are common coding crutches for form plugin developers. Two of our favorite themes don’t activate those script libraries: Astra and GeneratePress. For a theme programmer to avoid that means awareness of the speed cost. But add one form plugin like Contact Form 7 – and it activates both libraries globally. That’s on every page and post of the site. Even if there is no Contact Form 7 shortcode.

Ajax alone slows down pages by 436 milliseconds.

REFERENCE: https://pagepipe.com/ajax-slows-down-wordpress-popular-posts-plugin/

Customizable plugins spell trouble for speed. When you hear the words, “smart plugin,” it’s a red danger flag of technological quicksand.

Form plugins are more than mere contact form plugins. They go beyond contact forms with a drag-and-drop builder for surveys, quizzes, and more. They must communicate with server databases like MySQL. With this type of plugin you create:

  • contact forms
  • surveys
  • quizzes
  • registration forms
  • payment forms
  • purchase forms
  • email marketing forms
  • calculator forms

You can build anything you imagine? Someone save us!

Now try and remove a complex form plugin. You find it’s addictive. It’s not removable without severe withdrawal. It leaves trash clogging your database.

Not all plugins are shiny.

This is one case where we recommend enlisting a third-party and their expertise. Offload the plugin overhead from your shared server to their super-fast one. Let them do the babysitting – and have them incur the learning curve and cost of speed.

Wondrous form plugin pliability is a problem. Multi-function, all-purpose plugins are complex and heavy – and slow down host servers.

Being one of the FASTEST WordPress form builders on the market is hardly a claim to fame. It’s like saying you won a turtle race. Big wow!

And… is there a learning curve? Think about it. Complex and bloated? What would you expect?

And when they boast: “We’re one of the most SEO friendly contact form plugins.” Really? Sorry forms have little to do with SEO. So please don’t make that false claim of benefits. Ridiculous.

We don’t have a magnificent suggestion for FORM plugin substitutes (other than simple contact forms). We have a blog post recommending using Mailchimp‘s external landing page tool. But what about those poor site owners who insist upon a sign-up form. One nested within many steps of conditional logic?

It seems like Formidable Forms, Gravity Forms, and WP Forms are the main options. Formidable Forms has conditional logic options – as do others.

Conditional logic allows setting rules which cause your processes to change. It focuses on an intelligently designed workflow showing what users need to see next. Need – or want – to see? Sounds like delightful fun for puzzle-solving programmers. But the common human being? Run while you can. Find a workaround. Be creative.

Get together your pals and family, ask them some product questions. Ask this ad-hoc focus group if they’d like a particular form feature. The consensus will be “yes.” They lie rather than admit they don’t know. They don’t want to look foolish or inattentive. So if someone says, “Users need this.” Watch out.

What are our recommendations about these monstrous form plugins from a page speed perspective?

Anytime you use conditional logic, it requires server processing and storing data. Often the plugins need frequent checking for database changes and use counters. All this activity slows down the server. How bad? Well, that depends upon the complexity of what you’re doing.

All form plugins mentioned above are big downloads. Here are their decompressed sizes plus a couple of more for comparison:

NOTE: Paid plugins aren’t risk-free and better than free. Pure myth.

Plugin package sizes correlate to slowness. Complexity translates into package weight (aka code bloat).

Some of these forms incorporate reCaptcha by Google. Not good.

REFERENCE: https://pagepipe.com/how-google-no-captcha-captcha-slows-down-your-mobile-site/

For a weight comparison, WordPress 5.6.1 weighs 52 megabytes decompressed.

Our recommendations about complex form plugins – if you must use one:

  1. Don’t put the form on every page. Isolate it to one page and selectively activate the form plugin only there. That keeps the weight from loading globally. Use a text or image link on your pages and posts to take people to the form (contact page). Keep it simple. Especially for mobile users.
  2. For selective activation, we recommend this old but wonderful plugin called Plugin Logic (14,4k download): https://wordpress.org/plugins/plugin-logic/
  3. See if you can dismantle the plugin. Analyze your business’s most needed features. Will those make you more profitable? Find free discrete plugins or lighter plugins that do that one function. It’s better to install many lighter plugins than one heavy one.

Millions of WordPress websites install these form plugins. Don’t be seduced. Popularity is not a measurement of speed quality. It’s a measurement of Herd Behavior.

Herd behavior is when a group of individuals act collectively without centralized direction. Herd behavior occurs in animals in herds, packs, bird flocks, fish schools, as well as in humans.

Individuals reduce their personal danger by moving close to the center of the fearful group. Thus the herd appears as a unit moving together. But its function emerges from the uncoordinated behavior of self-serving individuals. It’s fear-born irrational panic.

Characteristics of escape panic include:

  • Individuals attempt to move faster than normal.
    People choose a popular plugin in a compulsive rush. It’s akin to non-thinking impulse buying. “6 million active installations can’t all be wrong.” Except when they are wrong.
  • Individuals display a tendency towards mass or copied behavior.
    “Hundreds of blogs recommend this plugin as an essential plugin.” The written source is an advertising affiliate benefiting from the herd’s bad choices.
  • The herd overlooks alternative or less used choices.
    Uninformed buyers beware.

Some site owners accept a plugin but without protest. They don’t do any significant critical plugin analysis or research. This is due to the majority of WordPress site owners having a similar mindset. It seems less risky to follow the herd.

For example, many people are tolerant or welcoming, of widespread Google policies. Don’t accept dogmatic nonsense.

Bounded rationality is a decision-making process. Limited by:
1) the supposed ease of managing a problem
2) cognitive dissonance
3) the perceived deadline

Decision-makers seek a satisfactory rather than an optimal solution. Humans don’t undertake optimization with value analysis. Instead, they choose an option that fulfills their adequacy criteria. They choose the cruddy popular plugin.

Cognitive dissonance occurs when a person holds contradictory beliefs, ideas, or values, and is typically experienced as psychological stress when they participate in an action that goes against one or more of them. Wikipedia

Even with the correct knowledge, social pressures convince adopting an alternate, incorrect view.

So what contact form plugin do we use on PagePipe?

None. We use encrypted email text links. For signups, we use free landing pages offloaded to Mailchimp remote servers. Try signing up and see.

Where is the missing WP Super Simple Speed plugin?

The missing WP Super Simple Speed plugin is 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 staleness of 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:

Will minification mess up 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 file 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 Pingdom.com 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: 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 best-practices tricks. 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. http://www.minifycss.com/css-compressor/ 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 152k
Active installs: 1 million+

Better WordPress Minify

Active installs: 60,000+
Zip archive: 655k

Speed Booster Pack
Active installs: 30,000+
Zip archive: 230k

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 Lazy Load by WP Rocket plugin which has no site drag at all – a weightless plugin.

Don’t slow down your site with a broken link checker plugin.

You’ve read it a thousand times.
“Broken Link Checker is the best broken link checker plugin for WordPress.”

Not any more.

Who recommends Broken Link Checker plugin? Why many WordPress blogs do. The popular plugin seems great since with over 700,000 active installations. It does schedule monitoring and testing of all internal and external links on your site. It’s sniffing out broken links. Sometimes, around the clock checking.

This plugin monitors links in your posts, pages, and comments – and detects links that don’t work. If it finds any broken links. Then it notifies you from your WordPress administrator dashboard – and by email. It sounds pretty cool. But, it’s a round-the-clock vigilant sentry. Hyper-vigilant. It’s looking for unreal or inconsequential exaggerated dangers.

And dang, it’s a heavy plugin. The download zip file weighs a massive 1.0 megabytes. That’s an indicator it’s a multipurpose plugin. We don’t like those kind for speed.

Broken Link Checker is often blacklisted on managed WordPress hosting. Why? It works continuously in the background round the clock. Monotonous hitting on the server with repeated database requests. This causes high server resource usage – and overload. The server then slows down and the load time of your pages slow to a crawl. On shared hosting, it slows down everyone else site, too.

Broken links create a bad user experience. Annoyance with delays and disappointment the content is missing. It’s sloppy and diminishes your site credibility. Your site feels abandoned or stale.

So Broken Link Checker is banned on hosts like Presidium, WP Engine, and GoDaddy. They immediately remove or disable the plugin without your permission. Forbidden plugin.

OFFSITE REFERENCE: https://servebolt.com/articles/these-plugins-slow-down-your-wordpress/

The goal of a broken link checker is preventing “404 Page not found” browser errors. A broken link, also known as a dead link, is a link on a web page that no longer exists anymore. Avoiding 404 redirects helps speed up your site. The browser is waiting or hunting for a connection to a non-existent web asset. There are several reasons broken links happen:

  • The external website is offline.
  • Your link is to an old deleted or moved page of a site.
  • Your visitor didn’t type the site URL right.
  • The website’s permalink structure changed.

So what’s a better solution for speed?

First, you don’t need to leave the plugin “on” all the time. Only activate it when doing testing. But most people forget and “leave the lights on.” That wastes resources. What would your Dad say?

But an even better idea is using a lightweight plugin introduced in 2020.

★ ★ ★ ★ ★
Link Finder

18.6k gzip download file
Load Time: 380 milliseconds

Compare the file sizes of Broken link Checker 1 megabytes to Link Finder 18.6 kilobytes. Hmm? Which one will be faster? The tiny one or the big fat one? Go ahead. Guess.

Link Finder plugin helps you speed up your website by avoiding redirects. That in theory improves your search engine ranking. SEO benefits are nothing compared to annoying visitors to death. Link Finder is an understandable and lightweight plugin. It helps you find and repair broken links throughout your website.

To not affect the speed of your website, Link Finder does not perform active monitoring. Use it as a regular manual tool to check for broken links. Or after changing permalinks or moving your website to a different domain.


Have we tried Link Finder on PagePipe’s 2,000 links? Yes. Twice. We had fixes the first time. But our second experience was a disaster. Our guess is since the link database was so clean, the plugin took off processing like a rocket. We triggered a server resource overrun on GoDaddy servers. And taken offline temporarily. Not cool.

Oops! Shutdown.

Then the site locked up. In the end, the fix to view and edit our blog again was resetting our office router cache. (That’s right – unplug it for 10 seconds). And clear the browser cache. Somehow our IP address became a suspected attacker because of the flurry of activity. Very puzzling. But we know what to do next time.

Which Cookie Consent plugins are slowest?

Your browser stores cookies. They enable a site to ‘remember’ little bits of information between pages or visits.

Cookies personalize the web experience. Some cookies collect data across many websites, creating ‘behavioral profiles’ of people. These profiles influence what content or advertisements to show you. Requiring websites to get consent gives web visitors more control over online privacy. In theory.

Cookies are nothing new. Because they always work in the background users weren’t aware of their existence. They are text files of data that identify:

  • you as a user
  • your IP address
  • gender and age

Websites collect this information. They use it to create inferences about their user base and track them with retargeting ads.

BuiltWith says 29.3 million websites use Google Analytics. That is 8.4 percent of the 348 million websites tracked in its database. Google Analytics uses cookies.

Facebook Pixel is a mega technology. It’s used by at least 5,004,384 websites on the Internet. It also uses cookies.

Because of Facebook and Google, average people are more aware of their personal data. And its ease of accessibility.

In 2018, the European Union enforced the General Data Protection Regulation (GDPR) over websites. Now when we load a website, we are often asked to allow cookies, deny cookies, or adjust cookie settings.

This is annoying and an impediment to a good user experience.

According to the GDPR, end-user consent should be valid, freely given, specific, informed, and active. The lack of enforcement of obtaining lawful consents is a huge challenge. Or should we say an impossible challenge?

The Big Tech corporations, i.e. Google, Amazon, Facebook, Apple, and Microsoft (GAFAM), use methods, raising doubts about the lawfulness of the acquired consent.

Cookie Consent is a popup screen-lock. It’s locked until you press a button indicating you accept cookies. Tracking cookies are then placed in your browser cache.


What happens if you don’t accept cookies? If you refuse to accept cookies, websites don’t allow you access to their content. Simple. But lame.

Cookie Consent is a negative barrier to a good user experience. They’re intrusive and ugly. Cluttering screens. They also slow down your website. Some plugins are worse than others. We’ll tell you which those are.

Who needs GDPR Compliance? Here’s what other technology blogs claim:

  • If you run a WordPress website and EU visitors can access it, your site needs to be GDPR compliant.
  • If you take advantage of using a cookie, or other tracking integrations like Facebook pixels or Google Analytics, etc.
  • If you use forms like Contact 7 to collect users’ data, you need GDPR compliance.
  • If you use MailChimp or other addons to save users’ data, you need this GDPR compliance support.
  • If you use any communication service like live chat or support help desk for your site visitors.

So everyone and his dog thinks you need cookie compliance.

Do you have to put a cookie warning on your website?

There are no specific federal US-based laws when it comes to Cookies. Some state laws.

Where can you find out more about the EU and UK laws about cookies?

You’ll find details about EU and UK regulations like the Cookie Law on the European Commission’s site. And the UK’s PECR on the Information Commissioner’s Office site.



Many plugin authors got on the GDPR/Cookie Consent gravy train. The result: The introduction of over 44 plugins. Do they help site owners “comply” with Government-imposed regulations? There are many WordPress cookie plugins available. They provide very intrusive modal popups or are often too complex to configure.

How to know that you need GDPR Compliance?

  • If you have visitors from the EU or potential to have visitors from the EU.
  • If you use browser cookies or tracking pixels for analytical purposes
  • If you use any drip marketing strategy like MailChimp or other third-party plugins to save users’ data
  • If you use Live chat services to communicate with your website visitors
  • If you use forms like Contact 7 to collect users’ data, you need GDPR compliance.
  • If you want to enhance the authenticity, authority, and general trustworthiness.
  • If you use any of these services, you need cookie consent:
    online CRM systems (HubSpot, Salesforce, SAP, Zoho, etc…)
  • inside online email marketing services (GetResponse, Mailchimp, ActiveCampaign, etc…)
  • inside online support systems (Zendesk, Freshdesk, etc…)
  • other SAAS services

Uh? Why didn’t they just say “every website on the entire planet?”

The Really Bad News:




Weasel Words plugin creators use:

  • We cannot guarantee any conformity with the law, which only a lawyer can do.
  • We are not attorneys.
  • We are not liable for any content, code, or other errors or omissions, or inaccuracies.
  • This plugin provides no warranties or guarantees.
  • Nothing in this plugin, therefore, shall be considered legal advice, and no attorney-client relationship is established.
  • Please note that in some cases, depending on your legislation, further actions may be required to make your WordPress website compliant with the law.
  • The use of this plugin does not, by itself, ensure compliance with legal requirements related to cookies.
  • Implementing this plugin will NOT automatically make your website in compliance with the EU cookie law.
  • This plugin can only help you to meet compliance requirements. You are the one who is responsible for making sure all the compliance requirements are met.

They have to be kidding. So what good are these cookie-consent plugins anyway?

Many WordPress cookie consent plugins make boastful claims:

  • Easiest or simple
  • Most Effective
  • Popular
  • Most compliant with privacy laws
  • well-supported
  • 100% free
  • light, elegant and powerful
  • avoid legal risks
  • mature and trusted

Few of these are true or provable facts.

These plugins are supposed to help us comply with data privacy laws and regulations like the following:

  • GDPR: The General Data Protection Regulation (European Union)
  • General Data Protection Regulation (GDPR) is a European regulation to strengthen and unify the data protection of EU citizens.
  • PIPEDA: The Personal Information Protection and Electronic Documents Act (Canada)
  • The Personal Information Protection and Electronic Documents Act (PIPEDA) is the federal privacy law for private-sector organizations in Canada.
  • CCPA: The California Consumer Privacy Act (California, United States)
  • The California Consumer Privacy Act (CCPA) is a bill intended to enhance privacy rights and consumer protection for residents of California, United States.
  • AAP: Australia’s Privacy Principles (Australia)
  • Australian Privacy Principles (APPs) establish standards for the collection and handling of personal information.
  • LGPD: The Brazilian General Data Protection Law (Brazil)
  • The Brazilian General Data Protection Law (“Lei Geral de Proteção de Dados” or “LGPD”) is a new legal framework for the use of personal data processed on or related to individuals in Brazil, regardless of where the data processor is located.
  • DSGVO, CNIL, PECR, DPA, and other cookie law, data protection, and privacy regulations
  • Cookie plugins only partially implement the legal requirements or advised behavior. That means you still bear a risk. Without a serious look at the law, you won’t know until you get a warning in your mailbox. But will you get a scary email? We don’t think so. We’ll explain why soon.


“Any businesses operating online and within the areas of the European Union or European Economic Area must comply with these rules or face severe penalties.” That is the threat. Is it enforced? Does “the law” have teeth?

From May 25, 2018, all companies with EU citizens as customers who are visiting their website, regardless of the location of the company itself, need to abide by the GDPR rules when handling their personal data.

They have to be joking.

There are 255 million active websites on the internet. The rest are parked domains – like over a billion empty sites.

How many have WordPress cookie consent plugins installed: 692,540 sites.

That is less than half a percent. About a quarter of 1 percent of active sites. Insignificant compliance.

Information covered by GDPR includes names, user IDs, emails, addresses, contact details, web analytics, IP address, cookies, and other special categories of data (e.g., sensitive, genetic, health, gender, biometric).

Fines of up to $20 million or up to 4% of the annual worldwide turnover of the preceding financial year, whichever is greater, can be applied if not following their dogmatic rules.

Everyone who does internet business in Europe is liable. And at risk even with a fancy cookie consent plugin.

Absolutely ludicrous and unenforceable for most websites. There isn’t a police force or judiciary big enough to make this happen. The only thing that will guarantee compliance is fear.

So who is getting nailed by the huge threatening fines?

Since its start, GDPR has issued only 800 fines.

Here are the worst fines – and only two fines – for cookie consent violation:

1. Amazon — €746 million ($877 million). Did they pay? Not yet. The Washington Post says Amazon “rejects the findings and plans to appeal.” Amazon’s company valuation is $1.7 trillion.

2. Google – €50 million ($56.6 million) They appealed. France got the money. How much is Google’s net worth? 1 Trillion dollars. Do you think they even blinked at that fine? It was a digital tax.

No other fines imposed had to do with cookie consent laws. All others were over data breaches – crummy security that leaked consumers’ personal information to bad guys. GDPR covers a lot more than mere cookie consent.

But for Amazon and Google, they had targets on their backs. These got hit by government-imposed digital taxes.

How many billions are you worth? Are you a target for fines? Seriously?

Do you need to comply and ruin your web pages? Think about it. Most have decided it has no teeth for small and medium-sized businesses. It’s odd. They’re the ones most motivated to install these lame cookie consent plugins. Fear is a great motivator.

What are the worst cookie-consent plugins for speed? The ones that will most slowdown your website globally (every page and post).

The worst slug is WordPress Real Cookie Banner. Almost 200 milliseconds. That is 10 percent of the performance budget.

Here are the speeds of all others compared and ranked from slowest at the top to fastest at the bottom:

WordPress Real Cookie Banner,194.40,40000
easy Cookie Consent,44.90,10
GDPR Cookie Consent by Supsystic,39.40,500
GDPR Cookie Compliance,24.20,200000
WP AutoTerms,15.40,100000
EU Cookies Bar for WordPress,14.50,2000
Zone Cookie,13.80,10
GDPR Compliance & Cookie Consent,13.50,30000
PureDevs GDPR compliance,13.40,10
WP GDPR Cookie Notice,12.50,700
DW GDPR,12.40,20
GDPR Cookie Notice,11.80,200
Ultimate GDPR Consent,9.90,40
Simple Cookie Control,8.90,300
Cookie Notice & Consent Banner for GDPR & CCPA Compliance,8.10,2000
Cookie Consent for GDPR/CCPA,7.40,100
Responsive Cookie Consent,6.50,3000
GDPR Tools,6.30,700
GDPR Cookie Banner,6.30,10
GTM Cookie Consent,5.80,10
Better GDPR,5.60,10
Divi Cookie Consent for GDPR,5.20,1000
GDPR & CCPA Cookie Consent ,5.00,3000
Awesome GDPR Compliant Cookie Consent and Notice.060,4.90,300
Simple Cookie Notice,4.50,300
Hayona Cookie Consent,3.50,100
Total GDPR Compliance Lite,2.90,100
kjrocker Cookie Consent,2.80,10
EU Cookie Law for GDPR/CCPA,2.60,100000
WP Cookie,2.30,20
Implied Cookie Consent,1.60,400
Zestard Cookie Consent,1.60,10
WP Cookie Consent,1.40,100
GDPR Cookies pro,0.80,700
Cookie Maestro,0.80,10
GDPR CCPA Compliance Support,fail,3000
Total installed,,692540

Our recommendation for fastest speed and best UX:

Don’t use any Cookie Consent plugin – unless you make as much money as Google or Amazon.

Do this cookie test process:

“Right-click on the website and click on Inspect. This will open up the Chrome developer console. From the developer console, go to the Applications tab, and then expand the Cookies dropdown under the Storage section. Under Cookies, you can see the domains from which the cookies are being used on the website.”

Sebastian Thalhammer wrote:

Your summary is quite spot on: Don’t use any Cookie Consent plugin – unless you make as much money as Google or Amazon.

Which is certainly something I’ll agree with. My experience as a digital strategist is however, that clients are full of half-knowledge on the topic and insist on having those things up and running. I tried to convince them otherwise in the past but soon started to realize that this isn’t a fight I want to fight (unpaid). 

I’ll advice them on the downsides and usually that’s about it. 


487-milliseconds extra mobile speed for WooCommerce with selective activation.

Selective activation of plugins is a favorite strategy for speeding up WordPress websites. Now you can use plugin skills to speed up WooCommerce e-commerce sites – without coding!

Selective activation in a nutshell:
Many plugins slow down every single page on your site, even if that plugin is only used on specific pages. That we call site drag – or global loading.

For example, installing Contact Form 7 plugin adds 37k of weight to every page. Even if you only have one page with a contact form. Or for that matter, no CF7 shortcode  used anywhere. Weird unpublished specification. But lots of plugins don’t tell you the speed cost of adding their plugin. It’s not required for plugin submission. Summing all plugins site drag is the aggregated plugin overhead – a liability.

Selective activation speeds up your website. It allows you to deactivate a plugin where it’s not needed.

WooCommerce is the most popular e-commerce plugin for WordPress. It’s clunky and one of the slower-loading plugins we’ve tested. It adds at least 250 milliseconds of unneeded global weight – and slowdown your site.

Before August 2019, attempting WooCommerce selective deactivation resulted in the white screen of death. Yes, it would break your site. But a plugin code revision changed that. And it is now possible to selectively activate WooCommerce. Thanks, Automattic!

Below, we show you steps to speed up WooCommerce using selective deactivation. You can use a control panel to make the magic happen. Entering the page or post URL activates or deactivates any plugin you choose. You can turn extra drag off-or-on for specific pages or posts on your site.

SpeedSwitch Plugin

SpeedSwitch is the exclusive PagePipe plugin we use for this job. It’s available for purchase through SpeedHospital.

1. Install SpeedSwitch

After downloading SpeedSwitch, install it by uploading the zip file from your computer.

2. URL Set-Up

Find the plugin settings in the “Plugin” sidebar menu. You’ll see a list of your activated plugins, a radio button for active/inactive and a box to add URLs.

Scroll down to the WooCommerce plugin. We want Woo to remain active by default, so select “Inactive on,” then add the URLs where Woo is not necessary. In our example, that’s the homepage, blog archive pages, about page and a few others.

3. Test Results

We use SpeedXRay to assess the speed overhead of plugins (and themes). Here are the example results from our test site.

“Twenty Twenty Theme”, 36.6ms
“WooCommerce”, 282.6ms
“Site Reviews”, 189.9ms
“Elementor”, 91.5ms
“Elementor Pro”, 78.6ms
“The SEO Framework”, 53.1ms
“Query Monitor”, 32.6ms
“Classic Editor Addon”, 30.6ms
“WooCommerce Stripe Gateway”, 29.3ms
“WP Affiliate Platform,   19.6ms
“Disable Cart Fragments Littlebizzy”, 12.1ms
“Disable Gutenberg”, 7.6ms
“Optimize Database after Deleting Revisions”, 6.7ms
“Universal Star Rating”, 4.8ms
“Classic Editor”, 1.9ms
“Post Type Switcher”, 1.6ms
“Total”, 1337.6ms

WooCommerce is the heaviest plugin on the list. It’s responsible for over 20% of the cumulative plugin load time.

Deactivating other Woo-related plugins will save over 300 milliseconds.

NOTE: Free Disable Cart Fragments plugin isn’t in the WordPress plugin directory. But you can get a bootleg download link from us. Sign up for the free WooComa download below. We include the link in the PDF content.


In-Browser Timer Test Results

SpeedXRay is a useful speed-assessment tool. But real-world load times are what count most. Here are speed results from our in-browser timer test:

With WooCommerce: 1.4 seconds
Without WooCommerce: 920ms

You can save about 500 milliseconds by deactivating the WooCommerce plugin. That’s significant when you’re aiming for sub-2-second load time. It’s 25 percent of your performance budget.

Did you know? You can also apply this effective technique to other plugins. Learn more about SpeedSwitch.

Matt Stern

About the Author
Matt Stern is a web designer and sometimes writer based in Southern Oregon. He designs and builds websites and landing pages that convert visitors into customers.

Learn more at SternDesign.co

Learn more and get your free WooComa download.

What are the fastest high-speed tricks for mobile image optimization?

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.

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

“Hero image” is a term used in web design for a specific type of web banner. A hero image is a large banner image, prominently placed on a web page, generally in the top, front and center.

A large hero image (usually a WordPress featured image) on a posts is irrelevant or generic if it doesn’t help move site visitors towards a conversion goal. There are only two critical performance metrics: sales lead generation and improved engagement (stickiness). Visitor engagement is indicated by click-through, page dwell time, and multiple visits. These are the inverse of high bounce rates. Information is no longer scarce – attention is scarce.

As content has grown increasingly abundant and immediately available, attention becomes the limiting factor in the consumption of information.

A high bounce rate means we’re attract the wrong people (traffic) – unqualified leads. The decision to leave a page is an impatient and intolerant “snap judgment” from interpreting subconscious relevance cues. These include typography, speed, readability, color usage, images, and symbols. These combined together are sometimes referred to as branding or design. In the end, it’s nothing more that a feeling of being in the right place.

If it takes the user too long to locate something, they will find it through another application. This is done, for instance, by creating filters to make sure the first content a viewer sees is relevant, of interest, or with the approval of demographics.

A large hero image is positioned in the most critical place to influence a visitor’s stay-or-go decision. It’s usually the first thing a viewer sees. It becomes a critical device for attention and engagement. It’s our responsibility to make sure the hero image is relevant to the user – it’s not a job for the viewer. Otherwise the image becomes attention pollution.

What are you providing by serving up a large featured image? Is it merely a cue to content? Or graphic signage to make pages appear different and less boring? Does the use of a large image communicate a message worthy of the longer load time? It the page real estate wasted?

What is really needed are systems that excel at filtering out unimportant or irrelevant information.

Users have words and phrases in their mind that will cause them to click on a link. We call these trigger words or cues. They are essential to good navigation. Users want to get to a site’s content as quickly as possible. For this, they use information scent. Good information scent give clues and implications that they are hunting and searching in the right direction. They “feel” they will find the solution to their need or problem soon. This is also called findability.

Is herd mentality affecting hero image choices?

Just because your competitor is using stock hero images in the banner of every blog page doesn’t mean it’s a good thing. The herd majority is presently doing this page design treatment. It becomes invisible or transparent. It is ignored. Why?

Milestones during typical page loads:

2.5 seconds for the headline overlay to appear.

3.5 seconds for the background hero image to appear.

4.5 seconds all critical elements are on page.

6.5 seconds for the page to finish rendering. Note: Lazy loading Facebook “garbage / widgets” during that 4.5 to 6.5 seconds window is the most common delay. That’s what takes so long for complete rendering. Can you hear our contempt for Facebook’s speed apathy!?

Double those times for mobile screens.

When you place text on top of photographs, you usually ruin the image aesthetics and the text readability simultaneously. This happens and is bad practice – but part of popular WordPress theme rigidity.

The background image (hero image) is sometimes much bigger than needed for mobile because of the desire to conform to large-screen, retina-display standards. This poor image decision most likely is made by a designer concerned first about their portfolio. Not mobile experience. A mobile audience doesn’t use these kinds of screens – let alone can afford them.

We need to limit the number of page design elements that compete for visitor’s attention.

The size of a typical hero image on sites is around 1920 pixels x 1280 pixels and is scaled to size in the browser window. HTML code downsizing means the browser must calculating page space on the fly – a bad practice for speed. It causes a screen-rendering delay as “the machine” stops to think. And only a small portion of the big image is actually seen. The Jpeg image can weigh above 400k! Optimizing a little bit more might knockoff 100k easily. WebPagetest.org agrees with us about that image-optimization assessment. But the reduction to 300k is still too heavy for mobile page loads.


Typical page layout with hero image.


Actual size 400k background image. The whole image isn’t used.

Much of what determines where people invest their attention is below the level of pure reason. Indeed, research suggests that one of the most important factors for gaining and sustaining attention is engaging people’s emotions.

Mobile screens may be just 320 pixels wide.

One source of large, free hero images is Pexels.com. They have classy, professional photography. A typical Pexel image download is almost 700k page weight and 2682px x 1782px dimensions. Resizing and optimizing helps – but is still not good enough for mobile design.

The takeaway: The fastest image to load is – surprise – no image at all. Next best is a repetitive image that is already cached in the browser. But that can get pretty Spartan and boring. For information sites, textual content is more important than images – unless images illustrate or demonstrate a point.

Since Hero images frequently fill the whole screen, it forces users to scroll to find the point of your website. Hero images are frequently eye-candy and don’t have relevance to the article or blog post. It takes work and thought to find the right stock images. So, there is often a disconnect. Instead, using a call-to-action linked with an image would make more sense. Or even a large signup form. Publishing a positioning statement about “who we are, what we do, and why you should care” is good communications strategy and good ideas, too.

Large background images add a large amount of weight to a page for very little actual gain. Any user whose screen is generally smaller than 1024 pixels will absolutely not see the background image. Small screens simply don’t have the screen real estate to display content and background images. WordPress now attempts to load an appropriately sized “backup” image based on mobile screen size. But we aren’t seeing results in speed testing yet.

A video placeholder as a hero image is a creative technique by making it seem like the entire hero image background is a video that can be played. It’s just a static image that if you click on the “play” button you get a video Lightbox that starts playing a normal-sized video for you. The idea though is that the “play” button is the bull’s-eye of the top portion of the home page. The way it is placed makes you really want to click on it. Then the video sells you on the product or service.

Moving the header hero image down the page for lazy loading is wise, also. But is it still a hero image? We don’t know.

Better hero images do the following:

  • Answer customer questions.
  • Highlight your value proposition.
  • Make an announcement.
  • Feature a service or product line.
  • Include a built in CTA button.
  • Have consistent branding.
  • Reduce customization for limited resources.
  • Make our best promise that we can keep.

Good hero images contribute to the following feelings:

  • Immediacy – priority access, immediate delivery.
  • Personalization – tailored just for you. Personalization is one of the most important factors in viewers choice to attend to one piece of information over another.
  • Interpretation – support and guidance.
  • Authenticity – how can you be sure it is the real thing?
  • Accessibility – wherever, whenever.
  • Embodiment – books, live music.
  • Patronage – “paying simply because it feels good.”
  • Findability – “When there are millions of books, millions of songs, millions of films, millions of applications, millions of everything requesting our attention — and most of it free — being found is valuable.”

What kinds of images get immediate attention:

The factors most highly associated with getting attention, in rank order, are:

  • The message/image is personalized.
  • It evokes an emotional response.
  • It comes from a trustworthy or respected source.
  • It’s concise.

Messages/images that both evoked emotion and are personalized are more than twice as likely to be attended to as the messages without those attributes.

Can studying Google Analytics web statistics influence design color choices? More ways than you might think. But first you have to know where you’re at. And where you’re going. You must know what is most important. What is valuable and what is not? To answer that you need objectives – goals for making good choices. Even for something as simple as colors.

You have a WordPress website. This imaginary site gets good traffic. Monthly, two percent of your new web traffic comes from Facebook. Almost nothing! Social media has failed. Everything reported is organic Google search results: 100-percent traditional. Imagine your information site receiving 20,000 unique visitors per month with 18,000 leaving in under 10 seconds. Most everyone plainly perceives they landed in the wrong place.

Perhaps the description underneath the Google search link misled them. Somehow, you didn’t serve the information they were hoping or expecting. They then reacted negatively by hitting the back button – and kept on searching. On the web, people’s behavior is impatient and intolerant.

Of your remaining new visitors, only 2,000 per month stay for 3 minutes to over 30 minutes. Those are the people who are engaged and interested. They read content because it’s perceived as relevant. They watch videos in hopes of getting answers to their problems. They may even do something beneficial like signup or buy.

What if Google Analytics tells us 60 to 70 percent of visitors use Apple iPhone and iPads? Those real numbers are whopping. The majority is mobile. Is that normal? Sometimes. It’s happening on many sites now.

Your imaginary home-page, load-time is under 4 seconds. That doesn’t seem so bad. But Google reports your most popular landing pages are averaging 6-seconds or more to load. That speed (slowness?) doubles into about 12 seconds on a mobile device. This wait is beyond the human 10-second threshold of pain. Attention wanders. That means viewer boredom, frustration, annoyance, and abandonment increases. Hmm? No wonder the bounce rate is high.

You have a big user experience problem affecting website profits. Speed is killing opportunity. Can color help solve this speed problem? Maybe.

Speed is primary to achieve mobile site goals. We have to get past that barrier and achieve an ideal 2-second load time. Yet, we need branding (decoration) that communicates to the right audience. Decoration adds page weight. Bloat occurs on overly decorated sites.

Alexa gives us demographic data that Google’s free service can’t provide. What if our marketing goal is to appeal to an all female audience? Not men. But Alexa indicates 40 percent of site visitors are male. Men are unqualified leads. How can we subtly tell men to get lost and not waste our time? How can we entice women to stick around? Can we filter sales leads with color? Can color be “weightless”? (Weightless meaning not adding any page weight or drag to the site).

OFFSITE REFERENCE: https://www.psychologytoday.com/us/blog/brain-babble/201504/when-it-comes-color-men-women-arent-seeing-eye-eye

An unconventional solution.

Women know when a female designs a website. If your audience is female dominant, you need the touch of a female designer. Men aren’t so perceptive.

The speed-and-decoration balance lies in one simple trick. We must discard photographic images – and all Jpegs for that matter. Instead, we must use solid-color, illustrative, PNG-image files. Not Jpeg format.

JPEG is the most widely used image type on the Internet. Of all websites, 70 percent use JPEG images. JPEG image compression exploits certain properties of our eyes. This allows for compression for smaller files. But they are rarely as small of files as illustrations.

We’ll demonstrate. 259k Jpeg vs 17k PNG.

Screenshot at 2016-08-08 20-08-40
Above: Typical banner Jpeg image, 400k, 1920px × 1280px, background image. Heavy for mobile bandwidth.


Above: Typical custom line-drawing header with reduced color numbers (hero-image substitute), 17k, 1100px × 259px. Much lighter. 17k vs 259k. Hmm? Which will load faster? Illustration always wins over photos for speed.

A PNG illustration banner or hero image consumes so few kilobytes because it’s visually simplistic. Visual complexity increases image file size. Therefore, consider using illustrations and graphics rather than detailed photographs.

But, you say, “They aren’t the same image! Is that a fair comparison?” Actually, yes, it is. Because they both communicate. An illustration is less complicated. It can focus the message with fewer details and fewer colors. This improves viewer attention. And speed!

That’s right. WordPress undoes your manual image optimization efforts. We use an offline image processor like Gimp or Photoshop for manual image production and optimization.

Few discover this hidden truth about WordPress automated image editing. It’s has an odd and strange ability to increase image files size slowing down speed. It only occurs if you use their photo editor to crop images. When it asks you to crop – “skip” it. That’s usually a better choice if the image is already sized. Uploaded originals are untouched when placed in the media library – unless you resize or crop such as an image thumbnail. Then things grow. Why? Who knows? WordPress looks the other way about this unreported speed problem.

Plainly, this upsizing strangeness isn’t a problem for most site owners or visitors. They don’t care. Otherwise, there would be millions screaming for a bug fix.

GIF is not an acceptable format for photos. JPEG is the better choice.

When you upload an image to the media library, WordPress core builds many mobile-size images for swapping on the fly. This is an attempt at a responsive mobile speed solution.

You as a site owner care more about image quality than the majority of your site users do. Image quality is way down the visitor-frustration list. Not significant. The number one complaint is slow loading pages being “the worst experience of a user’s day.”

Is Retina screen resolution important? There’s almost 1 billion active users of iPhone. And there are an estimated 300 million second-hand iPhone in use.

Retina display is a marketing term invented by Apple. Their primary goal is reducing eye strain when users read small type. Not improving image quality – a fortunate byproduct. It’s all about font-type readability.

There exist circumstances where images must be uncompromising. One is on portfolio sites. The other is with photography showing important product details. Both are instances where you’re selling something that depends upon good image representation. Images then are more important for buyer decision making. Product photo quality affects web profits. In all other cases, users aren’t discerning or are forgiving. They’d rather you build for speed and compromise in the image quality department.

Are you selling something on your site?

If you’re not selling, visitors only need to recognize what the color blob is. That is it. The caption is more important to users than photo quality. But often site owners neglect to use captions for better communications.

Building for Retina images is an exercise in futility.

When you *must* build for high-resolution Retina displays, there’s a superior way. Please read the article linked below. Remember to keep web goals in perspective. Some things don’t matter. Most web browsing today is on mobile devices. But mobile visitor expectation is low in many regards for type-font and image design. That doesn’t mean you’re justified in delivering garbage. But major image effort often has a puny return on investment.

We recommend WP Retina 2X plugin. Try it. Test it. But only if Retina-screen compliance is critical.

This novel plugin creates many new alternate high-resolution versions of your images. Another plugin feature is automatic detection of Retina displays. It then loads the high-resolution version of an image rather than the regular one.

WP Retina 2x serves up src-set images which pull smaller sized images off the server – and theoretically decrease bandwidth. – Ian Rance

Only 4 percent of site owners who install WP Retina 2X keep it. That’s a low-retention rate. It wasn’t worth the Retina-resolution hassle even when this plugin made image decisions and production painless. So there’s lots of variable screen sizes. Big deal. Retina-image preparation does NOT have widespread adoption by web designers or developers. It’s perceived a production annoyance (or non-feature) delaying site launch – and project payment.

These three offsite links below may help you make decisions. You have a design choice. You can workaround or ignore Apple-mandated techno-specs. We won’t tell.




For PagePipe’s site, the strategy is not using photography for large headers. We choose the alternative of building custom illustrations for reduced load-time speed. That means using 8-bit GIF and PNG with 2,000×1200 pixel images with reduced color palettes. Those files weigh just over 21 kilobytes.

Where we use featured JPEGs, they weigh under 200 kilobytes. It’s fortunate the big “hero” image is lazy loaded by the default theme.

But the fastest sites on earth have no images. Only a small number of site owners make that choice (about 10 percent).

PagePipe screengrabs are JPEGs. They’re optimized harder than WordPress recommends. WordPress saves images at a compression of 82 – which is the equal to a Photoshop 50. Why is this important? It makes the images pass the WebPagetest.org criteria – a real speed test owned by Google. It’s most used by professional performance engineers. Not Google PageSpeed Insights for commoners. PageSpeed insights doesn’t even measure page speed in milliseconds. It only produces a weird score. They let you kill yourself for a meaningless 100 A+ while your site still remains a slug.


We build all JPEG images to screen dimensions. We optimize offline with a 70-quality setting (or more when we can). We use free GIMP image processor. We avoid cropping online with WordPress. We save-for-web our 8-bit PNGs and GIFs with reduced color palettes.

We’ve only had one client request Retina-quality images. That’s Steve’s brother, Brad Teare. High-end art galleries using fiber-optic connections were his target market. Speed was a nonissue. But we built the portfolio for both large screen and small screen, just in case. The galleries asked how he pulled it off. A great compliment. People’s curiosity sparks a speed question, “How did you do that cool magic trick?”

When we have a choice, we choose ignoring Retina specifications. And Retina’s been around for awhile. We may change our policy in the future. But we doubt it.

An unconventional optimization example.

The PagePipe “Start Here” page contained an animated GIF. It wasn’t built to the recommended spec of 2000×1200 pixel dimension. Instead, it’s 1132×697 pixels. We let the browser stretch with math and mess with this image. This is bad practice. Dimension recalculation causes small speed delays. So why do it? Because not doing so would produce an even worse super-slow page. Abandoned by users clicking the back button.

We also ran the animated GIF through an online compressor squeezing it’s file size way down. This introduced tons of noise and artifacts into the animation. Do we care? No. Because it’s good enough for average users. It’s noticed by inspector-type personalities. But 80 percent of visitors (or more) are oblivious and unaware of best design practices.

Being perfect in-every-way has too high of cost in time and money. “How good is good enough” is a hard judgment call. Relax your tolerances and standard so you can work on what counts most.

PNG to JPG plugin
Active installs: 2,000+
Zip file size: 10k

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: WPFaster.com: 10 speed changes for $1,985. Do them yourself with free plugins.


  • How do I balance high-quality images/speed optimization?

That is a big question and it’s completely dependent upon your audience and your values as the site owner. For example, a portfolio site wanted quality above all else. The affluent audience viewed art on fiber-optic connections with large Retina screens. They also wanted images to still look good on small mobile devices. Those specifications let us know what solutions mattered and what methods to use.

  • So what is “good enough” image engineering?

WordPress is already built to optimize images to a good degree. Generally, you only need a plugin for optimization if you abuse the system. Like uploading digital camera or phone images. There are conditions where you will botch or thwart the system. The most common is using PNG format for photos. Use them for transparent icons and solid color signage like logos. Save those not as 24-bit PNGs — but rather as 8-bit PNGs. Normal images should be JPEG photos.

When we optimize a site, we often find gross heavy images uploaded to the media library as PNG format photos. They aren’t resized or optimized. Site owners don’t realize these won’t be automatically compressed like JPEGS. Original PNG images are not optimized by WordPress.

A huge file from a camera can be upwards of 10 to 15 megabytes. That’s large. You shouldn’t upload anything over 100k to 200k. That’s right kilobytes. Not megabytes.

WordPress only optimizes *resized* JPEG images like “medium” or “thumbnail” or “custom.” The original stays big and fat. Unless you have a plugin like Imsanity installed. It will then crop and resize the image for you when you upload according to the plugin settings.

Imsanity has a setting selection to convert all uploaded PNG to JPG. But if you upload transparent PNGs, they convert, too. That’s not good. So we don’t leave this enabled.

NOTE: Some WordPress sites can’t be backed up because the media library was so full of huge files. Even when those files weren’t used on pages. The bloated media library was in Gigabytes.

The handiest plugin for the retroactive repair of a bloated media library is PNG to JPG plugin. This plugin ignores PNGs with transparency and leaves them unchanged.

PLUGIN: https://wordpress.org/plugins/png-to-jpg/

The default WordPress compression for JPEG images used to be 90. That changed a few years ago to be 82. That’s the same as saving in Photoshop with a quality of 50. That number originates from the WebPagetest.org test conditions. That image quality will pass inspection. But that doesn’t mean they *resized dimensions*. The worst errors are from not sizing. So how do you determine that best size in pixels?

Usually, the largest size you need is the screen width for your dominant audience. Rarely is that larger than 2,000 pixels. More often, the page column width is something like 700- to 900-pixel width. If in doubt, set large image size to 1,000px. Full-screen to 2,000px.

Services like free Smush plugin, do not resize – nor do they do lossy image JPEG optimization. That is what you want. People assume lossless is best. It is not. It will only improve images by about 10 percent. Whereas lossy compression improves images by 70 to 80 percent smaller file size. To get that, you have to pay for the premium version. Use a free plugin instead.

Lossy compression is imperceptible change to the human eye.

Those can be huge images.

  • What size should I download?

No larger than 2000 pixels wide. But Imsanity will fix it if you upload a bigger file than that.

  • Do I then upload and let a plugin compress? (I don’t have access to Photoshop and looking for an easy/high volume solution)

Imsanity solves the resize and compression issues during upload to the media library. The beauty of Imsanity — besides being free — is it doesn’t use an external server API (wait time). And it does both resizing and compression using onboard WordPress features.

  • How do I handle the header image desktop vs mobile size?

WordPress chooses desktop and mobile images on-the-fly. Upload images sized for the recommended width in the customizer header section. For example, for Twenty-seventeen default theme header images, the dimensions are 2000×1200 pixels. The theme (core) will crop to those dimensions. Good themes do that for you.

WordPress stores 3 or more versions of your uploaded image on your server. They’re each sized in advance. WordPress decides which image size to load by the viewer’s device screen width. It’s smart.

  • Does lazy-loading below the fold images help?

Yes. It helps with perceived speed. The load happens later or delays. It’s especially helpful on mobile devices.

  • I’ve been uploading images through the Gutenberg editor inline (not to the media folder first, then selecting it in the editor – seems time consuming) – does this cause issues?

Sorry. We don’t use Gutenberg. We don’t know the answer. Few use the new Block Editor. Over 5 million site owners have disabled this non-feature. Many more don’t even know Gutenberg exists. They’re running older obsolete versions of WordPress. If you learned WordPress with the classic editor, keep it with the Classic Editor plugin.

Gzip compression helps mobile speed. Use it!

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: http://ismyblogworking.com/

But a reader, Erica Velásquez, prefers this faster Gzip test: https://www.websiteplanet.com/webtools/gzip-compression/

(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 Imsanity plugin 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.

Save the Internet from mobile WordPress abuse.

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 ebook about why Yoast SEO plugin is a waste of your time.

2Google 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: 97k

3Smush 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 ebook: WP Smush plugin doesn’t really help with speed.

The alternative we recommend instead:

300,000+ active installs, compressed download 52k

Read more about why here on PagePipe

4Sam Hollis then recommends growing your email list with an Aweber account (naturally – the author’s company) 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
100,000+ active installs, compressed download 1.3M

5HelloBar 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 ebook of faster form plugins. We recommend as a faster plugin alternative:

Simple Basic Contact Form
Active installs: 9,000+, compressed download 262k

8AWeber 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.

9WooCommerce 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 tested it. I doesn’t help speed. Period. 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. Note: Selective activation of WooCommerce white-screens the site. Bad news. 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. This plugin is unnecessary.

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 what works best. We’re suspicious. Is this an affiliate 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: 300,000+, compressed download 745k

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

IT’s somewhat fussy, but we recommend instead combining an alternative plugin:

Beacon Plugin
Active Installs: 2,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 refreshing it. 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’ 18 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.

58 Active Plugins Load in Under 2 Seconds

Below is a description and list of many plugins previously used on PagePipe. And the one we use today. Even with this many plugins, load time is under 2 seconds. 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 themes and plugins are free downloads from WordPress.org.

Home Page Specifications

Yslow grade 99 A

cache cleared 2 seconds
cache full 1 second

Shared Economy Linux Apache

CDN None

Page weight
cache cleared 129k
cache full 12k
Components 13

A few theme features we removed or changed:

1. All Google fonts were changed to Arial and Impact websafe fonts in the style.css file. Those are our company publication fonts used for PDFs and web pages. We deliberately chose identity fonts for speed. The Google fonts that were being called added one second to the page load time.

2. We removed Genericons by WordPress. They are baked into the WordPress twenty-fourteen 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 HTTP calls and bought us another second of reduced load time.

3. We tweaked the headlines and titles a bit for letter spacing. We made <h1> headlines be Arial bolded instead of the default Noto Serif “700” bolded font-weight.

h1 {
color: #3E5D58; 
font-family: Arial, serif; 
font-size: 30px; 
line-height: 1em; 
letter-spacing: -1px; 
font-weight: 900;

Requesting Noto Sans and Noto Serif from the Google cloud was adding about 1 to 2 seconds to the page load time. The trade off for branding wasn’t worth it.

Impact is our web-safe decorative display font and is expressive aesthetic which is useful for branding and directing attention. It should never be used for body text.

The body text is generic and ubiquitous Arial which is perceived as an utility font. Arial’s classic aesthetic (Microsoft’s pirated Helvetica) is transparent to the reader. It doesn’t get in the way of comprehension or scanning before viewer commitment to reading.

These common fonts aren’t special except for being fast loading. That’s why we chose them. We aren’t the first to build our identity around fast-loading websafe fonts. Read about how Ikea insulted the type world by using websafe Verdana for it’s corporate identity and web continuity. Cool rebels.

4. The theme appearance settings allowed for color changes of backgrounds and text. We installed classic colors – forest green (#3E5D58), black (#000), and white (#fff), color scheme. Works well for low-fidelity, flat images. Body text is #333 dark gray to reduce hard contrast and eye fatigue.

5. Thematic graphic elements tie things together. Clichés accelerate understanding. Limiting the site palette to three colors, also, made super, fast-to-load PNG graphics.

6. The stock woodcuts are from a collection by Ron&Joe. The rhino woodcut is custom art by Brad Teare. Woodcuts make for fast-loading PNG files.

7. We removed the Twenty-fifteen Post entry headers. These links weren’t valuable and were bad usability. Visitors would head in the wrong direction and not get the article they needed. We didn’t need to create confusion and frustration. We added the following code to the child theme CSS file:

/* Remove entire Post entry footer */
.entry-footer {
display:none !important;

45 Active Plugins Used on PagePipe.com

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!

Defines any page as 404-not-found error page. We use our sitemap page.

Advanced Tagline
This plugin gives the option to have multiple taglines for your website and display them at random or sequentially with each page view. We are taste-testing 9 different taglines (list shown below). They are randomly displayed when pages load. You can choose sequential loading if that’s your preference.

  • How to optimize WordPress mobile branding for page speed.
  • Optimize the opposition of page speed and web aesthetics.
  • Manage the eternal friction between mobile speed and branding.
  • Making WordPress websites feel right.
  • Consistent balance of speed and web aesthetics is just one UX puzzle among many.
  • Research about the seesaw balance of aesthetics and web speed.
  • Mobile marketing with WordPress.
  • Upgrading WordPress for speed.
  • Mobile-optimized WordPress Sites

WordPress Backup Plugin. This schedules backups and copies files to a remote location. We’re using free Dropbox file cloud storage.

We use Updraft Plus free plugin for backups and migrations now.

Block Bad Queries (BBQ)
Automatically protects WordPress against malicious URL requests.

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.

Broken Link Checker
We use a free online tool for link checking. WE disbale it after testing and repairs. It can slow down your server with requests.

BruteProtect allows the millions of WordPress theme sites to work together to defeat Brute Force attacks. It protects our site from brute force security attacks 24/7.

We no longer recommend this plugin. We use Limit Login Attempts Reloaded and set attempts to 17.

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.

Captcha on Login
Protects from login brute force attacks adding a captcha on login page. Also locks IPS after a specific number of login tries fail. Allows changing the default admin username from admin to whatever you want for better security.

That was a lame plugin experiment!

Change Database Prefix (obsolete)
Changes the MySQL database prefix as a protective security measure against hackers.

We now use Change Table Prefix plugin.

Date and Time Widget
Widget that displays the local date and/or time.

Default Featured Image
Allows users to select a default featured image in the media settings.

We don’t use this plugin any more but it was handy.

Disable Google Fonts
Disable enqueuing of Open Sans and other 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.

Disable Google Fonts is a very lightweight, it has no settings, just activate it and it works immediately.

We now use Remove Google Fonts References plugin.

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.

We now use Disable Emojis (GDPR friendly) plugin.

Disk Usage
We removed this plugin after testing because it increased page load time by enabling “prototype.js” – a fat javascript file. It added around 100k to the page weight. Bad.

Email Address Encoder
A lightweight plugin to protect email addresses from email-harvesting robots by encoding them into decimal and hexadecimal entities. We’ve used these techniques for a long time and it really prevents email spam.

Enable Media Replace
Enable replacing media files by uploading a new file in the “Edit Media” section of the WordPress Media Library. Just a handy utility for swapping out images fast. It’s best to disable unused plugins or remove them after production for security reasons.

We didn’t use this as much and have removed it. But a handy plugin.

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.

FD Word Statistics
Computes Gunning-Fog, Flesch, and Flesch-Kincaid readability indexes about posts as they are edited for the purpose of improving their readability.

We don’t use this any more. We just never paid attention to it. Not used.

Image Clean Up
This plugin allows you to delete all unused images. It looks for all images not referred to by any post, page, or widget within WordPress. Removal reduces wasted space on your server.

We don’t have this plugin installed any more. Eventually discipline gets your media library under control.

Infinite Scroll To Twenty Fifteen obsolete
One-click add Infinite Scroll to Twenty Fifteen theme with animation effect. Built to work only with the theme we wanted to use. We couldn’t help but use the plugin for it’s lightweight and coolness factor. It improves the 2-column post list.

jonradio Current Year and Copyright Shortcodes
Perpetual-copyright plugin for WordPress. Provides Shortcodes to display the Current Year and/or a Copyright symbol. Shortcode inserts the © Copyright symbol, a blank and the current year. Place this plugin’s shortcode almost anywhere. We used a sidebar text widget. You’ll always appear fresh and up to date.

Light SEO
We don’t  use any SEO plugins any more.

Media Library Alt Fields
Lets you change image alt text from the media library. This is good SEO practice and helpful for screen readers.

We don’t use this any more but on client sites we install Restore Image Title plugin (retired plugin but still works).

My Eyes Are Up Here
Detects faces during thumbnail cropping and moves the crop position accordingly. Great plugin.

We don’t use it any more but we have it installed on client websites.

One-Click Child Theme
We don’t use child themes any more. For custom CSS, we use Simple CSS plugin in the Customizer. For PHP customization, we use Code Snippets plugin.

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.

Post Type Switcher
Allow switching of a post type while editing a post (in post publish section). This plugin saved us a lot of work. We had 30 pages of existing content we wanted to convert to posts so we could use the dual column effect provided by the Kiyomizu child theme (obsolete child). It was done in a matter of minutes. Beautiful.It’s not installed any more.

Responsive Notification Bar
We don’t use this any more on PagePipe blog. We use Peanut Butter Bar plugin on client sites and our store product pages.

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.

We don’t sue this any more. We use Imsanity plugin instead.

Simple Basic Contact Form
Simple, basic, plug-n-play contact form for WordPress. Contact Form 7 plugin may have a lot of popularity downloads (millions) but it is not the fastest or safest contact form. Newer plugins are lighter and more secure – like this one.

We don’t use a contact form any more. We use email links instead. No forms or spam blockers needed.

Simple Drop Cap
Simple drop cap plugin. Transforms the first letter of a word into a drop cap or initial letter simply by wrapping the word with a shortcode. We used two methods of building drop caps. Some were by CSS inline code. That was necessary to keep the post’s drop caps from appearing on the front page excerpts. Too much visual noise for our taste. But the [ shortcode ] used by the plugin is much faster and global for pages. This plugin is easier to customize and use than some others we’ve tried.

Below is the custom CSS style we placed in the Simple Drop Cap plugin settings panel:

float: left; font-size: 193px; font-weight: normal; color: #3E5D58; line-height: 89px; text-transform: capitalize; margin: 0px; padding: 20px 0.08em 20px 0px; font-family: Impact, Haettenschweiler, Charcoal, AvenirNext-Heavy,  sans-serif;

This plugin is retired from the directory at the author’s request.

Simple Image Widget
A simple image widget utilizing the new WordPress media manager. Simple Image Widget is the easiest way to add images to your sidebars.

Simple Scroll To Top
Smooth-and-simple, scroll-to-top, plug-and-play plugin helps to add a “Back to top” feature to your site. Very lightweight compared to others.

We now use ToTop Link plugin.

Simple Sitemap
A HTML sitemap is a list of pages of a web site accessible to crawlers or users. It helps with findability and SEO to display content as a single linked list of posts and pages, or as groups sorted by classification (via a drop-down box). Just create a page titled sitemap and place the simple-sitemap shortcode on it. Works great and again is lightweight.

Standout CSS3 Buttons
Display CSS3 style buttons with gradient color styles on your website using popular social media colors. We wanted more “flair” than just text links for our call to action (CTA) at the bottom of posts and pages.

To speed up this plugin, we stripped all of the 24 button colors we weren’t using. We were only using “midnight.” The speed savings were significantly improved. It was worth it. We used the Plugin > Editor again to make this happen.

We don’t use button plugins any more.

Super Simple Google Analytics
Bare bones option to simply insert the basic Google Analytics tracking code into the head section of every page without any fuss. We later disabled this plugin and just use the Visitor Mailer plugin (see below).

We don’t use this plugin any more.

Simple tooltip plugin that displays a responsive, animated, fully customizable tooltip when the visitor hovers over the matched element.

We don’t use this plugin any more. It was annoying to use and slowed down our writing. It’s cute but that isn’t good enough for us.

Title Remover
Gives you the ability to hide the title of any post, page or custom post type item without affecting menus or titles in the admin area. It’s handy. It’s just a select box on the page or post. On or Off. Easy.

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.

We use Google Analytics now. That is implemented with the CAOS plugin. Adna counter plugin called WP Counter.

Visual Subtitle
Allows part of a post title to be styled as a subtitle or deck. The subtitle is still within the title level 1 or 2 heading, but is wrapped in a span to be styled differently.

A deck is one or more lines of text found between the headline and the body of an article. The deck elaborates or expands on the headline and topic of the accompanying text. Size the deck type somewhere between the headline and body text to provide contrast. We modified the CSS to make the deck Arial ALLCAPS, half the size of the headline, and with loose letter-spacing.

A deck is a visual signpost or cue that lets readers know where they are and where they’re going. Signposting breaks up text and images into readable, easy-to-follow blocks or panels of information. A deck is a visual signpost helping readers assess an article before committing to reading the whole thing.

We modified the subtitle or deck styling in our child theme by adding the following CSS code to the end of the style.css file:

.subtitle { 
    display: block;
    color: #000;
    font-family: Arial, sans-serif;
    text-transform: uppercase;
    font-size: .6em;
    letter-spacing: 1px;

We don’t use this any more. It didn’t help anything. Annoying eventually to use.

WordPress Popular Posts
Customizable widget that displays the most popular posts on your blog. We use this on the 404 page. We later disabled this because it wasn’t adding content value.

This is a great plugin but we don’t use it any more because it loaded down the site globally. It was a hard one to disable. But all the info we needed is on Google Analytics.

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. Note: To get the browser to download more assets in parallel, you can serve them from different domains.

WP Resized Image Quality
Change the compression-level of uploaded JPEG images and thumbnails. Get better image quality or save bandwidth.

We don’t use this any more. We use Imsanity plugin.

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.

No longer used. We use Cache Enabler plugin instead.

WP Updates Notifier
Sends email to notify you if there are any updates for your WordPress site. Can notify about core, plugin and theme updates.

We don’t use this any more either. Not that useful.

So what plugins do we use today?

Active (57)
Inactive (5)

404page – your smart custom 404 error page
Custom 404 the easy way! Set any page as custom 404 error page. No coding needed. Works with (almost) every Theme.

Add Widget After Content
This plugin adds a widget area after post content before the comments. You can also tell it not to display on a specific post or post format.

Admin Post Navigation
Adds links to navigate to the next and previous posts when editing a post in the WordPress admin.

Asset Queue Manager
A tool for front-end experts to take control of all scripts and styles enqueued on their site.

Better WordPress Minify
Allows you to minify your CSS and JS files for faster page loading for visitors. This plugin uses the PHP library Minify and relies on WordPress’s enqueueing system rather than the output buffer (will not break your website in most cases). This plugin is very customizable and easy to use.

Block Bad Queries (BBQ)
BBQ is a super fast firewall that automatically protects WordPress against malicious URL requests.

Blog Manager Light
Blog Manager for WordPress adds tons of blog functionality to your WordPress based website.

Broken Link Checker
Checks your blog for broken links and missing images and notifies you on the dashboard if any are found.

Cache Enabler
Simple and fast WordPress disk caching plugin.

CAOS for Analytics
A plugin that allows you to completely optimize Google Analytics for your WordPress Website – host analytics.js locally, keep it updated using wp_cron(), anonymize IP, disable tracking of admins, place tracking code in footer, and more!

Category Sticky Post
Mark a post to be placed at the top of a specified category archive. It’s sticky posts specifically for categories.

Change Table Prefix
This plug-in will allow you to change your database prefix after installation.

Classic Editor
Enables the WordPress classic editor and the old-style Edit Post screen with TinyMCE, Meta Boxes, etc. Supports the older plugins that extend this screen.

Current Year and Copyright Shortcodes
Provides Shortcodes to display the Current Year and/or a Copyright symbol.

Date/Time Now Button
Adds a Now button to the right of date and time fields.

Deactivate XML-RPC Service
Deactivates the XMP-RPC API service.

Disable Comments
Allows administrators to globally disable comments on their site. Comments can be disabled according to post type.

Disable Embeds
Don’t like the enhanced embeds in WordPress 4.4? Easily disable the feature using this plugin.

Disable Emojis (GDPR friendly)
Disable Emojis (GDPR friendly)

Display PHP Version
Displays the current PHP version in the “At a Glance” admin dashboard widget.

Download Plugins and Themes from Dashboard
Download installed plugins and themes ZIP files directly from your admin dashboard without using FTP.

Easy Forms for Mailchimp
The ultimate Mailchimp WordPress plugin. Easily build unlimited forms for your Mailchimp lists, add them to your site and track subscriber activity. To get started, go to the settings page and enter your Mailchimp API key.

Easy Table
Create table in post, page, or widget in easy way.
Version 1.8 | By Takien

Email Address Encoder
A lightweight plugin that protects email addresses from email-harvesting robots by encoding them into decimal and hexadecimal entities.

Far Future Expiration Plugin
This plugin will add a “far future expiration” date for various file types to improve site performance.

Find Posts Using Attachment
Allows to find all posts where a particular attachment (image, video, etc.) is used.

Lazy Load by WP Rocket
The tiny Lazy Load script for WordPress without jQuery or others libraries.

Lazy Load for Videos
Lazy 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.

Limit Login Attempts Reloaded
Limit the rate of login attempts, including by way of cookies and for each IP address.

More Plugin Info
Display additional information about each plugin on the Plugins screen.

Optimize Database after Deleting Revisions
Optimizes the WordPress Database after Cleaning it out.

Plugin Logic
Activate plugins on pages only if they are really needed.

Plugin Toggle
Quickly toggle plugin activation status from the toolbar.

Post Date Time Change
Collectively change the date and time of each article of post or page or media library.

Pro Related Post Widget
Pro Related Post Widget plugin.dynamically show related post according to post.

Show your favorite quotes on your blog using our shortcode, widget sau template tag.

Manage all your 301 redirects and monitor 404 errors.

Remove Google Fonts References
Remove Open Sans and other google fonts references from all pages.

Restore Image Title
Reverses WP 3.5’s behaviour of stripping title from images inserted into posts.

Search Exclude
Hide any page or post from the WordPress search results by checking off the checkbox.

Shortcode For Current Date
Insert current Date, Month or Year anywhere with a simple shortcode.

Simple Content Adder
Add custom content to your posts, pages and/or footer, without the need to update each post or page.

Simple CSS
Simply add CSS to your WordPress site using an awesome CSS editor or the live Customizer.

Simple Drop Cap
Simple drop cap plugin. Transform the first letter of a word into a drop cap or initial letter simply by wrapping the word with shortcode .

Simple Pull Quote
Easily add pull quotes to blog posts using shortcode.

Simple Wp Sitemap
An easy sitemap plugin that adds both an xml and an html sitemap to your site, which updates and maintains themselves so you don’t have to!

Sitelinks Search Box
Adds the JSON-LD schema.org markup for the “Google Sitelinks Search Box” on the homepage. This new feature was presented on the Official Google Webmaster Central Blog (05 Sep 2014 07:44 AM PDT). There is more info on the Google Developers Website.

Theme Editor
create, edit, upload, download, delete Theme Files and folders

Title Remover
Gives you the ability to hide the title of any post, page or custom post type item without affecting menus or titles in the admin area.

ToTop Link
A simple plugin for WordPress that adds an unobtrusive smooth scrolling “back to top” link to your site or blog.

Tuxedo Big File Uploads
Enables large file uploads in the built-in WordPress media uploader.

UpdraftPlus – Backup/Restore
Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.

Watu Quiz
Create exams and quizzes and display the result immediately after the user takes the exam. Watu for WordPress is a light version of WatuPRO. Check it if you want to run fully featured exams with data exports, student logins, timers, random questions and more. Free support and upgrades are available. Go to Watu Settings or Manage Your Exams

WEN’s Responsive Column Layout Shortcodes
WEN’s Responsive Column Layout Shortcodes easily add shortcodes to create 2, 3, 4, 5, 6, columns along with responsive layout in your posts/pages or widget section.

Widget Shortcode
Output widgets using a simple shortcode.

WP Author, Date and Meta Remover
Remove post meta data. Just plug and play; it’s that easy! Get WP ADMR Pro+ for Intelligent Meta Data Control.

WP Counter
WP Counter is a simple visitor counter of your site. You can see your unique site visitor status in different date range (Today,Yesterday,Current Week,Current Month).

WP Editor Widget
WP Editor Widget adds a WYSIWYG widget using the wp_editor().

wp image refresh
A very basic image reload plugin

WP jQuery Plus
Loads jQuery from a CDN using the exact version as your current WordPress install

WP Remove Query Strings From Static Resources
It will remove query strings from static resources like CSS and JS files.

WordPress Version 5.2.1
Theme: Twenty-seventeen default.


404page – your smart custom 404 error page
Custom 404 the easy way! Set any page as custom 404 error page. No coding needed. Works with (almost) every Theme.

Asset Queue Manager
A tool for front-end experts to take control of all scripts and styles enqueued on their site.

Block Bad Queries (BBQ)
BBQ is a super fast firewall that automatically protects WordPress against malicious URL requests.

Classic Editor
Enables the WordPress classic editor and the old-style Edit Post screen with TinyMCE, Meta Boxes, etc. Supports the older plugins that extend this screen.

Current Year and Copyright Shortcodes
Provides Shortcodes to display the Current Year and/or a Copyright symbol.

Date/Time Now Button
Adds a Now button to the right of date and time fields.

Disable Comments
Allows administrators to globally disable comments on their site. Comments can be disabled according to post type.

Disable Embeds
Don’t like the enhanced embeds in WordPress 4.4? Easily disable the feature using this plugin.

Disable Emojis (GDPR friendly)
Disable Emojis (GDPR friendly)

Easy Digital Downloads
The easiest way to sell digital products with WordPress.

Email Address Encoder
A lightweight plugin that protects email addresses from email-harvesting robots by encoding them into decimal and hexadecimal entities.

Far Future Expiration Plugin
This plugin will add a “far future expiration” date for various file types to improve site performance.

Lazy Load by WP Rocket
The tiny Lazy Load script for WordPress without jQuery or others libraries.

Lightweight Grid Columns
Add columns to your content using easy to use shortcodes.

Limit Login Attempts Reloaded
Limit the rate of login attempts, including by way of cookies and for each IP address.

Optimize Database after Deleting Revisions
Optimizes the WordPress Database after Cleaning it out

Peanut Butter Bar (smooth version)
All the good stuff that sticks to the top of your site.

Plugin Logic
Activate plugins on pages only if they are really needed.

Manage all your 301 redirects and monitor 404 errors

Remove Google Fonts References
Remove Open Sans and other google fonts references from all pages.

Simple CSS
Simply add CSS to your WordPress site using an awesome CSS editor or the live Customizer.

Simple Drop Cap
Simple drop cap plugin. Transform the first letter of a word into a drop cap or initial letter simply by wrapping the word with shortcode .

Title Remover
Gives you the ability to hide the title of any post, page or custom post type item without affecting menus or titles in the admin area.

UpdraftPlus – Backup/Restore
Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.

WEN’s Responsive Column Layout Shortcodes
WEN’s Responsive Column Layout Shortcodes easily add shortcodes to create 2, 3, 4, 5, 6, columns along with responsive layout in your posts/pages or widget section.

WP Counter
WP Counter is a simple visitor counter of your site. You can see your unique site visitor status in different date range (Today,Yesterday,Current Week,Current Month).

WP jQuery Plus
Loads jQuery from a CDN using the exact version as your current WordPress install

What to ignore in Pingdom and WebPageTest’s free speed testing.

Never trust speed test scores. Ever. Always measure improvement in milliseconds of load time.

How to interpret pingdom.com and webpagetest.org speed test results.


First byte or Time to First Byte (TTFB) – Delay between the first HTTP request from the web browser and the reception of the first byte of the web page by the browser. It’s recommended a time less than 200 ms. It’s a server delay. You can’t fix TTFB except by changing hosts or upgrading services. $$$

Load time – The web page is fully loaded, all the resources are fetched, parsed and executed. Pages must loaded within 4 seconds. We always shoot for 2 seconds but under 1 seconds loads gives us goosebumps. At 10 seconds, people are long gone.

Page size – The total size of assets loaded: CSS, JS, HTML + other (like scripts, images, ads, etc) Also called page weight and is expressed in “k” or “M” bytes.

Page score – The score calculated based on a number of factors: compression of the resources, enable/disable caching, CSS/HTML/JS minifying etc. Score is irrelevant.

UNDER 9-minute video:

And this link helps:

Pingdom.com is for quick-and-dirty best-case scenarios. First test is unprimed cache and second test (click again) is primed (faster).

WebPagetest.org is for worst-case scenarios. It’s more reliable but takes longer to test.

Never evaluate with Google PageSpeed Insights. WordPress can’t pass their criteria. Google doesn’t even use that data for ranking anyway. They have people chasing their tails.

We code HTML, CSS, mess up PHP, and do zero Javascript, but PagePipe focuses on solving WordPress problems with non-coding solutions. In other words, strategy using plugins and themes. Not hacking PHP or .htaccess files. “No coding skills needed” is what WordPress is all about. We give plug-and-play features preference. No plugin settings? Great!

Most site owners and developers just don’t test plugins. They rely on popularity numbers. Moo! Herd mentality.

For example, iThemes Security and WordFence are both 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.

Researching plugins on the 55,000 plugin directory is difficult and tedious. We’ll keep researching and testing plugins and themes for improving speed benefits for your sites.

Lazy load YouTube video for 500ms better mobile speed.

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

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

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.

Lazy Loading YouTube or Vimeo videos

Set up a Youtube account to host your videos. Place the YouTube link in your page or post body text. You don’t need to move video down the page. That isn’t necessary. Lazy loading videos occurs anywhere on the page. It doesn’t have to load below the fold. It’s different from lazy loading still images like JPEGs or PNGs.

We 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 the load time. It is not declared but is apparently a minification technique since the blog author warns that it could break the site. Just like any other minification plugin can. If so, we just deselect the option.

Responsive Mode: It is recommended.

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

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

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

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

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

Lazy Load for Videos
Zip file size: 376k
Active Installs: 10,000+

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 (see below). Update: Google removed the ability to turn off recommended videos. There is a workaround to only recommend videos on your YouTube channel. So plugin authors are in process of reworking how to suppress taking visitors away from your site. More on this as news develops. You should still do lazy loading of videos for speed.

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 read.me file claims videos on posts and pages are both activated.

Of interest: Jetpack by WordPress.com offers an extension called Shortcode Embeds. It makes Lazy Load for Videos break. The cure is simply to disable the extension. Or like us, don’t use Jetpack! This is a known issue published in the read.me 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 WebPagetest.org, 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 an 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

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 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 Instant jQ 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 baseline.

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

Lazy Load for Videos plugin is our preferred 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 activate 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 the 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 a common practice.


This is a basic widget. It’s included. No purchase necessary.

Elementor basic widget for adding video to a page.

Image Overlay section: Find it at the bottom underneath the video section. (It’s practically hidden. Scroll down to the end of the Elementor video section)

Image Overlay at bottom after scroll.

Image Overlay: Select Show

When Image Overlay is set to Show, the following options become available:

  • Image: Set your static overlay image from the media library (an optimized JPEG you choose).
  • Lazy Load: Set to YES.
  • Image Size: Set to full.
  • Play Icon: Slide to YES to show a Play Icon (triangle in circle)
  • Lightbox: Leave off.

This defers loading of video resources until the user clicks the Play button. Lazy load replaces the video embed code with a lighter weight static image of your choice. And an optional play icon on top of the static image. The video is only loaded when the user clicks the image.

This speeds up the initial page load time by 500 milliseconds (typically per video on a page).

Note: Videos will not autoplay if an Image Overlay is set. You don’t want autoplay anyway. It’s considered intrusive and bad user experience. Let the user choose to activate the video sound and play.

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:

  • 64% increase traffic
  • 43% increase revenues
  • 39% become more efficient at running a site

All these three are profit related.


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 Pingdom.com or WebPagetest.org.

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

Load Time: 1 millisecond

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 Pingdom.com or WebPagetest.org.

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.

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.

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.

Plugin quality can’t be judged by “last updated” any more than “active installs.” 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 page builder 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.

Kadence Blocks Review – Can Kadence keep up?

Kadence Blocks Review [Free Version] – Can Kadence keep up?

A worthwhile addition to your block library.

If we could only choose one block library add-on, it wouldn’t be Gutenberg Blocks by Kadence.

However, we still use and recommend it because a few of its blocks are outstanding. And it’s fast. :)

Kadence Blocks Overview

Here’s are some important things to know about this block library:

  • 14 custom block types.
  • Has some unique blocks that other libraries don’t.
  • Global color settings.
  • Pre-built template library as an add-on plugin.
  • Only some blocks types have margin/padding controls.
  • Only some blocks types can be displayed or hidden based on screen size.

Is it fast?

We tested 86 block plugins to determine their speed overhead. We looked at added page-weight, number of calls and milliseconds of load time.

Kadence passed with flying colors and is in our “top-tier” of fastest Gutenberg-related plugins. It added only 51 kilobytes to the page-weight, 0 calls and 0 milliseconds in load time.

What about a real world test?

We used Kadence as the main block library on a client site:

The home page speed tests look like this:

Yes, Kadence is fast.

Kadence Blocks Features Overview

Let’s take a look at some of the features mentioned above.

14 Custom Blocks

These blocks include things like:

  • Row (Kadence’s container block)
  • Columns
  • Buttons
  • Testimonials
  • Accordion
  • Advanced Gallery
  • and more

Overall, we’ve found their blocks to be hit and miss. Some of them truly stand out, while others fall short.

For example, their Icon List, Testimonial and Info Box blocks are excellent and better than Stackable’s versions.

On the flip side I much prefer both the Generate Blocks and the Stackable container block. I also prefer Stackable’s related post block.

Noteworthy Blocks

Kadence includes 4 blocks that really impress us in their usefulness. They are:

  • Table of Contents
  • Advanced Gallery
  • Countdown Timer
  • Form

Each of these typically requires the addition of an extra plugin, and we love that they’re included in Kadence.

An added bonus, the form is quite fast, and it connects with our current email service provider Mailerlite out-of-the-box.

Global Color Editor

The global color editor allows you to change the color palette of all your blocks across your entire site. So no matter what block you’re using – Kadence or otherwise – you’ll see your custom color palette. This is a huge time saver.

Pre-Built Design Library

Kadence offers a small selection of pre-built templates as an add-on plugin. It can be found here: https://wordpress.org/plugins/kadence-starter-templates/

We haven’t used these, so we can’t comment on their quality. They might be useful to get you started if you’re stuck. You can also use them to reverse-engineer settings if you’re not sure how to get the look you want.

A Few More Notes

One downside of Kadence Blocks is that you can’t adjust margin and padding for every custom block type. Some blocks have the option, others don’t.

Similarly, visibility settings (show or hide on desktop, tablet or mobile) are only included in some – but not all – of their blocks. This is not a deal breaker. You can simply install a plugin like Conditional Blocks or Block Visibility.


Kadence Blocks is worth considering for your block library. Some of its blocks fall short, but some are excellent. It’s fast, and it offers a few unique blocks that you’d normally need to find another plugin for.

Download the free version here.

Learn more about the Kadence Pro here.

For superior mobile speed, don’t install any SEO plugin. Ever.

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)

Load time: 0 milliseconds

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.

To migrate the database from Yoast SEO to Autodescription plugin use this helper plugin:

REFERENCE: https://wordpress.org/plugins/seo-data-transporter/

OFFSITE ARTICLE: https://spigotdesign.com/how-to-migrate-from-yoast-seo-to-the-seo-framework/

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

MYTH: I’ve installed Yoast, so I’m all set

Sometimes, this statement makes me want to spit out my coffee and laugh; other times, it makes me sad that new bloggers can be so gullible and clueless.


Because this is an utterly ridiculous statement.

First, some newer bloggers mistakenly think that Yoast “gives them SEO.” And, of course, it doesn’t. In fact, there is no plugin that “gives you SEO.” There is no such thing. Rather the blog posts you write and the activities you do for a post will get you organic traffic. There is no silver bullet and no easy way around this.

Rather, Yoast attempts to measure your SEO. It uses some basic formulas that “check off” some of the boxes. Notice how I say “attempts.” This is because it’s very formulaic. And, also, it’s not very accurate nor predictive. In fact, often it gives you bad advice because it will direct you to do things that will lead to keyword stuffing (which is very bad for SEO) as well as poor writing, and that is bad for user experience. And, if it’s a bad user experience, it’s bad for SEO.

Many people mistakenly think that if they get a green light that their post is SEO optimized and will rank well. This simply isn’t true. Far from it. It’s all based on the keyword phrase that you enter. It does not tell you if that’s a highly searched term nor your chances of ranking for it. And, it’s simply garbage in/garbage out.

–Debbie Gartner

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.

Avoid WPFaster.com’s $1,985 speed tuning shakedown.

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

Load Time: 10 milliseconds


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. WordPress added lazy loading to core in August of 2020.

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!


iThemes Security slows your site and depletes server resources.

Myth: WordPress security plugins don’t affect speed.
The usual recommendation is iThemes Security (formerly Better WP Security).
Most people don’t know security plugins slow down your site and use up server resources.

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!

There’s no detectable difference in load time with most speed tests. 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! What could go wrong?

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.

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!

Limit Login Attempts Reloaded (40ms)
package download size: 697k

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. This plugin also disables XMLRPC.

It’s best to disable the xmlrpc. php files. By disabling it, you ensure this non-feature can’t be used to hack your WordPress website. XML-RPC is a specification enabling communication between WordPress and other systems (like smartphones).

Change Table Prefix (1ms)
package download size: 10k

WARNING: Only use this plugin if you know what you are doing. You can mess up your database and nuke your site. Some hosts like GreenGeeks automatically change the default prefix for you on migration. 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.

Email Address Encoder (2ms)
package download size: 5k

A lightweight plugin to protect email addresses from email-harvesting robots. The plugin encodes addresses into decimal and hexadecimal entities. No configuration required.

Block Bad Queries (BBQ) 4ms
package download size: 7k

A simple, super-fast firewall 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. What!?

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 labeled 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 getting shutdown by 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 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!?

Changing the PHP version from 5.3 to 7.x 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.

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 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 pingdom.com and WebPagetest.org.
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 don’t all 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.

This is one we actually used on a web project with success:

★ ★ ★ ★ ★
Async JavaScript

Load Time: 30 milliseconds

Async JavaScript plugin allows script control by adding ‘async’ or ‘defer’ attributes. Or to exclude a script to help increase site performance.


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.


How to torture impatient mobile visitors.

Apply the 10 big boo-boos decimating mobile WordPress speed.

  1. Use fancy decorative Google fonts. Don’t use a mobile font stack.

REFERENCE: https://pagepipe.com/zero-latency-fonts-for-mobile-speed-system-ui-font/

  1. Use a slider on your home page. And just for giggles add another but different slider to your product pages.

REFERENCE: https://pagepipe.com/sliders-always-slow-down-a-page-load-and-they-are-proven-ineffective-for-navigation-and-seo/

  1. Use lots of metric-type plugins including HotJar and Google Analytics.

REFERENCE: https://pagepipe.com/how-does-google-analytics-affect-mobile-page-speed/

REFERENCE: https://pagepipe.com/hotjar-adds-500-milliseconds-to-mobile-speed/

REFERENCE: https://pagepipe.com/use-faster-and-simpler-koko-analytics-for-speed-instead-of-slow-and-complicated-google-analytics/

  1. Choose a host from a biased affiliate review site. Don’t test TTFB of the server before signing up.

REFERENCE: https://pagepipe.com/find-out-what-your-server-ttfb-really-is/

REFERENCE: https://pagepipe.com/wp-content/uploads/2021/03/hosting-master-v3.3-opt.pdf

  1. Add any Live Chat plugin or service.

REFERENCE: https://pagepipe.com/dumping-livechat-for-speed/

  1. Put in a heavy globally-loading form plugin.

REFERENCE: https://pagepipe.com/do-lightweight-form-plugins-even-exist/

  1. Add a heavy and popular security plugin that writes frequently to the server htaccess file.

REFERENCE: https://pagepipe.com/free-discrete-plugins-replace-bloated-security-plugins/

  1. Use a pagebuilder — any pagebuilder.

REFERENCE: https://pagepipe.com/imitate-elementor-with-gutenberg-block-editor-and-be-faster/

  1. Use a heavy theme like Divi.

REFERENCE: https://pagepipe.com/switch-from-divi-theme-to-astra-for-best-speed/

  1. Add popups.

REFERENCE: https://pagepipe.com/top-hello-bar-knockoff-plugins-for-speed/

REFERENCE: https://pagepipe.com/faster-and-free-alternative-to-optinmonster-wordpress-plugin/

Anyone can ruin mobile user experience with lack of discipline.

Before adding plugins to your site, ask yourself, will this cool plugin make me rich or famous?

Are WP Super Cache and W3 Total Cache bad for mobile speed?

Performance benchmarks use scores from Pingdom.com, WebPagetest.org, or GTMetrix.com.

Oddly, no one mentions speed test scores don’t matter. It’s milliseconds that count! Or that Google PageSpeed Insights is a test designed to create site-owner anxiety. Boasting about a PageSpeed Insight 100 test score is ridiculous. We’ve seen 12-second pages get a 100 rating with this test. A joke. Many blog authors claim they find speed salvation using popular WordPress caching plugins.

On an optimized site, caching plugins make little difference in load time. The initial visit is the critical one for the first impression. Only 5 percent of PagePipe traffic is repeat visitors (500 visitors per month). That’s very low. But not uncommon.

We’ve inspected big sites (1 million+ visitors monthly) with high return-visitor rate (80 percent). The high return rate is often from sending frequent subscriber push notifications. These are swirling aggregated news sites. The recent content is brand-spanking new. There’s little benefit from caching.

Author’s Jonathan Sulo (Servebolt) and Tom Usbourne (GeneratePress) and our staff (PagePipe), agree. Caching plugins often break your site and cause problems more than help. It’s usually file concatenation reducing requests that are the biggest problem.

We install two plugins: Cache Enabler and Better WordPress Minify. That separates the function of minification. We then selectively deactivate an offending plugin on pages. Or disable it completely site-wide without sacrificing the benefit of the other plugin. Those are discrete plugins with few settings or none. They work. A do-everything caching plugin is dangerous in the hands of novices. Not to mention the site drag caused by the heaviest caching plugin like WP Super Cache (2+ million active installations) and W3 Total Cache (1+ million active installations).

OFFSITE LINK: https://wp-rocket.me/faq/problems-wp-super-cache/

Cache plugins speed up the requests that are cached, but slow down the requests that are not cached. Since a regular cache hit rate is somewhere between 10 and 25% a cache plugin will slow down the site for 75 – 90% of your visitors. – source

On an extreme optimized site, there may be a few 100 kilobytes of page weight and only a dozen requests. With no popular plugins, that site will load in under 1 second almost to anywhere in the world. No CDN necessary. No caching plugin. No minification plugin.

Far Future Expiry plugin allows setting a suitable cache expiry date. We recommend 1-year expiration.

Do we ever add plugins to improve scores? Yes. This is for the site owner’s psychological benefit when they examine test results. These include discrete plugins like:

  • lazy loading
  • minification
  • far future expiration
  • remove query strings from static resources

These lightweight plugins make scores look good. But their actual contribution to mobile speed is small. They don’t slow down a site, so why not make test results appear the best possible?

If your site is fast, adding caching satisfies fanatic obsessive-compulsive speed behavior. From which we suffer. We admit it.

Where is “caching” truth? There is none. All blog reviews of caching plugins are self-serving and biased. Especially benchmarks selling affiliate Hummingbird or WP Rocket plugins. Are we surprised by the cherry-picked results? Nope.

WordPress Plugins like W3 Total Cache work like all other page caching. They store a version of a pre-generated page to the file system or memory, and serve it to users until it expires. W3 Total Cache is being used by 1 million websites, but that doesn’t mean it is a good idea. Especially not if you use fast hosting.

W3 Total Cache is a very large plugin, and for most sites – this just adds a whole lot of unnecessary code to the website. More code, means more things can go wrong. …

W3 Total Cache talks about getting pages to load in less than 2 seconds showing off a theme like Twenty-sixteen. To make it clear; a similar test [on fast hosting] will be delivered in about 100 milliseconds without the use of caching, not seconds. –source

WP Rocket is a paid plugin ($49) advertised as a caching plugin. It’s a multi-function plugin doing much more than caching. WP Rocket claims they create pre-cached pages. This happens on plugin installation, and every time a page changes. Does this make a speed difference?

Caching pages every time is like achieving a 100 score. Superfluous. Caching makes no difference on an extreme optimization site for mobile users.

WP Rocket works or helps most sites. We’re sure they do what they say. But there are no documented benchmarks of performance improvement from their special pre-caching feature. This feature is a marketing tactic to improve product differentiation. It’s brilliant marketing. We remove WP Rocket and use free plugins to achieve the same or better results. All we have is experience of repairing client sites. And reducing their annual site overhead costs.

DISCLAIMER: We use caching and minification on PagePipe blog – but not on our store. Caching is not recommended with eCommerce plugins like Easy Digital Downloads and WooCommerce. Checkout-page breakage results.

Stackable Blocks Review – Does it stack up?

Stackable Blocks Review [Free Version]- Does it stack up?

A full-featured block library

Stackable is what we consider a “full-featured” block library add-on. Here’s why:

  • It offers 27 custom blocks in the free version. (This is on the high end).
  • It has a good selection of pre-built design templates (89 free and 264 premium)
  • It has UI Kits you can use to create consistently styled sections.
  • Global color editor.
  • Global typography editor.
  • Hide or show blocks based on screen size.
  • All blocks have margin and padding settings.

I’ll go into these in more detail shortly. But first, let’s talk performance.

Is it fast?

We tested 86 block plugins to determine their speed overhead. We looked at added page-weight, number of calls and milliseconds of load time.

Stackable passed with flying colors and is in our “top-tier” of fastest Gutenberg-related plugins. It added only 75 kilobytes to the page-weight, just 2 calls and 0 milliseconds in load time.

What about a real world test?

We used Stackable as the main block library on a client site: https://cryptogard.tax/

The home page speed tests look like this:

Yes, Stackable is fast.

Stackable Features Overview

Let’s take a look at some of the features mentioned above.

27 Custom Blocks

These blocks include things like:

  • Container
  • Columns and Grid
  • Testimonials
  • Pricing Tables
  • Accordion
  • and more

Overall, we’ve found their blocks to be quite nice. There are many options within each block type so you can customize them to your needs.

The layout of each block’s settings is also pretty good, and most similar to the Elementor page builder.

Pre-Built Design Library

Stackable offers 89 pre-built templates in the free version. These include layouts like hero sections, post-grids, testimonials, etc. They are organized by type.

I don’t find myself using these often, but they can be useful to get you started if you’re stuck. You can also use them to reverse-engineer settings if you’re not sure how to get the look you want.

You can remove the design library completely from your editor if you don’t ever use it. A nice touch which shows me that Stackable is putting some thought into their plugin.

UI Kits

UI kits are similar to Pre-Built Sections, except that they are organized by style and color, rather than section type. I think this is a great idea and could be a big time saver if you’re using templates.

Global Color Editor

The global color editor allows you to change the color palette of all your blocks across your entire site. So no matter what block you’re using – Stackable or otherwise – you’ll see your custom color palette. This is a huge time saver.

Global Typography Editor

Similar to the global color editor, this feature allows you to set the typography – font family, size, weight, etc – for your headings and body text within the Stackable settings.

Many themes already allow you to change your typography, so this feature seems less useful. But if your theme doesn’t let you change typography easily, this would be quite helpful.

Hide or Show Blocks Based on Screen Size

This feature adds a “Responsive” setting for each Stackable block that allows you to hide a given block (or group of blocks in a container or column) depending on screen size.

So say you have a section that you want to hide completely on mobile, you can do that with one click.

All Blocks Have Margin and Padding Settings

This may seem trivial. But there are many instances when you want more or less space between blocks.

Default margins and padding can be inconsistent – especially when you have multiple block libraries installed – so this allows you to get the spacing between elements just right.

Kadence, another block library we like, doesn’t have margin/padding settings for every block. This is a big weakness in our experience. Kadence does have some other awesome features, which you can read about in our Kadence Review.


Stackable is a well-rounded and well-conceived block library. It’s fast and feature rich. We recommend it.

Download the free version here.

Learn more about the premium version here.

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 WebPagetest.org. 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 Pingdom.com – and after that GTmetrix.com

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

Load Time: 10 milliseconds

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 test result. 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.

Speed up Google Analytics by 334 milliseconds.

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

Load Time: 30 milliseconds

Active installs: Fewer than 10,000
Zip file size: 31k

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.

Reference: websiteoptimization.com

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 google-analytics.com”. 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: kinsta.com

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)
Load Time: 20 milliseconds

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 WebPagetest.org:

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

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

Cheap, shared GoDaddy magnetic hosting. No CDN.
WebPagetest.org worst-case scenario for load time – under 1 second. Cheap, shared GoDaddy magnetic hosting.

WP Counter

Load Time: 20 milliseconds
Active installs: 2,000+

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.

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

Another excellent offsite link: https://plausible.io/blog/remove-google-analytics

You can get free metrics from Cpanel on your host server. This doesn’t slow down your website. A good off-site article about how to do this: https://www.hostpapa.com/knowledgebase/view-website-statistics-cpanel/

Pingdom to San Francisco USA Speed test.
Comparison load times for this page you’re reading:

Super Simple Google Analytics plugin – header

Load time: 966 milliseconds.

CAOS plugin – footer

Load time: 776 milliseconds.

Metrics using C-panel (no GA-ID)

Load time: 632 milliseconds.

Speed savings: 334 milliseconds per page.

OFFSITE ARTICLE: Lightweight alternatives to Google Analytics


I just wanted to drop in and tell you that I found this article extremely interesting and helpful.

I love Googling. I don’t love Google’s lack of respect for our privacy. And I hate Google Analytics (GA).

I find GA super confusing. Now, after reading your perspective on it, I realize that I was only trying to use it, because I was “supposed” to — and I probably don’t even need it.

You have saved me hours of further angst.

So thank you for taking the time to write this article. It was valuable to me.

— Janine @ Stitching in Colour

Get WP Rocket plugin best paid features for free.

It’s another incredible speed myth. Self-appointed experts claim including a caching plugin on your WordPress site is essential. Many plugin reviewers declare, “Caching plugins make your WordPress site highly optimized for speed and performance.” Some even avow a 10X speed – improving your SEO.

This is an outrageous untruth. Total nonsense. First, speed does not improve SEO. Best case, only repeat visitors may get speed benefits from caching. But with some website, only 20 percent of their traffic is returning visitors. Not helpful for the other sad 80 percent. Second, caching plugins rarely improve speed on a well-optimized site. None of them.


If a caching plugin helps a site, it means something. A tired, lazy, unskilled, or apathetic designer didn’t want to optimize. Admit it. Suddenly, paying $49 for a plugin doesn’t sound so bad to solve the problem. But in 5 years, that’s almost 300 tacos you lose. Cheap ones – but tasty.

As we’ve said before:

“The reason web builders see improvement from caching plugins isn’t from caching features. It’s from the activation of Gzip compression. And far-futures expiration, and minifying Javascript and CSS files. Those automated features built into the plugin have nothing to do with caching. In fact, most modern hosting already has Gzip activated on the server. On a well-optimized website, we’ve never seen speed benefits based on using a caching plugin. Even from the oft-recommended, free W3 Total Cache plugin. Or even WP Super Cache. Both popular plugins with millions of installs.”

What is Caching? It’s page components stored for future use. The images, files, and web objects are now on your local hard drive. When you open the page again, the browser has most files cached and ready. This takes less time than retrieving files from remote servers.

Note: Your browser caches pages whether you have a plugin installed – or not.

WP Rocket caching plugin authors claim your website will load at lightspeed. That is 186,000 miles per second.

Let’s save the world million of dollars in repetitive fees! We already feel better. Ready. Keep reading.

Note: Our PagePipe site creations go faster than a speeding bullet. The average bullet travels at 1,700 miles per hour. So WP Rocket already advertises better specs than ours. Metaphorically anyway. Light versus bullet.

We don’t recommend the paid WP Rocket plugin because you can get the same results with free plugins.

Here are some of WP Rocket’s other specs and claims:

  • Page Caching – They claim this improves SEO. Wrong.

PagePipe: Avoiding futile web myths about site speed >

How can we be so confident? We downloaded and tested 21 free plugins from the WordPress repository. Every free caching plugin we could find. That included testing WP Rocket – even though it’s not free.

Here’s how things turned out:

1We threw out the caching plugins that just didn’t work. Those four losers included: Easy Cache (15 second page load?), Next Level Cache, WP FFPC, and WP Spider Cache.

2We got rid of the plugins with the poorest retention – the 2 to 14 percent range. There were 9 of those: Batcache, WP Fast Cache, Gator Cache, WP Super Cache, Hyper Cache Extended, Hyper Cache, Bodi0s Easy Cache, AIO Cache, and Alpha Cache.

WAIT! We chucked WP Super Cache? It has over 1 million installs and 11 million downloads. Yep. Do the math. That’s only 9 percent retention. That plugin is getting old and on the decline. You can Google the topic and read about user-concern of abandonment. The author assures it’s not orphaned. But the herd is moving away from the plugin.

Warning: We couldn’t uninstall the plugin “Bodi0s Easy Cache” using the WordPress dashboard. We had to erase its folder from the server via Cpanel. Badness!

3We have 2 plugins that are either too fussy or too feature-sparse.” Those two are Super Static Cache and Cache Enabler*. They are out, too.

4There are plugins that are slow to load. Yes. Three plugins flunked when tested with P3 Performance Profiler Plugin. They were: Comet Cache, 43.8 milliseconds, W3 Total Cache 70.5 milliseconds, and WP Rocket 45.3 milliseconds. You’re thinking, those are insignificant times. Maybe, but they load on every single page of the site. We call that site drag. The thing is they were significantly slower than the winners. We’ll give you those times next.

Not again! Another big one bites the dust. W3 Total Cache plugin has a million installs and 6.6 million downloads. But it’s the slowest caching plugin and it’s retention is only 15 percent.

5The three winners had retention and good speed.

  • Simple Cache, 4.4 milliseconds and includes Gzip, expires, enable caching. Combine this with autoptimize plugin for minification (13.7 milliseconds). You have a great combination.
  • WP Cache.com, 7.2 milliseconds, just caching. So add to it Far-futures Expiration – includes Gzip – 0.8 milliseconds.
  • WP Fastest Cache, 8.4 milliseconds. Includes minification, Gzip, caching. Combine this with far-future expiration plugin (adds another 0.8 milliseconds).

You can substitute some of these free plugins listed below for WP Rocket’s other paid features:

  • Cache Preloading

Pingdom testing frequently gives a message called “Leverage Browser Caching.” Here’s the speed-error fix:

Install the Far Future Expiration Header plugin.

  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.

PagePipe: Fixing-pingdom-leverage-browser-caching-errors >

  • GZIP Compression – Gzip and expiration header. We know this makes sites go faster. We’ve tested this stuff. The expiry plugin above works great. Some Gzip plugins don’t work. But Far-future expiration plugin is a two-for-one  deal and works great. You just select a button an Gzip is automatically added to your .htaccess file on your server. Then all pages are activated.

Read about Gzip here:

PagePipe: Update on Gzip compression >

  • Browser Caching – JS, CSS, and images from page to page in browser cache. Sorry. No caching plugin improves  well-optimized sites. They do not show any speed improvement.

  • Google Fonts Optimization – claims fewer HTTP requests. We simply remove Google Fonts for speed.

Free plugin suggestion: Remove Google Fonts References >

  • LazyLoad – This 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). Get lazy loading for free:

Free plugin suggestion:  Rocket Lazy Load >

  • Minification/Concatenation

Minification gives some improvement in getting good scores but doesn’t always improve speed. Minification can break your site. WP Rocket even warns about this on their FAQ page. So they’re human!

Free alternatives include:

Free: Better WordPress Minify plugin (our first choice).

Free: Autoptimize plugin (second choice)

If those fail try, Speed Booster Pack (but disable the lazy load. It causes site drag.)

If none of those work, forget using minification. It’s not worth the grief.

  • Defer JS Loading – page rendering errors eliminated.

We’ve written an article about this:
PagePipe: Google PageSpeed Insights: Render-blocking JS is the most annoying and unresolvable error message >

WP Rocket PRICE: $49 personal annual license fee. ($99 for business). But often on sale!

Secret plugin ingredient: the WP Rocket crawler.

Claim: WP Rocket developed an intelligent crawler. It’s called each time you create or update site content. This primes the cache in preparation for your first visitor. WP Rocket claims to pre-scan and store prebuilt pages from your site (using a crawler and CDN). CDNs don’t always help. They some times slow things down. From our tests, its other things about the plugin that matter more. These can be duplicated with free plugins.

Enough plugin bashing. A 4-second site can go to 2-seconds by activating WP Rocket. That’s pretty amazing. But we retort, “It must be a pretty cruddy site.” Does the 4-to-2-second miracle make WP Rocket better? No. Just a different, costlier solution.

We’ll keep our $49 bucks for tacos – and use free stuff. Thank you!

Dump Divi theme: Get Astra’s screamin’ speed.

Tons of articles rave comparing the merits and disadvantages of the Astra and Divi theme. They’re often biased by affiliate links (aka kickbacks) from one or both theme companies. They make money from the controversy.

We’re not here to debate which theme is better.

There is no debate for speed. We already know from our experience doing performance tuning on actual client sites.

Not a theory. Real-world experience.

We’ll show you how to fix the Divi speed problem for good.

Divi speed sucks.

Get rid of it!

Astra’s theme is super lightweight. If you can control your excitement to embellish with cool theme features.

Divi is the worst theme for speed. Often slowing a site by 1 second. That is half the 2-second performance budget. Yet they claim to be the most popular theme in the world with 2-million installations. They’re not free. They are pricey.

We always recommend removing Divi.

A few years ago I made a website with Divi, I was sucked in by the marketing and ease of use. I wanted to move away from the Divi theme because of mobile-speed issues – but knew that I couldn’t handle this myself due to the monster shortcode that is left behind when switching from Divi.

Luckily, I found Pagepipe.com and Steve and he agreed to lead the way on a Divi removal strategy. Picking Astra as the new theme, Steve removed all traces of Divi, sped up the site from about 2.7 seconds to under 1 second, and left me feeling like there were still some very good people in the world. I also no longer have to pay $89 annually for Divi – nor do I have to pay for expensive plugins. Thanks Steve, it is very much appreciated. Greg Artim, Pittsburg, Pennsylvania USA

Can Divi ever be fast?

But not PagePipe, it’s built with Twenty seventeen default theme.

Why Twenty seventeen? Isn’t that theme old and stale now? Our explanation is here:

REFERENCE: https://pagepipe.com/how-we-cheated-the-speed-tests-using-twenty-seventeen-theme/

We’ve seen one instance. But the web pages were bare-bones. In other words, Divi features were hardly used. That explains that.

REFERENCE: https://pagepipe.com/divi-theme-sucks-and-other-popular-paid-themes-are-slow-too/

REFERENCE: https://pagepipe.com/rebuilding-your-site-for-mobile-speed/

With Astra, we’ve built our own and client sites.

We know how fast free-Astra loads: under 50 milliseconds.

REFERENCE: https://pagepipe.com/extreme-astra-maximum-mobile-benefits-from-free-theme-features/

REFERENCE: https://pagepipe.com/should-i-use-generatepress-or-astra-theme-with-elementor-for-mobile-speed/

Here’s the biggest problem. When website owners get their hands on Divi they can’t stop adding heavy features. The same applies to Astra Pro.

We recommend Astra-vanilla (free) for speed (1-million active installations). No kickback from affiliate links. The real deal. Astra’s limitations keep uncontrollable web designers in check. They aren’t seduced into loading up pages with junk.


So why not switch to Astra and be faster immediately?

If only switching were that easy. Getting off Divi is like extracting intestinal parasites.

Large groups of egg-laying worms overwhelm the immune system. The worms kick-start a self-perpetuating cycle guaranteeing their survival.

That is Divi. Abdominal pain. Diarrhea.

I simply cannot stand  [Divi’s] pseudo eye candy bulky menus and “oh so funny” module names (WTF is a blurb module)? And even more so I cannot understand its success. It should simply not exist as it is a junky piece of software that i hope will vanish (just as all the other page builders) when WordPress incorporated its own system: Gutenberg. Still looking forward to the future. – Source

Why do we have such a low opinion of Divi?

Why rant about a bad theme choice?

What’s the big deal?

We’re often hired to solve speed-tuning. If Divi is the theme, fear-filled site owners imagine they can’t live without Divi. They worry. What happens when they remove Divi? Do their pages and post become nonsensical gobbledygook? They’re afraid the embedded images and other normality might vanish. Why that concern?

You know what?

Those horrible code nightmares are true.

Go ahead. Disconnect Divi.

It’s a total mess.

Example of client-side shortcode page residue after removing Divi theme. Ugly! There are 9 homepage sections of garbage shortcodes like this one.

Divi doesn’t use standard WordPress theme conventions. It isn’t compatible or swappable with any other standard theme. It’s built with hundreds of shortcodes. Whose lame idea was that?

So poor, addicted, stunted sites never stop paying for their Divi fix. Divi is like a complicated operating system built on top of WordPress. The Divi shell isolates the site owners from ever acquiring real skills. The value and ease of WordPress design is never realized. They can’t place a simple image on a normal page without a Divi crutch.

Handicapped by Divi.

We found a site owner with the courage and gumption to divest from Divi addiction. We jumped at the opportunity to document the journey to theme-freedom. We had something to prove.

The site was fast because he barely used Divi features. So why remove it? To prove a point. And to future-proof the site.

We wanted to show how even a dang-fast Divi site could be faster and lighter switching to Astra.

More shortcode residue from Divi.

Was it easy?

Well, it wasn’t as bad as we anticipated from what others told us.

We found a plugin. A golden plugin.

A plugin built to hide unused shortcodes – and the junk between them. And if we paid $22, we could have a pro version to remove the shortcodes for good.

We were – stunned. It couldn’t be that simple. But it was. One button? All the shortcodes removed?

Every shortcode removal solution we’d seen online required so much monkeying around. Convoluted cringe-worthy suffering. Our delight to discover a shortcut remover made us hesitate. Was the plugin claim authentic?

The free version of this magic plugin is:

★ ★ ★ ★ ★
Shortcode Cleaner Lite

Load Time: 1 millisecond

zip file size: 370k

Keep this plugin installed to hide the Divi shortcodes. Then the ugly shortcodes don’t appear on the front end anymore. Gone from sight! But if you remove the Shortcode Cleaner plugin, they’re all back. Could be worse.

If you pony up the cash for the pro version, you eliminate the shortcodes. Yes. From both the frontend and backend. If you remove the plugin, they’re still gone – forever. Beautiful tool.

First, we tested the free version. It doesn’t add weight or drag to pages. Good-enough results for most people satisfied with a “hiding” result. But we were on a mission to nuke Divi for good.

We got out our wallet.

We bought the pro version. And in a few minutes all the shortcodes we hated vanished from our client’s polluted website. Amazing.

Learn more about it on YouTube

We were free to switch to Astra free theme. Painless.

It also got rid of all other shortcode residue left on the site from dinosaur plugins long ago removed.

Was our speed mission complete?

No. We next substituted heavy popular plugins with much lighter plugins.

The difference? A reduction in weight from about 90 megabytes of plugins and theme – to only 20 megabytes.

We’re using 7 more plugin now than before. Do you think the site ran faster?

You know it did. Load time dropped in half.

The homepage went from 2.71 seconds to 1 second. Other pages were now loading in under a half-second. Stunning speed improvement. 500-millisecond load times – without CDN and without caching plugins. No site-breaking minification plugins either.

Are we done? No. We’re moving off erratic SiteGround servers to Rochen. Where will goodness end for speed?

This site is now in the top 1-percent of fastest sites on the web.
Did it cost more?

No. It cost less! Much less. No more annual renewal “rent” for the Divi theme. And lower-priced shared hosting.

Fixing painful server fluctuations.

What did we do about garbage hosting for this case study?

The client had two domains on SiteGround. On separate accounts. Oops! He unknowingly bought an account for each domain. It happens. Of course, he only needed one. But they neglected telling him that tidbit. His renewal fee was due in two weeks: $600.

Erratic TTFB on SiteGround hosting over a one-month period. Worst-case: 6-second page load time. Hey? Don’t they brag about speed? Maybe they don’t know the truth yet.

We looked at the drifting and erratic TTFB (time to first byte – server overhead) on SiteGround hosting. Average load time was 2.83 seconds. With our head in the oven and feet in the freezer – on “average” – do we feel fine?

Not really.

Average doesn’t show the speed peaks and troughs.

The chart rolls up-and-down like waves on a rough ocean. Load times saw-toothed up and down rhythmically from 2 seconds to 6 seconds. Is that wildness bad?

It’s horrible.

Goodness is a TTFB below 500 milliseconds.

The final speed scores


SSL and server caching activated
original load time
Divi Theme
1.46 seconds average

Note: This is the fastest Divi installation we’ve ever seen.

After speed tuning on staging
w/o Google Analytic drag
Astra Theme
1.12 seconds average



after migration
Astra theme
Google Analytics installed
LiteSpeed activated
391 milliseconds average

Holy cow! That’s super fast.

Cost before:

  1.  Divi renewal fees. $89 per year
  2. SiteGround renewal $600.

No more repetitive annual renewal fees.


Cost after:

Rochen Growth level fees:
$119.40 for the first year.
(Renews at $18.95/month)

5 Websites
20GB SSD Storage
Unmetered Data Transfer

Note: The client chose paying for Astra Pro:
$47 annual rent.

So when you change load time on a desktop from 2.7 seconds to under 1 second, do mobile users notice? Does anyone really care?

No one notices fast pages. They’re transparent.

But a slow page?

Users hate slow pages.

Remote mobile often load 3 to 4 times slower than desktop pages. Think about it. In our case-study example, 70 percent or more of traffic is on mobile devices. Instant mobile user experience benefits.


So let me check. To change my site over to a new theme away from Divi.  Here’s what you’ve told me to do in this article:

1 – Download a new theme.
2 – Purchase and install Shortcode Cleaner lite plugin.
3 – Run Shortcode Cleaner lite.
4 – Switch to new theme.

Is that it?


If life were only that simple.

1. If you have poor server quality with a slow TTFB, for example a 2-second TTFB, you’ll never get under a 2-second load time from switching themes. Duh!

2. You can’t delete or upload a new theme until you remove Divi and it’s accompanying plugins completely. So remove those Elegant Themes plugins.

3. If you bought the Shortcode Cleaner plugin.  Installing the pro version may be too big. You’ll  get this error:

The uploaded file exceeds the upload_max_filesize directive in php.ini.

If so, you need to install this plugin:

Yes. That’s right a plugin to upload big plugins!

4. But you may then see this error code:

The package could not be installed. No valid plugins were found.

Plugin installation failed.

5. Double check. Be sure you removed Divi and all the theme’s associated plugins. There may be several. Divi doesn’t work in “The WordPress Way.” They aren’t distributed through the theme directory. They don’t comply with WordPress theme rules of interchangeability. In fact, they deliberately block you from uploading other themes. They change how the Customizer works and other controls. Bad form. The don’t play fair.



Hey Steve!

One image says it all:


Final performance results: 1.383 seconds. Dump Divi theme.

Oh my goodness. Just wanted to thank you for your blog, your writing that provokes critical thinking, your resources, and email response.

The timing is perfect. Actually I was just about to set up my new business homepage (firestorm-digital.com) with Divi – just as I have built websites for years now. I just googled something like “make divi faster” and came across your site.

Three to four hours later, I read the entire thing and basically [dumped] the entire plan and built it based on your suggestions.

Went with Astra Theme and Elementor (free). Took the time to get into the new nuts and bolts. Went through your plugin suggestions. Moved over to GreenGeeks (by your recommendation). … I really like the simplicity of it now.

You changed my thinking and challenged my concepts. Successfully. Now I have a site that works and loads in under 2s. I know there’s not much on it. But the way I approach building the site has changed entirely. Mainly because of your work.

As a way to say thank you I bought your complete bundle. So thanks. If there’s anything else I could do for you just let me know.

Have a great day Steve and thanks again

Sebastian Thalhammer
Firestorm Digital




This alternative plugin is not in the WordPress directory — but is free. We don’t use it. Let us know if it works for you.

Novice Elementor users produce substandard page speed.

This article explores page builder plugins – in particular, Elementor page builder. We examine inherent page speed hazards and fears. Speed problems aren’t Elementor’s fault. Undisciplined wannabee web designers are the big problem. Elementor Pro doubles Elementor (free) plugin site drag.

1Your page builder predictions seem apocalyptic and scary. Why so negative? Do you have a grudge against Elementor?

All page builders tempt inexperienced users to load up their pages with stuff that slows things down. Automattic’s goal is for Gutenberg block editor to kill all page builders within a few years. They are competing with drag-and-drop website builders like WIX, Squarespace, Weebly, and Shopify. Pagebuilder plugins will be collateral damage.

REFERENCE: Is Gutenberg faster loading than Elementor? Yes.

Pagebuilder efficiency encourages consumption of speed resources. It’s ironic rebound psychology called Jevons paradox.

REFERENCE: https://en.wikipedia.org/wiki/Jevons_paradox

Jevons paradox
1. Web design becomes more accessible to abusive novices.
2. Pagebuilder efficiency increases web speed consumption.

2Is this article authored by a jealous traditional web designer?

Here at PagePipe, we write free articles about creative methods to produce web-page speed. We also sell speed ebooks and services. We build speed websites for clients. We report what we learn. We have CSS and HTML coding skills. We prefer free theme and plugin alternatives for speed novices. We do not include any affiliate links or advertise third-party products on our site.

Speed is fundamental for good user experience. Metrics affected most by speed are dwell time, bounce rate and click through. These show user intent and engagement. That affects organic SEO.

3Are you looking at data from older Elementor sites? Is this information outdated or obsolete?

Because of this report’s popularity, we update it with new information. We currently have various test sites running Elementor (free) and Elementor Pro (paid). We track plugin updates. (Our original article appeared in fall of 2017).

4Does Elementor’s ability to change background images on mobile devices alter your opinion?

These device-sensitive features are not new. The November-2016-release of WordPress-authored Twenty-seventeen free default theme included them. It isn’t innovative technology. It’s common sense. It doesn’t differentiate Elementor.

5Does PagePipe use Elementor Pro?

Only on experimental sites. For business owners who need a page builder, we recommend Elementor. But we point out the benefits and potential dangers of adoption.

6Are under 2-second page loads possible with Elementor and GeneratePress on shared hosting?

With discipline and skill, yes. Say “no” to bloat.

7Are WordPress’ methods of reporting the number of active users flawed?

Yes, they are. But it’s all we have. Ask them to fix it, please.

We explain retention-rate calculations:


Elementor is one of the more popular live page builders for WordPress. It has a free and paid version. Some claim it will change WordPress design. We bet the Gutenberg block editor changes the landscape more.

The Elementor plugin file weighs 5.7 megabytes compressed. And 21.5 megabytes decompressed in version 3.1.0. For comparison, WordPress core weighs 15.8 megabytes compressed (and 16.5 megabytes decompressed).

Elementor is now almost 5 megabytes heavier code when decompressed than the WordPress CMS platform it runs on. Ironic. And it’s still growing

Pagebuilder code functions slow down sites. Pagebuilder 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.

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 that they use shortcodes. 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 shortcodes. But only a few, and those are optional features … not necessary.

Elementor Pagebuilder
Active installs: 5,000,000+
Zip download file: 2.3M 4.8M 5.3M (and ever growing).
Original package weight was 1.1M.

It’s not uncommon for a page builder to add CSS and JS code to every page on your website (site drag). The average Internet desktop page weight being 2.3M to 3M. Most heavier mobile pages we test are around 500k to 750k. Our home page is 909k. The page you are reading now is 263k. You can see that an average page builder could be much heavier – without any content!

Elementor has lots of features and is easy to use – especially for novices. We aren’t fans of page builders. In our experience when themes include page builders, there’s always bloat. Not from the page builder itself – but by the site owner adding unnecessary junk. Pagebuilders 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.

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.

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.

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 300-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 700 milliseconds left to load all page assets. About half of the weight is usually images. The other half WordPress core, theme, plugins, and written content. Again, we say typical. There are many tricks like optimizing images. Or stripping webfonts. Etc.

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

OFFSITE LINK: https://wpjohnny.com/why-i-hate-pagebuilders-wordpress-review/

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.

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.

Delivering icons as a font is a hack.

Author: Tyler Sticka

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: https://pippinsplugins.com/wordpress-page-builder-plugins-critical-review/

The page builder ecosystem is a wild west right now and is in a gold rush. – Pippin Williamson

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. Gutenberg block editor intends to consume little fish.

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 bad. This is typical of popular caching plugins, too. Test and toss.

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

But Elementor plugin uses selective activation. In other words, if a page isn’t built with Elementor, the plugin is not loaded. 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 to 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.

But we wonder, could a custom home page or catalog page be constructed with a responsive column plugin? One like Lightweight Grid Columns by Tom Usborne of GeneratePress theme fame (22k package size download).

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 5,000,000 Elementor sites is collateral damage for WordPress.

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

Pagebuilder 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 with 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: Elementor is only used on pages where it is activated. So that minimizes the need.

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!” supboardguide.com 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 block-editor 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, Weebly, Shopify and SquareSpace took from them.

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

People are discovering Gutenberg block editor is faster. Then we’ll all see what real WordPress landscape changes occur. That won’t happen until complete Gutenberg block-editor is finally released after a few phases. Face it, it’s a big undertaking. It could be a couple more years. Gag!

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?

Pagebuilders 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 anymore? 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

REFERENCE: https://woorkup.com/elementor-page-builder/

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 for producing good relevant content. Owners can do that. Tweaking keyword and snippets only get you in trouble.

REFERENCE: https://pagepipe.com/ignore-googles-200-seo-signals-including-speed-learn-writing-skills-for-good-page-ranking/

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 handcuffing 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. But then one could say that about any plugin or theme, too.

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 gold-rush panic and feature obsession make 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 block-editor reaches stage 3, it’s a done deal. Their intent is replacing all page builders. Will Gutenberg be faster? Yes. Will it be better? We don’t think so. All page builders are a bane for intelligent designers. It’s a substitute decision-maker for web-design weaklings. Most of our sites have “Disable Gutenberg” or “Classic Editor” plugin installed.

REFERENCE: https://gutenberghub.com/gutenberg-vs-elementor-html-bloat/

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

REFERENCE: https://woorkup.com/elementor-page-builder/

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

7Elementor loads unneeded CSS and JS or code in general that is not in use. They need to add global control to enable/disable widgets/elements. This is dequeuing. Then if we never use a widget, we can disable it. This feature does not exist yet making Elementor inefficient. Doing this automatically rather than disabling widgets manually would be even better. A large percentage of the CSS loaded is unused, heavy, and impacts mobile page size and performance.

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 a few 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.

@michaelnorthern , yes unfortunately Elementor is becoming bloated. They implement half-baked features and then leave them without polishing only to be able to state that they have that feature. This trend has been going very long time. I was banned from the FB group for critiquing them for their focus on marketing/selling more than on fixing important issues and improving the core.
And now with competition like Brizzy and Oxygen they will have more and more abandonment.

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.” Strategy 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 any other free plugin we’ve encountered to date.

Design is a compromise.

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

LYTE by default uses WordPress “the_content”-filter. Pagebuilders (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.




6 Disadvantages of WP Page Builders and Why I Now Loathe Them



Harness block-editor power.
Build fast, good-looking websites.
No page builder needed.

Be fast – without being ugly.

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 ‘your-domain-name.com/go/link’.

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
Affiliate Links Lite,3.1,5000+
Premium Link Cloaker Lite,8.9,10+
Easy Affiliate Links,9.1,10000+


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

  1. Affiliate Links Lite plugin is the lightest and fastest.
  2. 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.

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+
Zip archive: 200k


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.

What is the fastest free WordPress theme?

Which WordPress theme would we choose for best mobile speed? You can’t judge by looking at the theme on a desktop screen – nor by a demo page. You have to test with either iPhone simulators or web tools like Firefox browser addon:

Web Developers Toolbar → Resize → View Responsive Layouts

Or real hardware devices. No one owns that much hardware.

And how a theme looks – the “Out Of the Box Experience” (the oo-bee) – is nothing like the beautiful demo page. When you first install your new theme, disappointment!

Unfortunately, theme selection is often based solely on looks (aesthetics). Demo-page performance is deceptively “tuned and tweaked.” Premium themes are available for sale from marketplaces and individual WordPress developers. Purchaser speed-evaluation or testing is rarely done at all. It’s a faith-based buy. Speed is an after-the-fact repair job. This is “consumer-like” impulse buying. There’s buyers remorse for a non-returnable theme product. We’ve been there. We sympathize.

Our speed philosophy starts with a stripped-down, free theme. Then add only necessary features with free plugins. This is the foundation of good speed design. These kinds of themes are sometimes called: stripped-down, bare-bones, generic, basic, naked, essential, fundamental, or “bootstrap.” Those key phrases return pages full of affiliate links to theme-publisher houses. The blog author gets a kickback. Bloggers aren’t motivated to help you – as much as help their wallet.

We’ve found free themes in the WordPress directory often get a bad rap. Paid-theme publishers claim free themes have inherent flaws. This is advertising hype (aka lies). These imagined flaws include:

  • Lack of Updates
  • Security Problems
  • Lack of Support
  • Lack of Features
  • Lack of Customization

Nothing could be further from the truth. You can get the same lousy service from paid authors. Some of the biggest and best authors in the business fall flat on their faces sometimes. Even WordPress makes security mistakes and suffers from favoritism and apathy. Don’t believe myths that “premium” themes are better – or delivers better guarantees.


Many blog thought leaders say the right web hosting is critical. Even more critical than theme and plugin selection. This isn’t true. And you can bet whatever host they recommend is an affiliate link, too. (More kickback money).

We’ve only seen short duration when hosts provide consistent and reliable services. And we aren’t just talking shared hosting. We mean all hosting. From SiteGround to BlueHost to HostGator to DigitalOcean to GoDaddy. It doesn’t matter if they’re solid-state disk drives or old, mechanical, magnetic drives. “Reliable and repeatable” speeds drift all over the map. Why? Ask them. They won’t give you a straight answer.

Worst-case performance today – is tomorrow’s average (poor) performance. Hosting companies get juggled around from owner to owner. With each new owner, comes policy changes. Different management brings either better or worse predictable performance. It’s hard to know. It’s always random. If you had a different experience, please email us.

So the answer is: build the best and fastest strategic website to run well even on crummy hosting. That way you aren’t disappointed. We’re convinced, with even expensive web hosts, you don’t get what you pay for. We want cheap, shared hosting. We prefer not to share our server with too many other people. (For example, PagePipe shares with 24 other web domains). Use YouGetSignal.com to find how many domains are on your server.

Time to First Byte Specifications

We want to get a good TTFB (time to first byte). This is a measurement in milliseconds. It’s how long a user’s browser waits before receiving it’s first byte of data from the host server. It includes “network latency.” Data makes trips back and forth between server and browser. A long wait slows down seeing the page. Theme selection doesn’t affect TTFB. It is completely host dependent. But if your theme is too slow and your TTFB is slow, also, you’re doomed to always have a slow site.

  • 100 to 200 milliseconds TTFB is excellent.
  • 300 to 500 is good.
  • 500 to 800 is average.
  • 800 to 1000 milliseconds is poor.
  • Above 1 second is not “happiness.”

One client using BlueHost shared a server with over 2,000 other domain names. They wondered why their TTFB was always 4 seconds. Ouch!

TTFB is not web speed. It’s server responsivity. You can measure TTFB online with WebPageTest.org or with http://www.ByteCheck.com/

An offsite link about cheap hosting.


When you design a site for strategic speed, you use a performance budget. The industry-standard budget for best practice is under 2-second page load time. If your TTFB is 800 milliseconds, that server overhead reduced the amount of budget to 1.2 seconds. If TTFB is 100 millisecond, you have 1.9 seconds of pure luxury. That sounds like a small bonus. But believe us, you can add many extra features in 700 milliseconds.

Did we search for a shared host with 100 to 200 millisecond TTFB? Yes. And we found one. And even tested it: iPage.com We don’t get a kick back. We’re not an affiliate – so only click the link once. Save electricity. Did we switch to iPage? Nope.

Read about fast, web-hosting reviews offsite at: Woodstitch

More about TTFB improvement offsite at Kinsta.

NOTE: On these two links above, their reporting is honest. But it didn’t always match our experience in every regard. So test for goodness sake!

SPEED NOTE: After reading Brian Jackson’s article at Kinsta, we decided to try Cache Enabler plugin again. We saw no benefit before – as a caching plugin – and unknowingly tossed it. But Brian was claiming it improved TTFB. We found it hard to believe. This time we watched a video on how to set it up. TTFB dropped from 600 milliseconds to 350 milliseconds. That speed benefit happened across the board on every theme tested. Fantastic! We turned “GoDaddy-quality” into “iPage-quality” hosting with no extra cost! Thanks, Brian.


There are 4,476 free themes in the WordPress theme directory (2017). Of those, only 1,470 are responsive. All the rest are fixed-width junk. No one should design today with a theme that doesn’t adapt to small-screen size. That limitation immediately reduced the number of candidates.

We had three criteria for the remaining 1,470 free responsive themes:

  1. Updated in 2017. Too many changes occurred in WordPress during the last quarter of 2016 and the first quarter of 2017. Some were functional and some security issues. We only wanted current and active themes supported by conscientious authors.
  2. The zip package size must be under 1M download. An arbitrary cutoff based on our experience unpacking, examining, and testing themes. It’s our rule of thumb. Only theme authors who care about speed keep the download package small and tight.
  3. They can’t be a child theme.

That reduced our database or sample size to 155 themes. That’s all! Those 155 themes went into a spreadsheet and sorted by decompressed package size. We then examined the contents of the TOP 10 smallest packages. And we also considered the number of active installations (popularity).

These themes by nature are plain and unadorned. Boring but functional. The principle goal is communicating and publishing. We want web content readable on a small device. Expressive aesthetics are second priority. It boils down to reading. People rarely view portfolios seriously on phones.

Speed Strategy requires:

  • Focus on content and interactions. Not on details, images and elements (space-filling prettiness).
  • All elements must have purpose and value.
  • Design for user experience – easier content consumption.
  • Test on a small screen first and later a larger screen.

We loaded sample content “test-data.xml” from WordPress’ Theme Data Test page.

(Use WordPress Importer plugin and Dashboard > Tools > Import).

We installed the following free, speed enhancing plugins:

We then installed the TOP10 themes candidates on a cheap, shared-hosting site (GoDaddy). And checked each resulting load time with Pingdom.com:

(Sharing with 25 other domains. TTFB: 500 to 600 milliseconds. Install Cache Enabler plugin and subtract 200 milliseconds from the load times below.)

theme,installs,fonts removed,load time ms
Basic,10000,PT Serif/,760
Grace,1000,open sans/raleway,835
Triad,1000,open sans,1000
Techism,1000,open sans/helvetica,1030
Emphasize,1000,open sans,1250

We stripped the webfonts using Remove Google Fonts References plugin. We prefer websafe fallback fonts instead. Removing webfonts reduces 160 to 260 milliseconds from the page speed. Those are the final speed numbers shown above. We recommend this extreme method for mobile performance. Most people can’t tell font differences on small screens anyway. It’s a waste of resources. Most designers are underestimating the effect web fonts have on mobile speed.

Google Fonts is an open-source, third-party, font directory. According to BuiltWith, over 44% of the top 10,000 websites use Google Fonts on their websites. Slow. They need linking to an external asset on a distant server. You might see errors or warnings that the resources are missing a cache validator. Or that they require expires headers. These are fixed at the server level, and when they are on a third-party server you have no control over fixing them. Don’t use Google Fonts. Easy speed solution.


We then focused on the TOP3 themes popularity: Pacify theme (1000 installs), Basic theme (10,000 installs), and Generic theme (500 installs). Basic Theme had something the other two didn’t: 10,000 installs and lots of functionality. Popularity doesn’t count much in our book. But in this case, the theme will have a longer shelf-life potential. Basic Theme is our final choice.


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 1 million+ active installs. 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 1 million active installs = $108 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 (125k download) does all the essential OptinMonster functions for free – plus some – and doesn’t weigh a ton. Hollarbox is lightweight and loads fast. hollerwp.com/

Holler Box – WordPress Popup Plugin for eCommerce
Load Time: 20 milliseconds

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: 475k

Load Time: 40 milliseconds

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.

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.


A kind letter from Angie Meeker about OptinMonster improvements:

Hey Steve,
Angie Meeker here from OptinMonster, Customer Success and Operations Manager. I was checking out your article on our WordPress plugin that was updated in May. It looks like you haven’t seen yet that we do indeed offer a free plan so I wanted to make sure you understood why you aren’t seeing it yourself. 

If you already have the plugin installed and connected to your existing OptinMonster account, you won’t see that option because, of course, you already have an account. However, if you install a fresh version of the plugin (perhaps on a Local site), you’ll see the options to either connect to an existing account, or register a free one.

Our Forever Free plan is available only to users of our WordPress plugin, and includes 2 campaigns, five campaign types and up to 500 campaign impressions per month. Our Forever Free subscription includes all of the features of our Basic subscription. It’s a great option for users just getting started with lead generation or who are still building traffic to their websites. You can see detailed screenshots of the process to register a new free account here: https://optinmonster.com/docs/how-to-install-the-optinmonster-wordpress-plugin/

We launched this plan in October 2020. You can see from our reviews on WordPress.org that users are loving the free option: https://wordpress.org/support/plugin/optinmonster/reviews/. We even offer to build their first campaign at no cost, even for free users.

I think some of the confusion may come because OptinMonster is a SaaS product, not simply a WordPress plugin. For years, our free WordPress plugin has unlocked additional functionality for our users who choose WordPress as their CMS. Using the plugin…

  • They have the option to target categories and tags even when their permalink structure doesn’t allow it from within our SaaS product.
  • They can use WordPress shortcodes in any campaign. That means they can use the shortcodes from their favorite form builder to add complex, custom forms to their OptinMonster campaigns, or even WooCommerce shortcodes.
  • It provides deeper integrations with ecommerce platforms like WooCommerce, and provides a way for other developers to extend the functionality of OptinMonster within the WordPress ecosystem.
  • It even lets you place inline campaigns using a widget, or a Gutenberg block. 

All of that extended functionality is wrapped up in our WordPress plugin. For that reason, the plugin has resided in the WordPress plugin repo for years as a totally free plugin, in the same way HubSpot, MailChimp, SalesForce and many other SaaS products have connector plugins that provide additional functionality at no cost. Then, recently, we added the option to also register a free OptinMonster account through the plugin directly, as an added benefit for the WordPress community.

We do offer monthly subscriptions in addition to annual ones. Annual pricing is found at https://optinmonster.com/pricing and monthly pricing at https://optinmonster.com/pricing/monthly. The monthly pricing link is found in the FAQ at the bottom of the pricing page: https://a.supportally.com/Ns34JU

And, we’ve also made significant improvements to the plugin’s load times since early this year, too. That said, anytime we get a report of someone’s site loading more slowly because of the plugin, we’re happy to take a look to see if we can help. Oftentimes, we’re able to help resolve those issues directly.

If you have any questions about OptinMonster or need clarity on anything I’ve shared above, feel free to hit reply and let me know. I’m happy to help.

Whether you choose to update your article as a result is entirely up to you. Of course, I hope you will :-) but more importantly, I wanted to share some resolutions to your key questions. You took the time to investigate OptinMonster which we appreciate, and we clearly could have done a better job at making the answers to your questions more obvious when you did.

Best wishes for your success,

So does PagePipe now advocate or affiliate with OptinMonster? Sorry. Still no plugin love from us.

We love Angie but we do not love OptinMonster. We thought it fairest — since Angie worked so hard explaining.

We think popups are a bane for user experience and speed. We hate popups. They’re annoying and intrusive. So even free and theoretically faster isn’t good enough. We don’t want plugins that use APIs. They cause server delays.

Afraid you’ll get hacked? Secure your site with free and fast 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. Using Pingdom.com, 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! (1,000,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.”
REFERENCE: https://www.cnet.com/how-to/the-guide-to-password-security-and-why-you-should-care/

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

Here’s another offsite link that talks about password strength and it’s importance. https://www.bestvpnrating.com/password-security-tips

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. WARNING: Don’t use this if you are migrating your site. It will screw up your database. If you use GreekGeeks Hosting, they take care of changing the database name for you during migration. Nice.

OFFSITE LINK: https://wpmudev.com/blog/wordpress-database-prefix/

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. Use, Limit Login Attempts Reloaded. It works with PHP version 7.x and newer.

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!

1Limit Login Attempts Reloaded (1ms)
Active Installs: 900,000+
package download size: 107k

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)
package download size: 11k

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)
package download size: 12k

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
package download size: 77k

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.

Testing iThemes Security plugin: 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.

Update: We now recommend a different newer link checker plugin. Read about it here:
REFERENCE: https://pagepipe.com/dont-slow-down-your-site-with-a-broken-link-checker-plugin/

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 8 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 the 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.


These are non-essential security measures for the fearful. Many “security” measures do nothing for security while missing out on important things like login protection and password strength.

Want to complicate your life in the name of absolute security so you can pass an odd security test? Like https://securityheaders.com/ 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 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.

The Herd Mentality of “Essential” WordPress Plugins.

If you search the phrase “Essential WordPress Plugins,” you’ll get about 1.8 million results. They all tend to regurgitate suggestions for the same old plugins. Copycat content. No wonder the identical plugins keep getting more installs. Even when better alternatives exist.

Sorting and testing all the new plugins is too much work. So people don’t test. They assume. The assumption is “popularity” is good. For plugins, that is usually decided by looking at the number of active installs. Active installs is not a sign of quality or performance. It’s a standard of herd mentality.

Herd mentality, or mob mentality, describes how people are influenced by their peers to adopt certain behaviors. Examples of the herd mentality include nationalism, stock market trends, superstition, and home décor. —Wikipedia

Many recommended “essential” plugins have negative speed repercussions.

Our rule of thumb is: the more popular a plugin is (active installs), the higher the probability it’s a slow loading plugin. Why? We don’t know exactly why this correlates. But it holds up in our speed testing.

It’s the quality –not quantity– of plugins that slows down a site. Speed testing free plugins and themes is our specialty.

PagePipe.com (our blog) has 53 active plugins. It loads in under a half second in the USA and about 1.2 seconds for Europe (Pingdom.com). It can vary. That is using the cheapest, shared, old-magnetic GoDaddy hosting located in Arizona. No CDN. It will go even faster when GoDaddy updates to PHP 7.1 – but they’re running on outdated version 5.4. We share our server with 24 other domains. Why? We want to prove a point: You can use “speed strategy” rather than throwing money at load-time problems.

Our Mantra is avoid popular plugins. High number active installs means they’re the slowest.

We don’t know why “popular = bloated.” We speculate the plugin authors are content and apathetic to speed and quality. Popular plugins existed first and use old unoptimized coding techniques (obsolescence). They tend to get heavier with revisions instead of lighter (kludges).

The authors of old plugins don’t have competitive motivation to be lean for speed. This isn’t true for newer, less-installed, lighter plugins. Speed (load time) is now a desired feature we’re seeing more because of mobile devices. But fresh, fast plugins are not easy to find. There are 50,000+ plugins in the free directory. Wow! An ocean. We’ve calculated the directory growth rate and it’s 20 percent annually. That means 10,000 more plugins potentially in 2017.

What is more characteristic of “goodness” is retention rate. That’s calculated by taking the active installs and dividing by the number of downloads for all time. A plugin with a retention of 20 percent is pretty good. If it’s 5 percent or less, it’s a danger sign. They were tried – and dumped.

Slow plugin’s download file size is a clue. Bigger files load slower. There are some exceptions – but they are few.

Typical erroneous herd plugin suggestions

Always recommended by unknowing blogs.

Myth: A plugin to protect your site from spam comments is vital. Prevents user registrations from bots.
The usual recomendation is Akismet (installed with WordPress).
We say: Disable comments with a plugin. And get rid of Akismet, too. They’re a waste of time. Read more here:

Google XML Sitemaps are supposed to help SEO. We’ve found they are unnecessary. Google is quite capable of crawling your site fast. The best reason to include a sitemap is for visitors to find things. This is called “findability.” So we recommend using an HTML sitemap. But we’ve found a nice plugin that does both:
Simple WP Sitemap, Active Installs: 30,000+, download size: 115k.

All In One Schema.org Rich Snippets plugin. Fiddling with snippets is unproductive. Read more: https://pagepipe.com/speed-up-yoast-seo-plugin-remove-it/

Myth: Caching plugins speed up your site and make it quicker to access.
The usual recommendation is either W3 Total Cache or WP Super Cache plugin. We’ve find no speed improvement from caching plugins on well-optimized websites. In those conditions, there is no measurable benefit from caching. Except for one caching plugin, and it didn’t improve caching, it improved TTFB which is a server-side improvement in speed.

Cache Enabler, Active Installs: 20,000+, download size: 17k

Usually improvement from caching plugins is from some other function that is not caching related – like enabling Gzip code compression.

Lazy Loading Images
The usual recommendation is BJ Lazy Load. It is not our preference for speed. We’d recommend:
Rocket Lazy Load, 8,000+ installs, download size: 361k.

and for YouTube and Vimeo videos:
Lazy Load for Videos, 6,000+ active installs, download size: 254k.

Contact form
Myth: A contact form is the standard now for most sites.
The usual recommendation is Contact Form 7.
We don’t believe contact forms are necessary. They slow down your site. Use a large-size, email text link instead with Email Address Encoder plugin, 80,000+ installs, download size: 5k.

Myth: Gallery plugins enhance or replace WordPress native galleries. These are also called “slider” plugins.
They always slow down a page load. And they are proven ineffective for navigation and SEO.

Image optimization
Myth: Plugins always help compress the file size down to a sane level.
The most common and worst recommendation is Smush Image Compression and Optimization plugin. Read more about better alternatives:

For significant image optimization, we recommend:
Imsanity, 200,000+ active installs, download size: 152k

Search Enhancement
Myth: Plugins can increase the power and relevance of your searches to users.
The most common recommendation is Relevanssi plugin.
Read why the Relevanssi plugin author says not to use this particular plugin any more:

Myth: SEO plugins will help your site rank higher in search engines.
The usual recommendation is either “All in One SEO Pack” plugin or Yoast SEO.
SEO plugins are a waste of time. Read more about why you shouldn’t install an SEO plugin:

Myth: WordPress security plugins don’t affect speed.
The usual recommendation is iThemes Security (formerly Better WP Security).
Most people don’t know security plugins slow down your site and use up server resources.

Social sharing
Myth: A social sharing plugin improves site traffic and SEO.
We don’t believe social media marketing is a vital part of content marketing these days. It’s a controversial topic. But from our research, it is usually unproductive. Only 12 likes on your blog page isn’t very convincing or credible. It’s hard work to generate beneficial traffic from Facebook – an unproductive waste of time.

Most Facebook widgets and counters drastically slow down your site. Are you really getting a good return on your time investment with social media links? We’ve seen one-second wait times for Facebook counter widgets.

Broken Link Checker
This plugin slows down your site by consuming server resources. Broken Link Checker plugin is a RAM hog. It’s best to leave it disabled and only run it manually – not automatically. We keep Link Checker deactivated and only run it once a month.

We see nothing wrong with this plugin suggestion other than it’s heavy. It automatically adds a 301 redirection when a post’s URL changes. The Redirection plugin has 700,000 active installs, and the download weighs 516k.

We use:
Simple 301 Redirects, Active Installs: 200,000+, download size: 5k. Much lighter.

MailChimp for WordPress
We actually use MailChimp. It does cause site drag. But we use:

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!

Anti-spam: Disable comments and get rid of Akismet, too.

Myth: A plugin to protect your site from spam comments is vital. Prevents user registrations from bots.
The usual recomendation is Akismet (installed with WordPress).
We say: Disable comments with a plugin. And get rid of Akismet, too. They’re a waste of time.

Comments are a unique and tightly integrated feature of blogging. But the Internet has changed. It’s an uglier, more cruel environment.

Trolls are people who leave hateful or disrespectful comments for no apparent reason except for the attention that they receive.

Akismet is part of a cloud-based spam-filtering system. It checks your blog comments against the Akismet Web service to see if they look like spam or not. It’s THE number-one most popular plugin with over 52 million downloads (not installs). It’s preinstalled by default on every WordPress self-hosted option. Now you understand why it’s “popular.”

The plugin download weighs 57k zipped (182k decompressed). Small for a popular plugin – not the usual enormous size. Load time: about 8 milliseconds (tested with P3 plugin).

We don’t use Akismet anymore. Not because it might let spammers hack the site or may delete legitimate comments. Not because flagging comments as spam lets the spammers leave their garbage and the blog owner has to review each comment. Not because it’s a waste of time. Not because of false positives: Akismet has a reputation for flagging good comments as spam.

Not because all that Akismet junk uses up our bandwidth, disk space and clutters up our WordPress database with comment metadata.

We ax Akismet immediately because of two reasons: it’s not free and comments are stress producing.

Akismet is not free. Many plugins are free that do the same thing.

“Now Akismet spam catching technology is free for non-commercial personal blogs but if you maintain a corporate blog or run a network of blogs, you are required to buy a commercial license of Akismet that starts at $5 per month. Professional bloggers, or anyone who makes more than $500 per month in advertising revenue from a WordPress blog, is also required to pay $5 per month for the Akismet license.” – http://www.labnol.org/internet/blogging/how-wordpress-makes-money/7576/

If you make money selling anything and use Akismet – ads, books, downloads, services, or products, you owe $5 per month to Automattic as of March 2016.

Builtwith.com sells stats and a list of Aksimet users: “Get a list of 421,388 websites using Akismet which includes location information, hosting data, contact details, 108,071 currently live websites and 313,317 sites that used this technology previously.” There are 100k current users who pay – sounds possible. That’s $6 million dollars in repeat annual income. That’s realistic numbers.

Official prices: https://akismet.com/plans/

Plus version is $5 per month, per site. Claim: Spam protection for professional or commercial sites and blogs.

Premium versions is $9 per month, per site. Claim: The complete security solution that protects you from more than just spam.

WordPress has been pushing the Akismet plugin forever. Is it worth the price? No! There are better, free, alternative plugins. And you don’t end up on a mailing list.


Despite its popularity, Akismet really doesn’t perform better than similar spam-prevention plugins. Here are Akismet alternatives that outperform Akismet in any benchmark:

Bad Behavior plugin
There have been some troubles with old versions of this plugin so make sure you install the latest for security reasons. Bad Behavior prevents spammers from ever delivering their junk, and in many cases, from ever reading your site in the first place. Spammers are shown an error message instead of your website. There is an error key in the error message that humans can use to gain access to your website should they be blocked accidentally. (60,000+ installs, 175k download size).

Antispam Bee
This is the most widely known and used alternative anti-spam plugin. Antispam Bee has many options and features and is also easy to use. It’s reported to be very fast and also offers a spam counter on the dashboard. (700,000+ installs, 84k download size). This the plugin we prefer.

AVH First Defense Against Spam
The AVH First Defense Against Spam plugin gives you the option to block the spammers by the Area Name or the I.P Address. This plugin checks for any spam activities using Spam databases such as Honeypot and StopForumSpam. (10,000+ installs, 138k download size).

Anti-spam plugin
Anti-spam plugin blocks spam in comments automatically, invisibly for users and for admins.

  • No captcha. Spam isn’t the visitors’ problem.
  • No moderation queues. Spam isn’t the administrators’ problem.
  • No settings page, forget about spam completely and keep the WordPress admin section clean.

Plugin is easy to use: just install it and it works. (100,000+ installs, 10k download size – tiny!). Plugin blocks spam only in comments section. Load time: about 2.5 milliseconds (tested with P3 plugin) Faster than Akismet.

Cookies for Comments
This plugin adds a stylesheet or image to your blog’s html source code. When a browser loads that stylesheet or image a cookie is dropped. If that user then leaves a comment the cookie is checked. If it doesn’t exist the comment is marked as spam. The plugin can also check how long it took a user to enter a comment. If it’s too fast it’s probably a spam bot. How fast can a legitimate user enter their name, email, web address and enter a well thought out comment? (30,000+ installs, 8k download size). Load time: about 0.8 milliseconds (tested with P3 plugin) Faster than all other plugins!

If you use wp-minify make sure you add the Cookies for Comments CSS file to the list of CSS files that shouldn’t be minified.

No Spam At All
No Spam At All prevents spam comments on your WordPress blog. The plugin filters out comments that are posted by robots. Go from 3,000 spam comments per day to zero spam comments per day. If you have bulk of pending spam comments, No Spam At All will help you manage the comments with just one click. (900+ installs, 78k download size).


Comments are making the Internet worse. So we got rid of them. We are free! Peace of mind.

Note: Christian, our favorite editor, thinks this is a lame solution/excuse. We love his remark, “It’s a lot like saying, ‘I’m worried about some fatal illness, so I’m going to kill myself before that can happen.’” Christian keeps us honest.

Decision based on science. Researchers have found that when readers are exposed to uncivil, negative comments at the end of articles, they trust the content of the pieces less. (Scientists dubbed this the nasty effect.) Negative comments accompanying an article caused readers to hold the article in lower esteem. In an increasingly competitive environment, websites can ill afford to have their content and brands tarnished this way.

Stop the harm caused by comments to readers, writers and site brand. Comments should be heavily moderated to promote civil, intelligent conversation; otherwise, they should be removed. If you don’t want to take the time to do it yourself, hire a virtual assistant to moderate your comments for you.

What you blog about will determine whether comments are useful or not. It’s not a one-size-fits-all thing.

Christian notes again: “Lots of people love reading negative blog comments.”

The Rising Trend of Turning Comments Off

The burden of moderation, spam, and the availability of other conversation “outposts” (like Facebook) are the main reasons for closing comments.

WordPress users are constantly on the hunt for better tools to help manage commenting and mitigate the unrelenting onslaught of spam. Publications turn comments off for different reasons, but it’s rarely due to the fact that they do not appreciate the comments left by genuine community members. Oftentimes, the burden of spam moderation becomes greater than the benefit of conversation on posts.


The intensive resources required for fair and effective moderation, and the human toll moderation takes on the moderators, most are deciding it isn’t worth the trouble to leave comments on. Most bloggers would rather devote time and energy to working on stories and interacting with readers on social media or via email. Comments have too low of a return on investment any more (ROI).

You don’t have to deal with spam, vitriol, and people who wrongly assume your blog’s comments are a support forum.

We prefer “no comments” to a curated list of positive comments.

The solution for sites where interaction isn’t critical? Turn the comments off. Trolls, spambots, and a “fractious minority” detract from intelligent conversation and sharing. While there are provisions for turning off comments in WordPress, we like these plugins below and use them often when retrofitting old sites.


No Page Comment
An admin interface to control the default comment and trackback settings on new posts, pages and custom post types. (30,000+ installs, 23k download size).

★ ★ ★ ★ ★
Disable Comments

Load Time: 60 milliseconds

Disable Comments
This plugin allows administrators to globally disable comments on any post type (posts, pages, attachments, etc.) so that these settings cannot be overridden for individual posts. It also removes all comment-related fields from edit and quick-edit screens. (900,000+ installs, 79k download size).

Comments Disable – AccessPress

Load Time: 40 milliseconds
Disable comments on site globally with just one click. Comments can be disabled according to post type. (4,000+ installs, 115k download size).

WP Disable Comments

Load Time: 0 milliseconds

This plugin allows administrators to disable comments, trackbacks and/or pingbacks on a site or a network. The goal of this plugin is to be as comprehensive as possible and at the same time provide the flexibility to just as much as you want to. (6,000+ installs, 100k download size).


If you remove the “Disable Comments” plugin, and you want to get comments back “on”:

1. Remove the Disable Comments plugin.

2. Change the default article settings under WordPress “Discussion” to “Allow people to post comments on new articles”

That makes it work on new posts. But …

Found this on a technical blog:

“The setting at Settings > Discussion only enables the *default* for *future* posts, it does not effect existing posts in any way.”

It can be done manually now one-by one. On new posts, it is automatically activated. Tedious.

THE SECRET: How to globally and retroactively activate comments on old posts.

The solution:

  1. Posts > All Posts
  2. Change default from 20 posts per page to 200 in the admin screen. Go to Screen Options in the top right corner and change the number of Posts Displayed per page.
  3. Select the posts to edit with “all” checkbox at top of list.
  4. Click on the Bulk Actions dropdown menu.
  5. Select Edit (same dropdown) and click Apply. No changes happen yet.
    In the Comments dropdown, select Allow. Then Update.
  6. Done after a wait.
  7. Reset default to 20 posts.
  8. Do random check of a post. Bingo. They are back. :)
  9. Clear all caches including CDN.
  10. Backup to preserve the new changes.
  11. Done.


Some plugins Autoptimize eliminates for speed.

Autoptimize is a multipurpose plugin. In most cases, we hate multipurpose plugins like Jetpack or Yoast SEO. They’re bloated, slow, and heavy. We especially dislike including features that concatenate JavaScript, CSS, or HTML files. These minification plugins often break sites.

REFERENCE: https://pagepipe.com/concatenation-is-the-site-killer-not-minification/

Our preference is discrete plugins with one function and no settings. Why? You can selectively deactivate (bonus) – and they usually load in under 1 millisecond.

Note: Don’t use the recommended WebP images suggested by Autoptimize. They don’t help much and won’t work cross-browser. We aren’t fans of WebP format developed by Google zealots in 2010. Not cool. Really.

Autoptimize loads in 18 to 25 milliseconds. That’s the equal of installing 18 discrete plugins. But if you *need* Autoptimize, there’s an upside. Keep reading.

 It’s an odd plugin – but not obscure. Autoptimize is popular with over 1 million installs. Most often, it’s installed for minification benefits reducing requests. But many cool features go unused. Most people use the default settings and figure that’s good enough. And usually, it is. But there are bonuses if you want them for speed.

There’s an opportunity to remove 7-speed plugins when using Autoptimize plugin

  • a3 Lazy Load
  • Cache Enabler (or other caching plugins)
  • Disable Emojis
  • ShortPixel Optimizer
  • WP Remove Query Strings from Static Resource
  • Remove Google Fonts References
  • Any minification plugin like Better WordPress Minify plugin or others.

The Autoptimize plugin recommends using Cache Enabler plugin in tandem with it. Please test your speed without it first. We like Cache Enabler but it isn’t always necessary on a well-optimized site.

Enable the Autoptimize features as shown in the following screens:

Click to enlarge.

Click to enlarge.

Click to enlarge.

Dump ShortPixel plugin, too.

Autoptimize recommends ShortPixel Optimizer plugin. If you’re using ShortPixel, remove it. And then install free Imsanity plugin for image optimization. ShortPixel costs money. Oh? Didn’t they tell you that? Read the plugin fine print.

REFERENCE: https://pagepipe.com/how-to-optimize-images-for-mobile-speed-with-imsanity-plugin/

Click to enlarge.

Click to enlarge.

Is there any lightweight firewall plugin substitute for WordFence Security plugin?

“Wordfence is slowing down our site. What’s PagePipe’s suggestion?”

Removing the WordFence Security plugin speeds up your site. When you pull it, how do you protect your website – and still get fast speed?

We remove WordFence from sites during “plugin surgery” (site-origin optimization). Let us tell you why:

On a recent project, WordFence Security plugin caused 545 milliseconds of “site drag.” The plugin was one of 20 installed. It alone was 46 percent of the plugin speed overhead. That’s when a plugin does global loading on every page and post. It slows down the entire site.

Selective plugin activation tricks won’t work for security plugins.
REFERENCE: https://speedhospital.org/speedswitch/

WordFence Security is a heavy plugin. In our case study, it consumed 25 percent of the 2-second performance budget. This is an unpublished technical specification. The plugin author is under no obligation to share speed consequences. This is a convenient sin of omission.

Could we predict this plugin would be slow without installing it?
The answer to that is:


Here are the biggest indicators:

1. WordFence Security is a popular plugin. It has 4-million active installations. The natural assumption is it must be the best. We have found a direct correlation between popularity and speed. The more popular a plugin is – the slower it is. Is it always that way? So far. Until WordPress requires accountable publishing of speed impact in read.me files (Maybe never?).

2. The WordFence Security zip package size is 4.9 MB. Super fat. Uncompressed it’s 13.6 MB. For comparison, how big is the WordPress core download? 16.5 MB zipped download. (52.9MB unzipped). That puts the plugin heaviness in perspective. It’s about 25 percent of the size of the system you’re running on.

How big was the original WordFence Security version 1.4.1 zip file size? 1MB. Did the decompressed super file size increase significant features? We doubt it. The extra bloat is marketing popups and nag screens. These *encourage* upsales and addons to the Pro version. They’re annoying.

WordFence Security plugin is a Swiss-army knife plugin. It does everything. We prefer discrete plugins that perform one simple function with few or no settings.

Are there better lightweight plugins that block malicious file upload?

Yes. We sell this $9.95 ebook:


But since you asked, here’s what we’re using today for security:

1. Limit Login Attempts Reloaded prevents a brute-force attack: https://wordpress.org/plugins/limit-login-attempts-reloaded/
No settings needed. But we usually change the “4” attempts to “17.”

2. The Change Table Prefix plugin protects your website from SQL injections: https://wordpress.org/plugins/change-table-prefix/
It requires a setting is to change the prefix. We don’t use this on sites that have been migrated. It often will nuke the site. White pages. Many hosts now automatically change the database prefix for you when you migrate to their services.

3. BBQ: Block Bad Queries plugin protects your website against malicious URL requests. Hackers can redirect user requests from your site to an illegitimate site. No configuration required.

4. Deactivate XML-RPC Service plugin: Disabling WordPress XML-RPC is a precautionary measure against brute force attacks. No settings. https://wordpress.org/plugins/deactivate-xml-rpc-service/

NOTE: This plugin is not longer needed when using Limit Login Attempts Reloaded plugin. It has this security feature built-in now. No setting required.

5. The Email Address Encoder plugin protects email
addresses by hiding them from email-harvesting bots.
No configuration required. But we recommend selecting: Notices and promotions: Hide notices and promotions for all users. This prevents annoying nag screens.

These 5 discrete plugins will add only 9 milliseconds to your site.

But here is the biggest tip of all – and it has nothing to do with plugins:

Change your WordPress login password. Make it anything that has a total of 12 characters, numbers, or symbols. Make it lower and upper case for a few characters.

For example:

Nine-character passwords take five days to break. 10-character words take four months. 11-character passwords take 10 years. Make it 12 characters, and you’re looking at 200 years worth of security – not bad for a little letter.

How to fix Twenty Twenty default theme’s font speed problem.

What you should know about the Twenty Twenty theme – and potential mobile speed problems.

We tested the Twenty Twenty default theme. We strip the theme and WordPress core, using our usual plugins. We describe that process in this video about the Twenty-nineteen theme:

REFERENCE: https://pagepipe.com/under-1-second-page-speed-with-twenty-nineteen-theme-and-heavy-video/

Default Twenty Twenty theme demo.

There is one gotcha we’ve never seen before. Read on.

In the Twenty-nineteen theme, the developers were kind enough to use a mobile system font stack. Great for speed. It’s a 385k zip file download.

But in Twenty Twenty, there’s a font in the stack called “Inter.” It’s a variable font. This isn’t an accepted technology yet. There are known issues with variable fonts in Chrome. In particular, on Microsoft Windows.

The request for “Inter Var” isn’t for a Google font. Inter font is a Google font now but still seeing the same troubles in speed waterfalls. Plugins can’t remove it. Nor is it a system font. We’re not sure why they used it except they thought it was cool. It’s a speed liability. To remove it, you have to add custom code to the customizer:

h1, h2, h3, h4, h5, h6, p {
font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
body {
font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans;

But even that custom CSS fails. To remove the 800-millisecond delay caused by this font, we deleted the code from the theme style.css file. Even if you use !important to force it.

BEFORE removal of Inter Var

AFTER removal of Inter Var font. 800-milliseconds faster load time.

We don’t appreciate being experimental guinea pigs for faddish slow font features like variable fonts.

After stripping the theme and core, load times on shared hosting are about a half-second. There are only 5 requests per page.

Adding Autoptimize plugin creates no gain in reducing the number of calls. jQuery is not activated by the theme. That’s a nice speed bonus.

Twenty Twenty theme is a 638k zip file download.

★ ★ ★ ★ ★

Load Time: 140 milliseconds

We’re happy to report a plugin called Twentig is now available in the WordPress plugin directory for free. The plugin allows you to remove the Inter font eliminating the over 500-millisecond slowdown on all pages and posts. The lightweight plugin download folder weighs only 36k. Site drag is under 1 millisecond. Beautiful for speed. That stinking font is finally GONE! Fast system fonts instead.

Customizer > Twentig Theme Options > Fonts > Body Font > Select UI System Font

Here’s another great plugin to remove the dead-weight font:


What about the Chaplin theme?

Twenty Twenty is based on Chaplin, a theme with high flexibility and support for extreme customization.

Chaplin has a zip package download size of 1.2MB. Our cutoff for evaluation is 1 megabyte. It smells sort of interesting. The biggest heavy boat anchor is including Font Awesome. That’s bad for speed. If they left that out, the theme has real speed possibilities. Test results:

Pingdom SF: 118k, 526ms, and 10 requests.

Demo page: Chaplin theme.

That is with loading Merriweather – the theme default Google font. But you can change the font to Arial in the Customizer. Or leave the two font fields blank and then a mobile font stack is used. That’s the best choice. It should be the default. And the theme loads jQuery globally. Not a good choice either. But livable since many plugins activate jQuery, also.

Activating Autoptimize plugin took the Chaplin theme test results down to:

71k, 461ms, and 7 requests.

We observe that Font Awesome is not enqueued by default. But from experience – if it’s used even once – it globally loads at least 75k on every page. So avoid that trap.

Of the two themes, we prefer Twenty Twenty with Inter font defeated in CSS for speed.

But Chaplin has beautiful Customizer features like:

  • disabling comments
  • default related posts
  • deactivating author and date metas (for evergreen content).

Very nice and tempting.

We like what we see in Chaplin. We’re impressed. It’s an underrated theme. Lots of nice features eliminate extra plugins reducing the speed overhead.


I wanted to thank you for the article you wrote about the new WP 2020 theme. It’s the only article I’ve found really talking about the speed issue with the Inter Var font.

I tried deleting the font settings on Line 253. However, I see multiple other instances where inter-var shows up in the code. (It seems like deleting line 253 may have interfered with some automatic color-adjustment when using a color background.) Is there a straightforward way to removing the Inter Var font? Thanks again!  PS- The Woo Storefront theme (which was very customizable and still highly limited) was much faster than 2020. My dad even said “huh, your site is noticeably slower on mobile” and he’s not a tech guy at all. —Travis Burch

To remove it, we used the WordPress Theme Editor. (Appearance > Edit Theme > style.css).

We tried using the Customizer to change the CSS. It didn’t work for us. We don’t know why. That’s abnormal. Everywhere font-family: “Inter var” exists has to be manually removed.

When the theme updates that junk returns to the code. Annoying. There are ways to prevent updates with a plugin. That would be a clunky workaround.

For this reason, we now think Twenty-twenty theme sucks for speed. But were still experimenting.
OFFSITE LINK: https://www.machmetrics.com/speed-blog/average-page-load-times-for-2020/

Popular Plugin Thoughts & Myths

XML sitemap functions are included as part of WordPress core since August 2020. Google XML Sitemaps are supposed to help SEO. We’ve found they are unnecessary. Google is quite capable of crawling your site fast. The best reason to include a sitemap is for visitors to find things. This is called “findability.” So we recommend using an HTML sitemap. But we’ve found a nice plugin that does both:
Simple WP Sitemap, download size: 115k.


Hierarchical HTML Sitemap, download size: 9.1k

All In One Schema.org Rich Snippets plugin. Fiddling with snippets is unproductive. Read more: https://pagepipe.com/speed-up-yoast-seo-plugin-remove-it/

Myth: Caching plugins speed up your site and make it quicker to access.
The usual recommendation is either W3 Total Cache or WP Super Cache plugin. We’ve find no speed improvement from caching plugins on well-optimized websites. In those conditions, there is no measurable benefit from caching. Except for one caching plugin, and it didn’t improve caching, it improved TTFB which is a server-side improvement in speed.

Cache Enabler, download size: 17k

Usually improvement from caching plugins is from some other function that is not caching related – like enabling Gzip code compression.

Lazy Loading Images
Lazy loading is included in WordPress core since August of 2020. The usual recommendation is BJ Lazy Load. It is not our preference for speed. We’d recommend:
Rocket Lazy Load, download size: 361k.
and for YouTube and Vimeo videos:
Lazy Load for Videos, download size: 254k.

Social sharing
Myth: A social sharing plugin improves site traffic and SEO.
We don’t believe social media marketing is a vital part of content marketing these days. It’s a controversial topic. But from our research, it is usually unproductive. Only 12 likes on your blog page isn’t very convincing or credible. It’s hard work to generate beneficial traffic from Facebook – an unproductive waste of time. If you’re a celebrity, it’s a different story.

Most Facebook widgets and counters drastically slow down your site. Are you really getting a good return on your time investment with social media links? We’ve seen one-second wait times for Facebook counter widgets.

Broken Link Checker
This plugin slows down your site by consuming server resources. Broken Link Checker plugin is a RAM hog. It’s best to leave it disabled and only run it manually – not automatically. We keep Link Checker deactivated and only run it once a month.

We see nothing wrong with this plugin suggestion other than it’s heavy. It automatically adds a 301 redirection when a post’s URL changes. The Redirection plugin has 700,000 active installs, and the download weighs 516k.

We use:
Simple 301 Redirects, download size: 5k. Much lighter.