Update November 17th, 2018: Hyper Cache is now being actively developed again. Thus, it has returned as my #1 go-to WP Cache plugin. Changes marked in green.
This blog post was originally posted just over 4 years ago. WordPress Cache plugin options have changed a lot since. As such, I’m updating this list of 5 best WordPress plugins.
Are you already using a Wordpress Cache Plugin? I’ve tried many WordPress caching plugins over the years and after much testing, I’m able to narrow down the options to what I think are the best WordPress Cache Plugins currently available.
The issue with most Wordpress Cache plugins is that they store cache to disk only and/or use .htaccess mod_rewrite. Even if you move .htaccess rules into Apache you must also disable AllowOverride (AllowOverride None) as per Apache docs:
“When AllowOverride is set to allow the use of .htaccess files, httpd [Apache] will look in every directory for .htaccess files. Thus, permitting .htaccess files causes a performance hit, whether or not you actually even use them! Also, the .htaccess file is loaded every time a document is requested.”
With that in mind, here’s my updated list of the best WordPress cache plugins:
#5 W3 Total Cache (No change)
1.87 MB 2.2 MB)
This plugin can be fast. The operative word being “can” because with some setups it’s not. There are just so many ways to misconfigure this plugin. Please don’t read too much into that statement yet. I’ve had blog owners complain to me that W3 Total Cache “made their blog slower”. To troubleshoot, I used curl to test and many times that confirmed W3 Total Cache as the issue. BUT, this only happens when the plugin is misconfigured. For example blog owners that go crazy enabling all features to disk. Just head over to Google and start typing: w3 total cache sl …you’ll see what pops up first. :) Also, once you begin to load up all those features notice how fast the .htaccess file grows. You should really move all the .htaccess rules into Apache’s config. Due to this, I would say W3 Total Cache isn’t for the average user, but it’s obvious that with around 4 million downloads it’s been used by just about everyone.
— Allows for storage to Memcached and Redis.
— Many performance options beyond caching. (be careful)
— Relies on .htaccess for most features to work.
— Feels bloated, especially if you have server root access and only need WordPress caching.
#4 WP Fastest Cache (New!)
(Download size: 0.37 MB)
A cross between WP Super Cache and increasingly W3 Total Cache-like, sort of. The older versions from 2014/2015 offered more for free, without the premium bloat (check out the screenshots here). However, unlike the other plugins listed you cannot download previous versions via the “Developers” page (Update: This has been added, so you can go back as far as version 8.6.) Still, its listed here because it’s not a paid-only plugin and the original core is basically still intact.
— Easy to setup
— Very actively supported and developed.
— Also relies on .htaccess
— Below par customer support.
#3 WP Rocket (would be #1 if there was a free cache-only version)
0.90MB 2.0 MB)
This is a paid plugin with no free option, I’ve used WP Rocket from May 2016 until about a week ago. Its pretty powerful all-in-one plugin. Similar to W3 Total Cache but easier to configure and won’t slow down your site if you check or select certain options. Also uses .htaccess. There’s no option for Memcache or Redis.
Note: this blog is using WP Rocket + Nginx.
— Easy to setup
— Great support!
— Offers wide compatibly with 3rd party themes and plugins.
— All-in-one with options for Cloudflare, CDN, Varnish, Opcache, minify, preloading, etc.
— With Apache server, relies on .htaccess
— No free version! (Plugin could have been free for cache-only related feature and then charge for support or pro version with more features.)
#2 WP Super Cache – (+2 positions)
0.88 MB 0.93 MB)
Update: Since this list was originally posted, WP Super Cache has changed PHP caching to the “Recommended” option for caching. Happy to see that the PHP caching method is now recommended over mod_rewrite/.htaccess!
Allows the use of PHP for caching instead of .htaccess, however like others it
only offers to store cache to disk. Its interesting that while WP Super Cache has been downloaded one million more times than W3 Total Cache, it has HALF the number of WordPress support forum threads. Yes, it is a lot harder misconfigure this plugin and is faster than default WordPress no matter the setup you choose. If you are going to use mod_rewrite then make sure to move all the .htaccess lines into Apache’s config and disable AllowOveride. Otherwise, I recommend to stick with the PHP method instead. It’s important to remember that WP Super Cache was first released over 11 years ago when PHP 5.2 and PHP 5.1 were the most popular versions of PHP… Yikes!! Since then, with each new version, PHP has significantly improved in performance (even more so now with PHP 7!) and the use of opcode caching being enabled by default.
If the cons below are addressed, WP Super Cache would probably become my #1 plugin. Get rid of ALL bloat and redesign/simplify GUI.
— Easy to setup
— Very fast when configured correctly.
— Can be used without .htaccess by selecting to cache using PHP. (recommended)
— They’ve also added a disk cache location option (or tmpfs eg. /dev/shm)
— No option to save cache to memory. — The verbiage of options and some suggestions are a bit dated.
— Too many plugin/addons that aren’t useful.
#1 Hyper Cache – (replaces Cachify)
(Download size 0.05MB)
This is a fast, simple WordPress cache plugin. Its been around for a number of years and yet unlike many others hasn’t fallen into the trap of becoming too bloated.
— Very lightweight at < 50kB!
— Very Fast by default!
— KISS principle. (Simple)
— Not the best user interface.
Best WordPress Cache Plugin: Conclusion
If you are looking for a WordPress Cache Plugin that focuses mainly on Caching WordPress, go with Hyper Cache. If you are looking for a WordPress Cache Plugin which offers additional performance features, then go with the time-tested king WP Super Cache or pay for WP Rocket. No matter the choice, avoid using .htaccess cannot stress this enough (not an issue for those using Nginx instead of Apache).
At the end of the day almost all plugins are monetized in some way. However, most have free forever versions. I’m a bit disappointed that this isn’t the case with WP Rocket. I believe they would ultimately sell more copies of the FULL plugin if there was a free lite version. Not a free trial, but a caching-focused free version listed in the official WordPress plugin directory. As mentioned this blog is already powered by WP Rocket + Nginx.
I believe the next plugin to hit the #1 spot will be a paid plugin that has a free version, as well as customized versions. By this I mean, a paid plugin which allows you to download only the features you need. So in my case there won’t be settings for Varnish, DB clean, Lazy load, Sucuri, or any other bloat I don’t use. A plugin compiled with only the features you choose! Will update this post in another 2 years.
How to force your WordPress Cache plugin to cache to RAM Remember you can also force plugins to use memory by mounting the WordPress cache (/wp-content/cache/) folder to tmpfs. Be Careful!!! Don’t attempt unless you understand what’s being done! It is probably best to disable your cache plugin first. Also, check the contents of /wp-content/cache/ to make sure that you know what you’ll be moving. First we mount the WordPress cache directory from disk to tmpfs (server memory). Commands require root privilege: mount -t tmpfs -o size=1G tmpfs /full/path/to/wp-content/cache Next, if still enabled, clear your WordPress plugin’s cache. Then to make this persistent on reboot edit /etc/fstab and add this at the end: tmpfs /full/path/to/wp-content/cache tmpfs defaults, size=1G 0 0
…this is not necessary since the Linux kernel will cache to memory anyway.
If you find this post helpful, comments and questions are welcomed. If you are looking for more WordPress and web server performance and scalability, or would like to optimize the performance of other web applications such as Magento, Drupal, Joomla, etc. …send me a note.