Perfmatters Plugin Review
Perfmatters is one of my top 2 WordPress performance plugins. Full disclosure: I personally know the plugin author, Brian Jackson. I first met him in 2016 when he was working for KeyCDN, publishing awesome content about WordPress performance. And now he works for the performance-focused WordPress host, Kinsta (check out our 5-star review).
Brian is obsessed with performance. Seriously, he cares about every millisecond of every page load. So while Brian is a good friend of mine, he’s arguably the best person I know to develop a WordPress performance plugin.
Brian provided a copy of his plugin, free of charge, for me to try out.
In this Perfmatters review, we’ll cover the following:
What is Perfmatters? 🤔
Why you need it
The following WordPress plugins are notorious for adding styles & scripts when they aren’t necessary:
- WordPress page builders (Elementor, Beaver Builder, etc.)
- Custom font & icon plugins (Google Fonts, Font Awesome, etc.)
- Contact form plugins (Contact Form 7, Gravity Forms, etc.)
- Social media sharing plugins
- WooCommerce & other ecommerce plugins
SEE ALSO: The 10 essential WordPress plugins
Perfmatters makes it easy to disable any of these styles or scripts. You can disable them for your entire site, only on specific post types, or even on an individual post/page basis.
A fast WordPress host (we recommend Kinsta), a quality theme & a solid caching plugin (WP Rocket) might get you 80-90% of the way to a fast site. Perfmatters powers you across the finish line to that final 10% of ultimate WordPress performance.
Here’s a rundown of Perfmatters many features:
- Script Manager – See below This is a game-changer!
- Run Google Analytics locally – This feature is in beta and should be used with caution. DO NOT use it with any other Google Analytics plugin. But if you want to run the Analytics script on your own server, instead of from Google, this can provide some performance benefits. More about local analytics »
- Disable emojis – WordPress loads a script on every page (
wp-emoji-release.min.js). If you’re not using emojis, you should disable it.
- Disable embeds – This enables pretty previews of YouTube videos, tweets & other embeds. If you don’t care about these, you can disable this script (
- Remove query strings – Query strings can hinder some CDN’s ability to cache your styles & scripts. Removing them can provide some speed improvements.
- Disable XML-RPC – This is only needed if you’re using other apps to access your WordPress site (mobile app), or using some plugins, like Jetpack. If you’re not using these, disable XML-RPC for better performance.
- Remove jQuery Migrate – This is a script (
jquery-migrate.min.js) that most themes & plugins do not need. In most cases, it’s fine to disable it, which eliminates another unnecessary file from loading on your site.
* Some page builders might need this file, so be sure to test this one.
- Remove unnecessary stuff from
<head>– WordPress adds a bunch of stuff to the
<head>section of your pages. Much of it is not necessary, and other stuff you just might want to remove. You can remove the following:
- WordPress version number
- wlw manifest link (Windows Live Writer)
- RSD link (if you don’t need XML-RPC, you probably don’t need this)
- Shortlink (
- REST API links (most sites aren’t using the REST API, so you don’t need these)
- Disable RSS Feeds – RSS feeds add several links to your site’s page. If you don’t want your site to be available for RSS feed readers, you can disable these.
- Disable Dashicons – Some themes load a stylesheet (
dashicons.min.css), but if you aren’t using these icons, you don’t need it.
- Limit/Disable Heartbeat API – This causes server requests very frequently, which can bog down your server. Learn more about how to limit/disable the Heartbeat API.
- Disable Password Strength Meter – This will disable the
/wp-includes/js/zxcvbn.min.jsscript from loading across all pages, and just load when it’s needed.
- Enable Preconnect & DNS Prefetching – These allow you to alert the browser in advance of certain files you know you’re going to need to download. This helps save time when loading pages, and speed up your site.
- Disable/Limit Post Revisions – These can clutter your database and slow down your site. Turn them off completely or limit them to only a few.
- Change Autosave Interval – By default, WordPress autosaves your posts every 60 seconds, which means writing to your database. Lengthen this interval to speed things up a bit, especially in the admin area when you’re editing posts/pages.
- Disable Google Maps API – Some themes/plugins load Google Maps scripts when they’re not needed. If you aren’t running Google Maps on your site, you can stop these scripts from loading (
Perfmatters is 100% compatible with WordPress Multisite. You’ll need an unlimited license, but if you have a bunch of sub-sites, it’s totally worth it.
You only need to run certain scripts on product, cart & checkout pages. Perfmatters makes it easy to disable scripts, styles, widgets and more so you only load them when they’re needed.
Here’s a quick look at the current features (as of July 2018) for Perfmatters local analytics implementation:
Perfmatters Script Manager
The script manager is arguably one of the best features of the Perfmatters plugin. It gives fine-tuned control over every page, every stylesheet and every script that your site loads. You are in full control over which files you serve up to your users.
How to access the script manager
First, you need to enable it from the Extras tab of the Perfmatters settings page.
- Navigate to Settings > Perfmatters
- Click the Extras tab
- Enable Script Manager and click Save Changes
Then, there are two ways you can access the script manager:
- If you have the WordPress toolbar enabled, you can click “Script Manager” when viewing any page on your site
- You can also add
?perfmattersto the end of any URL. You’ll need to be logged in as an administrator to access it.
How to use the script manager
You’ll be shown a list of all styles & scripts that are loaded on that page. You have 3 options:
- Keep the script enabled
- Disable the script on your entire site
- Disable the script only on the current page
The script manager also has a Global Settings tab. This allows you to see a visual representation of the styles/scripts you have enabled and disabled for your entire site, and breaks it down by:
- everywhere (meaning your entire site)
- current (meaning the current page only)
- post_types (meaning only on certain post types)
You can read full documentation on the script manager here »
Perfmatters Speed Tests 🚀
I ran speed tests on one of my sites, without Perfmatters installed and again after setting up a bunch of its optimization features. I’ll briefly introduce my site’s setup, show you which features I enabled, and then show you the results from my tests. Just how much did Perfmatters speed up my site? 👇🏼
- hosted on SiteGround’s GoGeek plan
- running the Twentysixteen theme
- not using any CDN
- using Cloudflare for security & some performance benefits
- testing a single post with 734 words, 9 images & Jetpack’s sharing buttons enabled
My Perfmatters Settings/Features
In the global settings, I enabled almost every setting.
- I kept RSS feeds active since many sites will want to continue allowing RSS
- I did not enable local analytics because I’m using another plugin to load Google Analytics already
- I disabled more than 10 scripts & styles from the page using the script manager
You might only notice subtle differences in the tests below, but the main metric to look at is Requests. This refers to how many files are requested by each visitor. The lower the number, the better.
Most of the files I request on this site are quite small, so only minor performance benefits are observed. But for bloated themes, page builders & sites with 20+ plugins, you’ll likely see a huge difference in page size & load times.
Green = positive change
Red = negative change
GT Metrix Performance Test
|PageSpeed Score||F (35%)||F (36%)||+1%|
|YSlow Score||C (75%)||B (80%)||+5%|
|Page Size||3.95 MB||3.90 MB||-0.05 MB|
GT Metrix Summary
Nothing too staggering here, but 14 fewer requests to your server is noteworthy. It just goes to show you how many files are being loaded that simply aren’t needed.
Pingdom Performance Test
|Page Size||4.1 MB||4.0 MB||-0.1 MB|
The 0.04s increase in load time is negligible, but huge improvements in performance grade & number of requests. And like I stated before, Brian cares about every single byte. 0.1 MB matters, especially when you multiply it by hundreds of thousands of visitors over time.
Google PageSpeed Insights
I’m including this data because Google PageSpeed Insights are popular, but not because I think they’re important. I agree with WP Rocket’s statement that:
Google PageSpeed gives you recommendations how to improve the performance of your web site, but it does not actually measure the speed (aka: loading time) of your website. If your site loads fast, you can safely ignore PageSpeed’s recommendations.
* X out of 100. Higher numbers are better.
I tried to make the information in this review speak for itself. You can make your own determinations based on the features I’ve outlined & the results of my speed tests. I believe Perfmatters provides that little bit of extra control that fills the gap in WordPress performance.
And just in case you’re curious about some of the intangibles that make a plugin successful and truly worth the money…
What about Support? You’ll receive support directly from Brian and his brother. I can guarantee you’ll receive quick responses & top-notch customer service.
Documentation? Some of the best in the business. Over 50 articles on how & why to use each feature, complete with tons of screenshots.
Feature Requests? Brian is great at listening to feedback. They have a dedicated page for requests, and he’s even implemented a few of them already.