A short guide to plugins I use in almost all my WordPress & WooCommerce projects, based on my experiences as a web developer.
Background
I’ve been building and hosting WordPress websites since early 2020. With a long background in writing software, I’ve seen some beautifully-coded software and some that’s utterly awful. But over the last 5 years, I’ve settled on a core set of plugins I use in almost every project.
Spam Shield : Stop contact-form spam
Every domain name has a “reputation” associated with it, a bit like people have a credit score. If your website is seen to be sending out lots of spam emails, your domain name will become tainted. This can happen when spam-bots abuse your “contact us” form to send spam to you (the website owner). It’s tempting to think “it’s only me that gets these, not my customers. So I’ll just ignore and delete them”. But that’s no good, because if you’re receiving multiple spam emails every day, your domain is taking a hit because the spam is passing through email servers.
Headwall Hosting manages over two hundred websites and an email server, so we needed a way to manage contact-form spam for our customers. Rather than leaving it to our customers to install and configure something like Akismet or Antispam Bee, I created the Spam Shield system. It’s a free plugin linked to a back-end database that classifies contact-form emails as either Spam… or Ham (not spam). It works great for English-language websites and is considered essential on our network.
From experience, reCaptcha can be too aggressive, causing site owners to miss out on legitimate enquiries.
WP Sweep : Keep your database clean-and-tidy
When a WordPress site goes through multiple incarnations over the course of a few years, the database can end up growing quite big. This can affect your site’s page-load speed and your hosting costs. WP Sweep is a great tool for getting rid of old cruft… orphan database records and other techno-bits-and-bobs. WP Sweep just sits there quietly, and you can run a manual sweep when you need to, e.g. as part of your end-of-month housekeeping.
ACF : Make WordPress do more
Almost every website project client will want something extra… something that makes their site different to regular WordPress/WooCommerce. ACF lets you extend posts, products and terms with additional meta data.
An example might be that you’ve got two post categories, “Blog” and “Books”. Blog posts are your regular WP posts, but all the posts in the “Books” category need to have two additional fields:
- Author
- Genres
Create these fields in ACF and make them editable for any post that’s assigned to the Books category. Then use your theme, blocks or page builder to show these post meta in the front-end. All without writing any code.
Page caching
I can’t really talk about page caching plugins, because I wrote my own for Headwall Hosting and it works well.
If your site isn’t with Headwall Hosting, reach out to your hosting provider and ask if they recommend a page caching plugin that works well on their systems. If they don’t recommend a specific page caching plugin, try the official WordPress page caching plugin, WP Super Cache.
Object caching
Another important thing to install is an object cache plugin. This depends on your hosting provider, and the two main options are Memcached and Redis. Ask your hosting provider which object cache plugin you should use on their platform.
Autoptimize : Aggregate & minify those assets
As soon as you’ve published your website project, page-speed becomes an issue. One of the first things I do is make sure that Autpotimize is installed and working properly with the page caching. There are several plugins that can aggregate & minify JavaScript & CSS files, and each will have its quirks. It’s worth putting in the time to find one that works well with your chosen tools, because it can dramatically improve page-speed. If the first asset optimisation plugin doesn’t work (for you), uninstall it and try another one.
A good WP blocks library or page builder
If you use Elementor, just skip over this section. But if you use regular WordPress blocks, you’re probably likely to have something like GeneratePress, Astra or Kadence as your base theme. Each of these has their preferred blocks library plugin, such as GenerateBlocks or Spectra. Find the WP blocks library that works best with your base theme, and follow the tutorials on how to get the most out of it. They usually have a few core blocks that do most of the heavy lifting – it’s worth reading the instructions (or watching the tutorial video).
Imsanity : For when customers upload big images
Imsanity is a lovely little plugin for when your client doesn’t have a good understanding of uploading image content. Especially if they constantly upload lots of massive image files.
When your customer uploads a 6,000 x 4,000 pixel JPEG at 95% quality, Imsanity will drop it down to a sensible resolution with efficient compression. It will save you tons of server space and help your page-speed scores too.
Imsanity’s default settings are mostly good-to-go, although I check the option to delete the original (very large) file after it’s been shrunk down to a new file. This frees up server space, which saves money on hosting and backups.
Potential traps to avoid
Be careful with image-smushing plugins. I used to use them to automatically convert JPEG/PNG images to WEBP, but I’ve stopped using them now. I find they get in-the-way, slow down cron jobs and take a lot of server resource… resource I could be using to serve pages to customers. If you can, just use WEBP for most of your images these days – you can upload WEBP images directly to your site’s Media Library. If you use Canva to create your images, you might need to rinse your PNGs/JPGs through a WEBP convertor on your computer before uploading them to your site, but it’s worth putting in the extra time to do so. It’s really only a few seconds per image, once you’ve got the tools in place.
NOTE: Imsanity is not an image-smushing plugin. It replaces images with more efficient versions of themselves. Image-smushers creates duplicate images in next-gen file formats, then hack them into the site in place of the originals. Image-smushers are clever software, but consume CPU and storage resource.
Broken link checkers are becoming difficult to run as a plugin, because web servers often block server-to-server web page checking. I used a broken link checker plugin for a long time, but I’ve switched to using an external technical SEO tool to scan my site for broken links (Screaming Frog).
