Under normal website operation, when a user wants to visit one of your pages, they have their computer or phone send a request to your domain. The request is forwarded to your web host, which directs it to the appropriate server to reply with data. This is, of course, vastly simplified, but it’s the basic gist of things.
Often times, the server needs to make other requests. It needs to fetch data like images, it needs to process scripts, it needs to load data from databases, and generally compile the total sum of the website to send back. This can take a long time, from the perspective of a web server; even full seconds, depending on the size and amount of dynamic content.
Now imagine that hundreds, thousands, or even millions of people are sending these requests. All of them are getting basically the same result, but the server needs to make all of those requests and compile all of that data every time. That’s an immense amount of strain on the servers which, while they can handle it in some circumstances, might not be able to handle it all the time.
This is where caching comes in. Caching allows the server to make all of those requests once and compile a “snapshot” of your website. Then it can serve that snapshot to users, with changes made depending on the user’s situation. Static elements like your site structure, your header and footer, your sidebars, and your homepage content is cached with a long lifespan. More frequently updated content, like a blog feed or ad scripts, are cached with either a smaller lifespan to allow for updates, or with no caching, like ads that are served dynamically.
WordPress has a lot of different options for caching your website, and I’ve attempted to give them a thorough review, albeit with limited attention spent to each one. Here’s my ranking.
The first thing I want to mention is that some web hosts had caching systems built in that you can use instead of setting up your own caching through a plugin. I’m only mentioning these in passing because there are a lot of them, and they vary quite a bit based on what the web host is prioritizing and how much caching they’re doing. Some, like SiteGround, are generalized caching systems that help regardless of your site architecture. Others, like WP Engine, are WordPress-specific and have some fairly advanced options to set.
Still, since these aren’t WordPress plugins specifically, they don’t get a real place in the rankings. You can use them if you like, and sometimes they might be the best option, but you’ll want to look into what your host actually offers before you make the decision. Plus, keep in mind that this puts the onus on your web host to maintain the caching system appropriately, which might not be ideal. It depends on your situation and your host!
Sucuri is a general WordPress security plugin suite with a whole range of different features. They have some caching and CDN features, as well as website monitoring, security, and incident response options. On top of that, their primary offering is a firewall, which protects against unauthorized intrusion, hacking and brute forcing attempts, DDoS attacks, and other kinds of attack.
I’m including this because they have a WordPress suite, but it’s only an honorable mention because caching is the least of what they do. The whole firewall system uses caching to serve a copy of your website to users without actually exposing your servers to them, which allows you greater security. It can be a great performance boost, but it’s also dramatically overkill if all you want is caching.
Sucuri is great, but it’s not the kind of tool we’re looking at today. Still, it’s definitely something worth checking out, especially if you think your site is at risk of an attack.
Hyper Cache is a PHP plugin that handles caching in a simple, yet effective, manner on your site. It maintains separate caches for desktop and mobile browsers, and it handles some level of compression. It caches comments in many situations, though some comment plugins might not work with it. One of the better features is the ability to serve cached versions of pages to bots even when those caches are expired, so bots get the fastest possible version of your site.
It’s worth noting here that, even though this plugin is the last on the list, that doesn’t make it bad by any means. Any caching is good, so long as it works, and you’re definitely going to see a performance boost when you run it. The only questions are how effective they are, how many useful options they have, and how fiddly they are to set up. Hyper Cache is simple, effective, and lightweight, but it’s not excellent compared to the other plugins on this list.
This plugin has been around for a while, but is making a comeback since their rebranding. They used to be known as ZenCache and Quick Cache. The plugin works by creating snapshots of individual pages to save them and use them. It’s very simple to get up and running, and it has some configuration options if you want to set up advanced features like user agent exclusions, referrer exclusions, and caching 404s.
Again, this plugin is not bad even though it’s low on the list. It has some cool features you don’t often see in other caching plugins, but some of them aren’t really selling points if you don’t have the setup to use them. For example, it can cache RSS/ATOM feeds for you if you use them, but if you don’t, it’s not really a great benefit.
Beyond that, it’s really not a robust plugin. It’s a pretty basic caching plugin without a lot of advanced features or configuration options. That’s great if that’s all you want, but a lot of modern websites want something a little more robust.
One additional drawback is that a couple of its features, like WebP support, require other plugins to work properly.
Simple Cache is the epitome of its name. It’s extremely simple; you just install it and turn it on, and it does its thing. There’s no need to dig into configuration options or advanced settings at all. Clearing the cache is easy, as is removing the plugin if you want to try something else. It’s also open source and well documented on GitHub.
So why is this one higher up on the list when I’ve listed “too simple” as a negative for other plugins? Well, simply put, it’s because this is the simplest of the simple plugins. If all you want is a fire-and-forget caching plugin that does what it says on the tin with zero input from you, this is the best option you have. If you want anything with more robust options, you’re going to want to look elsewhere. Since I value certain features over simplicity, I’ve put this one lower, but you might think it’s the top of the top for your site, and that’s fine.
Coming immediately after Simple Cache, it sounds like Cachify is a much more robust plugin, and it is. They have three different caching methods; caching via database, caching via web server drive, and caching via server system cache using APC. It works with custom post types, it works with multisites, it has whitelisting for posts and user agents, and other features. It’s also available in German with community support, if that’s important to you.
This is a perfectly serviceable caching plugin, with a few nice advanced options to configure the fastest cache you want, but it doesn’t have a lot of specialized caching features. As such, it’s still in the simpler categories for me.
This is one of the most popular caching plugins for WordPress, with over a million active installations (compared to 10K for Cachify, for example), and a frequent update schedule. I’ve put it higher up because of this, but personally I’ve had somewhat lackluster results with it. It’s easy to set up but tricky to configure, with some options that just don’t have clear explanations unless you dig into documentation or are a WordPress dev yourself.
When I tried out this plugin, I found that the cache preloading was somewhat unreliable. It doesn’t really do some speed features like image lazy loading, and its support for CDNs exists but isn’t exceptional. Overall, they have a very high rating and a lot of people like them, and they are by no means a bad caching plugin, I just prefer a few others over what they offer.
W3 is another of the most popular caching plugins, but unlike WP Fastest Cache, it’s very polarizing. Some people absolutely love it, while others find it quite poor. I’m putting it fairly high up on the list because of its generally high reviews and its broad feature coverage, but I personally wasn’t as fond of it.
In particular, because of how complex this plugin is, it’s easier to do something that can break your site, at least temporarily. It has CDN support, but my CDN didn’t play nice with it until I used another plugin to get them to work together.
Perhaps my biggest gripe, though, is that this plugin is laced with ads for its premium version. I don’t need my admin dashboard to be yelling at me to upgrade every time I want to check on my cache, you guys.
As popular as the previous two plugins combined, Super Cache is universally considered one of the best plugins for caching out there. It has different configuration options for different levels of user skill, including an advanced mode for detailed configuration and a simple mode that just caches the most common options and runs with it.
In my personal experience, this plugin is good with caching but slightly unreliable with my audience, so it didn’t give me the overall speed boosts I hoped it would. It also works with CDNs on a pretty lackluster level. I think they kind of intend it to be a replacement for CDNs for small blogs, but larger sites that still want to use CDNs might need to mess with it to get it all to work nicely. The cache preloading is also somewhat broken, which is unfortunate.
This one is my favorite plugin, and it’s the one I use, which is why it’s at the top of the list. I readily admit it’s not ideal for all of you, because it’s a premium plugin compared to all of these other free options.
Anecdotally, this is the plugin that had the most positive impact on my site’s PageSpeed scores. It has advanced features like lazy-loading for images, script minification, smushing for images, browser caching, and a bunch more. Some of the advanced features, like scheduled database cleaning and optimization, are great as well.
The downside, of course, is that it’s not free. $50 gets you a license and a year of support for a single website, with higher priced packages for 3 and unlimited licenses. I found it totally worthwhile, but you might not.
What’s your personal rankings for these items? Do you have another caching plugin you prefer that I didn’t find? Let me know.