My 2018 WordPress Plugin Essentials, Part 1 of 2
I’m a WordPress professional, versed in design, development, plugins, education, and organizational strategies. I work to assist clients with building and maintaining high-performance, scalable WordPress websites. Today and tomorrow, I'll be sharing my experience with 17 essential plugins guaranteed to provide value to your next WordPress project. Reach out to me directly, message me, or leave a comment if you have feedback – or ideas for new posts!
Also, if you'd like to read the full article, it's far better on my blog.
Nothing is as constant as change
Four years ago, I published a performance plugins post on my blog that contained useful how-tos for speeding up a WordPress site. Since then, the recommendations I gave in that post have… aged a bit. The primary guidance in that post is still valid: prioritize performance, use plugins and other techniques to make WordPress faster, make backups and use version control, and test test test. However, two of the three plugins I recommended at that time have since fallen off my “starting lineup” for various reasons – some of which I’ll explain in this post.
Much of my professional effort is spent in increasing WordPress performance for clients, so an update to the plugins that I use most in the pursuit of faster websites is included in this post. However, that update also seemed like an opportunity to broaden my coverage. Over the past two years, I’ve noticed that a steady list of plugins outside of a performance focus also finds its way into the grand majority of my sites, and I’m going to share those plugins with you as well. Additionally, some previously much-loved plugins have faded into the shadows of obsolescence. Alas, poor P3 Plugin Performance Profiler, I used it.
Even though WordPress development has evolved significantly in the last four years, the WordPress world is changing even more rapidly in 2018. With Gutenberg’s eventual release already shaking up the WordPress landscape, it’s even more critical to keep up-to-date with useful tools and services – and just as important to discard what no longer works. In that spirit, here are the essential plugins that I currently use for nearly all of my WordPress work in 2018.
Criteria for selection
There are scores of plugins I use on a regular basis – but my primary objective is to focus on those that I feel are truly essential. Below is the basis for my plugin selections.
Usage
The featured plugins here are ones I use on over 75% of my WordPress sites. These plugins have real utility! It’s practically guaranteed that the plugins here will align with the majority of WordPress use cases you’ll find yourself in.
Performance
Each plugin has proven to be performant. I’ve had to make hard decisions in the past with whizbang plugins with a hundred useful features only to select a simpler plugin (or set of plugins) before a site launch. Additionally, a problem with performance during development often magnifies at scale. The moment a viral marketing campaign hits your site could be catastrophic for that plugin that was only a bit slow during normal traffic days. In the post-analysis, it doesn’t matter how neat or useful a plugin is if it slows your or your client’s website down to a crawl. Be selective in choosing plugins that provide useful features as well as execute at acceptable speeds.
Reputation
The plugins here have remained in good standing. What does “good standing” mean? Two things: the plugin must continue to be maintained, and the plugin must remain off of security and vulnerability lists. Many of the oldest and once-useful plugins have not been able to maintain this standing. The plugins I’m featuring in this list have all been updated in the last year, which is a good standard to keep. Always, it’s beneficial to occasionally review what’s in your developer toolbox to see if better and more updated versions exist.
The cheapskate factor
Each plugin is free – or has a useful free version. I believe wholeheartedly in developers getting paid for their work, and I’ve donated money to many of the contributors that have created or maintained the plugins listed. That being said, the barrier for entry when it comes to evaluating if a plugin solves a problem or adds value gets a lot lower when it’s free or freemium. Additionally, not every client (or for that matter, every developer) will have the budget to purchase licenses for every bit of code that goes into their projects. Each of the plugins selected is the result of work that the developer wants to offer for free to the community – either completely so or a degree of it.
Enough pre-qualification! Let’s dive in.
Development plugins
What developer doesn’t mind a helping hand? Here are the plugins I’ve used to ease the development cycle most often.
Admin Post Navigation
As a developer, you might have been in this situation before. Say you’re migrating your client’s old blog into a new rebuild, and there’s a change that will affect each of the existing posts in the blog. As you make changes to each blog post, you’re constantly finding yourself back at the Posts screen, only to click back into the next post. With two separate clicks to get to the next post, you’re wasting valuable time. Time you could easily be using to practice your planking or play Pokémon Go. People still eat Tide Pods, right?
Save yourself a click, and get the Admin Post Navigation plugin. Two simple buttons next to the Edit Post heading will allow you to navigate to the previous and next post in chronological order. Not down with the chronological sequence? Within Screen Options, Admin Post Navigation will allow you to select other forms of sorting. Additional filters will allow you to further customize the plugin via your own custom plugin or within functions.php.
Post-development, this particular plugin is lightweight and useful enough to keep activated. As an aside, the plugin creator, Scott Reilly, has a number of other useful plugins that might help out your next WordPress project.
Debug Bar
Ah, the old debugging workhorse for WordPress. Debug Bar provides a whole mess of useful information on your WordPress site. It’s especially useful when it comes to chasing down slow queries, with detailed information on execution times. A critical tool when it comes to pinpointing why Advanced Custom Fields is suddenly acting up, as an example.
There’s a good selection of add-ons to Debug Bar as well. My current favorite is Debug Bar Slow Actions, which ranks the slowest 100 actions and filters running in your site. This is especially good for me since I tend to fill up my functions.php file with lots of code. Maybe I didn’t need to run that Custom Howdies function in production after all…
This plugin (and its add-ons) can be a bit of a resource hog so I would suggest deactivating this on your live server and activating it only when needed. If your WordPress site involves a multi-server development and staging environment, you might want to write a deployment script to deactivate your Debug Bar plugin(s) in production using wp-cli commands. If you happen to be developing WordPress on Pantheon, I wrote a template for automating this process.
Enable Media Replace
The utility provided by Enable Media Replace is one that many would assume that WordPress provides out of the box. Why wouldn’t you be able to easily replace an image with an updated version? Unfortunately, the default behavior for WordPress requires that you delete an image before uploading the new version. This can be especially tedious when linked images in posts and pages lose their links because of a naming difference in the process of image deletion and upload. Why risk the potential mess? Use Enable Media Replace!
Though I have this listed as a Development plugin (because the ability to replace images easily is critical to the development cycle), you’ll want to continue running this on your live server due to the irreplaceable utility it provides. You won’t regret it.
It’s not listed here because I don’t use it that often, but if you also spend time resizing thumbnails along with your new media uploads, you will likely be interested in the Regenerate Thumbnails Advanced plugin (though there is a handy wp-cli command for that, too).
Performance plugins
NEED. MORE. SPEED! Despite your captivating, well-written content, visitors will drop off your site in no time flat if your site is slow. Here are all the plugins I use most often to throw my site visitors back into their chairs.
It is important that I state that “performance” in this context refers to web application and front-end speed, specifically. Plugins I favor that improve other types of performance (such as SEO) will be detailed under “Utility plugins”.
a3 Lazy Load
When it comes to website performance, images are a pain. Sure, they can make a website look pretty, and the visual information they provide tells much that simple text cannot. But images are one of the biggest factors in slow site performance, and it’s all too common to see a waterfall chart dominated by their loading times. But it doesn’t have to be that way, even if you’re running a media-heavy website.
If you’re reading this content on my site, you might notice that each of the images fade into view as you scroll down the page. This means that the images aren’t requested until they’re nearly in view of the visitor. That functionality is provided by a3 Lazy Load, and it’s a panacea for your image download ills. As a bonus, a3 Lazy Load can also handle your video files as well!
Autoptimize
If you’ve ever beaten your head testing your website against a performance service like Google Pagespeed Insights, I feel your pain. Many of the warnings may seem like they are caused by WordPress core or the theme you’re using. It’s common to get render-blocking JavaScript and CDN warnings with vanilla WordPress assets. Though there are steps you can follow to move individual resources like jQuery to Google’s CDN, chances are you’ll be optimizing each problem resource for some time. Additionally, the number of scripts and stylesheets provided by the theme and plugins can compound your efforts.
Enter Autoptimize. With a little configuration, Autoptimize minifies and compresses all HTML, stylesheets, and scripts, dramatically speeding up those requests. Additionally, scripts and styles can be moved to more optimized locations in your site’s front end code, further increasing render speed. With a little more work, you can utilize an outside Critical CSS tool and add your generated CSS to the head with Autoptimize, ensuring that the visitor can see the rendered site before external stylesheets are even requested.
Even though Autoptimize creates its own cache, I haven’t seen any conflicts with Varnish or caching plugins. When I installed Autoptimize on this blog, it immediately shaved off 0.4 seconds off the tested render time. There’s a good chance that it can have a similar effect for your next WordPress project.
Imsanity
Will your client’s WordPress website have one or more content contributors? Will they be uploading images along with their content? If so, Imsanity will help maintain all the hard website performance work you spent many late night hours getting right. Bloated image byte size is a usual suspect for slow websites, and the average content contributor on a deadline isn’t going to know (or care) much about image optimization. Moreover, some freemium image smushing plugins will not attempt to optimize images over a certain byte size. Imsanity will help keep your performance metrics sky high after site handoff!
Imsanity will resize any uploaded images that are larger than the maximum dimensions specified in the Imsanity settings. It also works hand-in-hand with image smushing plugins – like reSmush.it, detailed below. It’s like a tag team, dropping the big boot on big images!
Avoid that awkward conversation with a post-launch client where they complain that their site has become slow, only to discover that their own uploaded images caused the problem. Use Imsanity!
reSmush.it Image Optimizer
In my time, I’ve used a whole mess of image smushing plugins. For years, I used WP Smush (also once known as WP Smush.it, and now known as Smush Image Compression and Optimization). Smushing queues were often long, and sometimes it simply didn’t work. In 2015, the servers at Yahoo! which did the smushing work for free users of WP Smush.it were offlined. Hence, the search for a new solution was on for over 300,000 users of the old plugin.
It’s hard to overstate the utility of an image smushing regimen. Many types of images are not optimized for the web, even with quality options set from an image editor like Photoshop. Also, Photoshop can’t touch the kinds of optimization levels that lossless compression tools like image smushing plugins can provide. It’s a common event for me to upload a screenshot (like the ones in this post) and immediately see a 30-45% size reduction without a loss in quality.
The plugin that currently does this work for me is reSmush.it Image Optimizer. Completely free, reSmush.it will optimize any uploaded image up to 5MB in size. Happily, each image will usually by smushed within seconds of upload – no queues!
Perhaps there should be a band named Smush Mouth, because with the help of reSmush.it, your image download speed will be an All Star!
WP Crontrol
Alas, if only wp-cron was a true cron. The default mechanism that governs scheduled tasks in WordPress, wp-cron, runs as a piggyback process each minute the site is receiving traffic – and only when the site receives traffic. As a negative, each wp-cron process also consumes an additional network socket. Normally, this does not lead to issues for sites with a small-to-moderate amount of traffic. However, in high-traffic scenarios, the processes can add up and lead to substandard performance. In low-traffic scenarios, pending wp-cron jobs can pile up on a visitor’s first visit of a cache cycle, potentially leading to a much longer TTFB depending on the queued scheduled tasks.
Ideally, you’ll want to deactivate wp-cron and schedule any required tasks in an actual cron. In reality, not every project will allow for the use of a separate cron. Barring this, one thing you can do is ensure that the work that wp-cron attempts to do is as minimal as possible. That’s where WP Crontrol will come in handy. WP Crontrol allows you to see all scheduled tasks, and in most instances, delete, run, or edit their scheduling. This is key when installing new plugins or themes because the schedule for their jobs can be quite aggressive by default. It’s not uncommon for jobs with 5-minute intervals to appear in this scenario.
When it comes to optimizing scheduled jobs with WP Crontrol, I’m never going to stop. Does it bug you that WordPress checks for new updates every 12 hours? With WP Crontrol, you can get what you want. Adjust those schedules to daily, weekly, or monthly. Now the update checks won’t run a lot. Be sure to review all of the scheduled jobs and optimize accordingly. Now your wp-cron schedules are all grown up!
Not every wp-cron job will benefit from an adjustment from WP Crontrol. Be sure to do your research and test, test, test when changing the frequency of business-critical plugins such as WooCommerce.
WP-Optimize
Of the plugins I detailed in my 2014 list as crucial for high performance, WP-Optimize is the sole survivor as an essential plugin! Year after year, WP-Optimize continues to prove its value. Nowadays there are many options to optimize query speeds (such as object caching), but WP-Optimize works in tandem with those solutions to keep your database small and speedy.
The same common problems that the plugin fixes are still present in WordPress. The recording of revisions, spam comments, auto-drafted posts, trashed content, and expired transients can still inflate your database and slow it down. You can fire off WP-Optimize’s cleaning manually at any time, but you can also schedule it as well. It is recommended that you have automated daily backups if you use WP-Optimize, as there are uncommon edge cases where database optimization can foul up your data. UpdraftPlus is a backup plugin in the same plugin family as WP-Optimize and they will harmoniously work together.
Be sure to come back tomorrow, as I'll be sharing my Security and Utility plugin essentials then – as well as the rationale for many popular plugins that I didn't select!
These are great suggestions, Adam! I need to get back up to speed (pun intended?) on WordPress and giving these plugins a whirl is the perfect excuse.