8 Lesser-Known (But Useful) WordPress Performance Plugins

Updated on January 22, 2018

Your WordPress host could be lightning fast, but it isn’t always a magic wand for horribly coded or un-optimized plugins and themes. We see this all the time here at Kinsta. Sometimes even just one bad plugin or snippet of code can be your site’s worst enemy, and bring everything to a crawl. That is why we monitor our customers sites constantly with New Relic tracking and even have a banned plugin list. Today we are going to share with you some handy, lesser-known WordPress performance plugins that can help you troubleshoot and speed up your site.

WordPress Performance Plugins

It might sound ironic to fix a plugin or script with another plugin. That might not the best way to solve a problem. But for those that aren’t WordPress developers, in many cases, this might be what you have to resort to. There is no such thing as a perfect plugin or developer, and so sometimes having a few tricks up your sleeve to get them to operate better and faster can come in quite useful. A lot of these plugins listed below are not as popular, some only having a couple thousand installs, but they definitely deserve some extra recognition, along with their developers.

Sometimes the best plugins are those by individual developers just solving a problem. Click to Tweet

And remember, adding more plugins isn’t necessarily bad, as long as they are lightweight and developed correctly. We have see many sites with 60+ plugins easily load in under 1 second. It comes down to choosing the right ones and then optimizing them.

1. Query Monitor

The first WordPress performance plugin we recommend checking out is Query Monitor, a free debugging and development plugin. You can use it to identify and debug slow database queries, AJAX calls, REST API requests, and much more. In addition, the plugin reports back website details such as script dependencies and dependents, WordPress hooks that fired during page generation, hosting environment details, conditional query tags met by the current page, and a lot more.

query monitor plugin

Query monitor plugin

The plugin was developed by John Blackbourn, a core WordPress committer who is currently a developer at Human Made and was previously employed by WordPress.com VIP. As of writing this, it currently has over 20,000 active installs with a 5 out of 5 star rating. You can download it from the WordPress repository or by searching for it within your WordPress dashboard under “Add New” plugins.

You can use this for all sorts of things. Developers will love this plugin as you can narrow down each query that is happening on a page. If you are a developer you could even see if the plugin is making the most efficient query possible. And it’s not only for the front-end, you can also use it to troubleshoot performance issues in your WordPress dashboard.

queries

Querys

Here is an example of a larger site’s WordPress dashboard. We can instantly see that the Pretty Link plugin is the heaviest hitter.

queries by component

Queries by component

You can check out our full in-depth tutorial on how to use Query Monitor, along with more use case scenarios.

2. Complete Analytics Optimization Suite (CAOS)

The second plugin we recommend checking out is the free Complete Analytics Optimization Suite, created and developed by Daan van den Bergh. This plugin allows you to host Google Analytics locally on your WordPress website.

complete analytics optimization suite

Complete analytics optimization suite plugin

It currently has over 10,000 active installs with a 5 out of 5 star rating. You can download Complete Analytics Optimization Suite from the WordPress repository or by searching for it under “Add New” plugins in your WordPress dashboard. The plugin allows you to host your Google Analytics JavaScript file (analytics.js) locally and keep it updated using wp_cron(). Other features include being able to easily anonymize the IP address of your visitors, set an adjusted bounce rate, and placement of the script (header or footer).

Some benefits to hosting your analytics script locally is that you reduce your external HTTP requests to Google from 2 down to 1 and you now have full control over the caching of the file. You also can get rid of that annoying leverage browser caching warning, ironically caused by Google’s own script.

leverage browser caching pagespeed insights analytics

Leverage browser caching warning

Just install the plugin, enter your Google Analytics Tracking ID, and the plugin adds the necessary tracking code for Google Analytics to your WordPress website, downloads and saves the analytics.js file to your server and keeps it updated using a scheduled script in wp_cron(). We recommend also setting it to load in the footer. Note: This plugin won’t work with other Google Analytics WordPress plugins and is not supported or the recommended method by Google.

local analytics settings

Local analytics settings

3. Disqus Conditional Load

If you do use Disqus, it’s pretty critical that you lazy load Disqus comments. If you don’t, Disqus can be a real hindrance to your site’s load speed. Why? Because by default it has to load every single avatar, and all the additional scripts they are now including due to the changes with Disqus ads. So we definitely recommend checking out the free Disqus Conditional Load plugin by Joel James.

disqus conditional load

Disqus conditional load plugin

This plugin currently has over 10,000 active installs with a 4.8 out of 5 star rating. You can download Disqus Conditional Load from the WordPress repository or by searching for it under “Add New” plugins in your WordPress dashboard. You will need to disable the official Disqus plugin before enabling this one. Besides lazy loading all of the images (avatars), it also lets you disable the count script if you don’t use it. So one less JavaScript call on your WordPress site.

We ran some quick tests so you can see the difference. In our example, we have a blog post with 35 comments on it. We tested it with the official Disqus plugin first and then ran tests with the Disqus Conditional Load plugin.

Official Disqus Plugin

We first ran 5 tests in Pingdom and took the average. As you can see the total load time was 917 ms with 113 requests.

official disqus plugin

Speed test with official Disqus plugin

Disqus Conditional Load Plugin

We then switched to the Disqus Conditional Load plugin and ran 5 tests again in Pingdom. As you can see our load time dropped down to 685 ms and we now have only 88 requests! Talk about a major difference with one little free plugin swap. For large news sites using Disqus, this could do wonders.

disqus conditional load plugin speed

Speed test with Disqus conditional load plugin

4. Lazy Load for Comments

Perhaps you aren’t a fan of Disqus at all. It definitely has its pros and cons. If you prefer to use the native WordPress comments, this also has a similiar problem. By default, it loads all the gravatars on each page load. The ability to lazy load comments isn’t built into the WordPress core. However, a great lightweight and free solution that we recommend is the Lazy Load for Comments plugin. This is also developed by James Joel.

lazy load comments

Lazy load comments plugin

This is a newer plugin, and currently has only 100 active installs with a 5 out of 5 star rating. You can download Lazy Load for Comments from the WordPress repository or by searching for it under “Add New” plugins in your WordPress dashboard.

It is very simple to configure. Simply install and under the Discussion settings, there are two options. By default, it is set to “On Scroll” which is what most people will probably prefer. You can also set it to “On Click” which will created a button for visitors to click on before the comments load.

lazy load wordpress comments options

Lazy load comments options

We ran some quick tests so you can see the difference. In our example, we are again using the same blog post with 35 comments on it. We tested it with the native comments first and then ran tests with the Lazy Load for Comments plugin.

Native Comments

We first ran 5 tests in Pingdom and took the average. As you can see the total load time was 827 ms with 106 requests.

native wordpress comments speed

Speed test with native WordPress comments

Lazy Load for Comments Plugin

We then switched to the Lazy Load for Comments plugin and ran 5 tests again in Pingdom. As you can see our load time dropped down to 685 ms and we now have only 87 requests! This is awesome. Such a small tweak to native comments and instantly way faster.

lazy load for comments speed

Speed test with lazy loaded comments

Make sure to check out our post on other ways to speed up WordPress comments.

5. Query Strings Remover

Another little nifty plugin is the free Query Strings Remover plugin. Your CSS and JavaScript files usually have the file version on the end of their URLs, such as domain.com/style.css?ver=4.6. These are known as query strings. Some servers and proxy servers are unable to cache query strings, even if a cache-control:public header is present. So by removing them you can sometimes improve your caching. This will also fix that warning you see in Pingdom and GTmetrix called “Remove query strings from static resources.”

query strings remover

Query strings remover plugin

As of writing this, the plugin has over 7,000 active installs with a 4.4 out of 5 rating. You can download Query Strings Remover from the WordPress repository or by searching for it within your WordPress dashboard under “Add New” plugins.  The great thing about it is that there is no configuration necessary. Just install and your good to go. Make sure to clear your cache after installing though to see the changes. You can see a before and after below.

With Query Strings (before plugin)

query strings

Query strings example

Without Query Strings (after plugin)

no more query strings

Without query strings example

You can also check out our in-depth post on how to remove query strings from static resources without the use of a plugin. It is also important to note that if you are using a newer CDN provider or web host, some are capable of caching query strings, which in turn means you might not need the plugin above. Both Cloudflare and KeyCDN, for example, can cache query strings.

6. Disable Emojis

When they released WordPress 4.2, they added support for emojis into core for older browsers. The big issue with this is that it generates an additional HTTP request on your WordPress site to load the wp-emoji-release.min.js file. And this loads on every single page. While this file is only 10.5 KB, things like these add up over time. And for most businesses, they are never going to use emojis. The great news is there is a free plugin called Disable Emojis, developed by Ryan Hellyer.

disable emojis

Disable emojis plugin

This plugin is super lightweight, only 9 KB to be exact. As of writing this, it currently has over 40,000 active installs with a 5 out of 5 star rating. You can download it from the WordPress repository or by searching for it within your WordPress dashboard under “Add New” plugins.  Emoticons and emojis will still work in browsers which have built-in support for them. This plugin simply removes the extra JavaScript file that is used to add support for emojis in older browsers. There is nothing to configure, simply install, activate, and the additional JavaScript file will be gone.

Below is an example of the script that it will disable on your WordPress site.

wp emoji release file

wp-emoji-release.min.js

You can also check out our tutorial on how to disable Emojis without the use of a plugin.

7. Disable Embeds

We then have embeds. When they released WordPress 4.4, they merged the oEmbed feature into core. You have probably seen or used this before. This allows users to embed YouTube videos, tweets and many other resources on their sites simply by pasting a URL, which WordPress automatically converts into an embed and provides a live preview in the visual editor.

WordPress has been an oEmbed consumer for a long time, but with the update WordPress itself became an oEmbed provider. This feature is useful for a lot of people, and you may want to keep it enabled. However, what this means is that it also generates an additional HTTP request on your WordPress site now to load 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. The request itself is sometimes a bigger deal than the content download size.

wp embed

wp-embed.min.js

Thankfully there is a free plugin called Disable Embeds, developed by Pascal Birchler who is actually one of the core contributors to WordPress.

disable embeds

Disable embeds plugin

This plugin is super lightweight, only 3 KB to be exact. As of writing this, it currently has over 10,000 active installs with a 4.8 out of 5 star rating. You can download it from the WordPress repository or by searching for it within your WordPress dashboard under “Add New” plugins. 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. You can also check out our tutorial on how to disable embeds without the use of a plugin.

8. perfmatters

There is also a new plugin on the block called perfmatters, which allows you to actually combine three of the plugins mentioned above. This makes it much easier when it comes to management and updating. The perfmatters plugin is actually developed by one of the Kinsta team members!

perfmatters WordPress plugin

perfmatters WordPress plugin

This is a premium plugin and allows you to easily implement numerous web performance optimizations with a single click. Below are just a few of the many optimizations you can make:

  • Disable Emojis
  • Disable Embeds
  • Remove Querystrings
  • Remove jQuery Migrate
  • Disable and or limit post revisions
  • Change autosave interval
  • Disable pingbacks and trackbacks
  • Disable XML-RPC
  • Remove RSS feed links
  • Disable WordPress Heartbeat API
  • DNS prefetching
  • Disable WooCommerce scripts and styles
  • Disable WooCommerce cart fragments (AJAX)

A lot of these optimizations help reduce HTTP requests on your site and reduce database bloat. It is important to note that it doesn’t remove any files from your site, it simply disables them with WordPress hooks. This is completely safe.

perfmatters settings

perfmatters settings

And one of the most powerful features included is the script manager. This allows you to load CSS and JS conditionally depending on the page you’re visiting. It’s a simple and lightweight plugin which allows to get rid of useless CSS and JS files registered by themes and plugins. Even if you are running over HTTP/2, you can still shave some time of your page loads.

Just as a quick example of the script manager functionality, we fired up our development site and installed the following plugins, which are typical ones you might find on a client’s site or blog:

  • Contact Form 7
  • Disqus Comment System
  • Q2W3 Fixed Widget
  • Social Warfare
  • Table of Contents Plus
  • TablePress

Before perfmatters Plugin

We then ran 5 tests in Pingdom and took the average. As you can see, our total page size is 264.4 kB, our load time is 469 ms, and we have a total of 24 requests.

Speed test before perfmatters plugin

Speed test before perfmatters plugin

Configuring perfmatters Plugin

We then configured the perfmatters plugin. To do so, simply browse to a page on your site, in this case the home page, and click into “Script Manager” in your WordPress admin bar.

perfmatters in admin bar

perfmatters in admin bar

One of the biggest issues with a lot of WordPress plugins is that they load their scripts across your entire site. Even popular plugins such as Contact Form 7 do this. For a majority of people, they really only need scripts for Contact Form 7 loading on their contact page. The same goes for plugins like Social Warfare and Disqus. Social Warfare provides social media buttons, which really you only want loading on your blog posts. And for Disqus, the same. With perfmatters you can configure them to load on certain pages, certain posts, disable them altogether, etc. Pretty much any configuration.

In this example we are disabling the following 12 scripts from loading on our home page, as they are not needed. Your home page is after all one of the most important pages of your site, and one that visitors usually see first. perfmatters lets you disable scripts with a click of a button.

/wp-content/themes/twentyseventeen/assets/js/html5.js
/wp-content/plugins/contact-form-7/includes/css/styles.css
/wp-content/plugins/table-of-contents-plus/screen.min.css
/wp-content/plugins/social-warfare/css/style.min.css
/wp-content/plugins/tablepress/css/default.min.css
/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js
/wp-content/plugins/contact-form-7/includes/js/scripts.js
/wp-content/plugins/table-of-contents-plus/front.min.js
/wp-content/plugins/social-warfare/js/script.min.js
/wp-content/plugins/q2w3-fixed-widget/js/q2w3-fixed-widget.min.js
/wp-content/plugins/disqus-comment-system/media/js/count.js
/wp-includes/js/wp-embed.min.js
Disable scripts with perfmatters plugin

Disable scripts with perfmatters plugin

After perfmatters Plugin

We then ran 5 tests again in Pingdom and took the average. As you can see, our total page size now is 231.7 kB, our load time is 424 ms, and we have a total of 12 requests. We literally cut our total requests in half with this plugin! And there is no concatenation being done, which means this is completely within the best practices for better HTTP/2 performance. It utilizes native WordPress hooks, which is how it should be done.

Speed test after perfmatters plugin

Speed test after perfmatters plugin

Now of course, this is just an example on a small site. On much larger sites you could disable certain WooCommerce scripts that aren’t needed, EDD scripts, all sorts of things. You probably get the idea of how powerful this is. Generally, if something is not being used or needed, it is best practice not to load it for the user. This ensures the best load times possible. And for those of you not running over HTTP/2 supported servers yet, you will see even bigger speed gains with this plugin. Another free alternative you can try, which is very similiar, is the Plugin Organizer plugin.

Additional Resources on Speeding Up WordPress

Besides all the great performance plugins mentioned above, here are some additional resources to help you further speed up your site.

Summary

As you can see, a lot of these WordPress performance plugins above are just small little tweaks. But if you start implementing all of these, they can definitely add up to a faster site. We highly recommend the perfmatters plugin and also checking your WordPress comments to ensure your are loading them in the most efficient way. Did we miss any other good performance plugins? If so, let us know below. (We didn’t include P3 Profiler in this post because it has shown performance issues)

This article was written by Brian Jackson
Brian focuses on our inbound marketing efforts; everything from developing new online growth strategies, content creation, technical SEO, and outreach within the community. He has a huge passion for WordPress, has been using it for 8+ years, and even develops a couple premium plugins. Brian enjoys blogging, movies, and hiking. Connect with Brian on Twitter.

Hand-picked related articles

  1. Gravatar for this comment's author
    Nebulas Website Design February 6, 2017 at 10:09 am

    Top post thank you. I’m always on the look out for plugins to speed up WP. Another good one recommended to me recently was Speed Booster Pack https://wordpress.org/plugins/speed-booster-pack/ which really works and shaves more time off page load speed.

Leave a Reply

Use WordPress?

Join 20,000+ others who get our FREE weekly newsletter with WordPress tips on how to drive more traffic and revenue to your business!

You have Successfully Subscribed!

Send this to a friend