The fine folks at WordPress just released version 1.0 of their Performance Lab plugin. It looks like WP is finally going to focus on speed and performance a little bit…and can I just say it’s about damn time!?! Read on for the details and for my unofficial preliminary take.
What the Performance Lab Plugin Is
WordPress has had a speed problem for the past several years. The software is very capable of running a website but it’s not great at being fast. Apparently, WordPress engineers are now trying to rectify that. As you can imagine that is an enormous undertaking with a great number of potential pitfalls. This new plugin is designed to allow the WP engineers to field-test performance enhancements that might one day eventually make it into the WP Core code. It’s a clever way to allow software engineers to test their ideas on a huge variety of websites without breaking all those sites. After all, it’s a plugin. If your site stops working when you use it, you simply disable / delete the plugin and everything goes back to normal.
How to Get It
Performance Lab is available in the WP repository just like any other plugin. Simply go to install a new plugin like you normally would, search for “Performance Lab,” and the blue techno-P should present itself to you. Also, here’s a link.
What It Does
At the time of writing, Performance Lab addresses the following issues (shamelessly copied directly from the plugin page at wordpress.org):
- WebP Uploads: Creates WebP versions for new JPEG image uploads if supported by the server.
- WebP Support: Adds a WebP support check in Site Health status.
- Persistent Object Cache Health Check: Adds a persistent object cache check for sites with non-trivial amounts of data in Site Health status.
- Audit Autoloaded Options: Adds a check for autoloaded options in Site Health status.
- Audit Enqueued Assets: Adds a CSS and JS resource check in Site Health status.
Two big things to note… First Audit Autoloaded Options and Audio Enqueued Assets are both listed as experimental (though that’s not indicated on the plugin page and is only revealed after the plugin is installed and activated). I suppose that’s the purpose of this plugin–to test new bits of code and see how it performs–but it struck me as odd that WordPress made a big hullaballo about this plugin being out of beta and then the v1.0 release contains experimental modules.
Second, note that four out of the five modules included simply check to see if your site is able to perform a particular function. These modules don’t actually do anything other than tell you whether or not your server is capable of accomplishing a specific task.
How It Performs
It’s OK…but the only thing it really does is convert jpg images into WebP images. Admittedly, it does that pretty well.
After I installed it I checked to see if my server was able to process WebP images. It is, and that option was automatically enabled in the settings. I uploaded a jpg and without any intervention or notice, it created a WebP image for me. When I went to embed that image in a post, the process was seamless. I selected the image from my media library, inserted it, published the post, and the WebP version of the image appeared right where it should be on the page. It worked better than I thought it would, honestly. Also, the quality is pretty darn good. You take a look at the side-by-side below and tell me which one is the 4.9 MB jpg and which one is the 318 kb WebP image.
The downside here is that the module will only convert jpg images. If you have a habit of using png or gif or any other format you’re out of luck here.
The other modules in this plugin are just notifications on the Tools >> Site Health page of your WP Admin area. As you would expect, the “Your site supports WebP” message was sitting there in my “passed tests” group.
Persistent Object Cache Health Check
In my “Recommended Improvements” section I see a notification with a “Performance” tag. You should use a persistent object cache. When I expand that section, not much actionable information is given. There is a link to a page for more information. Unfortunately, that page doesn’t even have the words “object cache” on it…so it’s pretty useless as a help page for this specific problem.
Audit Autoloaded Options
The two experimental features were disabled by default but I went ahead and enabled them. The Audit Autoloaded Options module dropped a little blurb in my “Passed Tests” group explaining that I’m within the generally accepted parameters for the number of options automatically loaded into my pages.
Audit Enqueued Assets
Strangely, the Audit Enqueued Assets module didn’t do anything. It doesn’t show up anywhere on my Site Health page. I guess that one is labeled “experimental” so I have to cut the Devs some slack.
I think it’s a good start although I’m not sure who would use and keep this enabled on their WordPress site. Other than converting jpgs (and only jpgs) to WebP and handling displaying them to your visitors, this version of the plugin doesn’t do much. If you are someone who is aware of the difference between jpg and WebP then you’ve already found another solution that’s probably working for you. I don’t think this half-baked WebP converter is worth the weight of the plugin.
The other “notification” pieces aren’t terribly useful either. You either “pass” in which case you have to do nothing, or you need to address a deficiency but the plugin doesn’t give very good information about how to do that.
I’m assuming that the plan is to migrate some of these modules out of the plugin and into core when they are stable enough to do that. When they update the plugin your favorite modules could go away and not return until the release of the next WP core update. Maybe those happen at the same time or maybe they don’t. Regardless, you’re rolling the dice on whether your favorite feature is going to be available after the next update.
Despite my reservations about v1.0 of the Performance Lab plugin, I applaud WordPress for taking this step. It absolutely cannot be easy. With the little I know about coding it seems that it took a major re-write to enable this plugin to exist. Kudos to the team for taking that plunge and for working to make WordPress more performance-forward. I look forward to seeing what kind of magic they give us in future releases!