So I am a big user of Divi by Elegant Themes. As I have taken on more local clients, the theme has allowed me to quickly and easily make good looking sites that convert well. At the same time, because of the container each element has, having the customer update it is much easier as well. For this reason, I am using Divi for more and more of my customer websites. In fact, this site is using Divi as well.
- Good website hosting. I use a reseller plan for my customers. My reseller uses high quality SSD drives and uses Litespeed instead of Apache to get that little bit extra speed.
- Optimize Images. I have Adobe Master Suite CS6, and I swear 90% of the time I use it for optimizing images. I could probably go further.
- Caching Plugins – For the most part, caching is one of the best ways to speed up your site. But, when you start using these more advanced themes, different caching plugins work better or worse than others.
- Content Delivery Network. I do not use these right now as I just can’t justify the extra costs of hosting a website. The best benefit is serving files closer to the computer requesting them.
The problem is there are literally dozens of different caching plugins both free and paid. Add in, I am not a programmer, I am a business person, and the ability to configure them properly can be difficult to handle. So in the interest of science and helping out others, I have decided to test a variety of caching plugins to see which ones work best, at least in my situation, for Divi.
I wanted to make this as fair as possible, so I have decided to clone a simple customer site (and of course change all the branding and wording) to see how this might work in a real world scenario. This post will take you through the entire process I use. I will show the mistakes I made as well.
Criteria for testing
As you can imagine there are hundreds of caching plugins to use through the WordPress repository. So in order for me to test it, it had to have the following criteria:
At least 1000 installs – I figured with 1000 installs kinks will be worked out.
At least 4 Star Rating – Most people reading this don’t want to deal with hassles so a good rating is key.
Updated in the last year – no need for a caching plugin to open up security holes.
My Hosting Environment
I have a reseller plan through Veerotech based in North Carolina. This allows me to set up individual CPanels for any test sites I create. Theoretically, this means it should be a cleaner install compared to using add-on domains or installing and uninstalling plugins that could leave residual code in the site. I like them as a host and recommend them. Click the link below to be taken to their site:
Using WHM, I set up both a test site I can use to clone, and a cache site to test the caching plugins on. Even though they reside on a sub-domain, those sub-domains each have their own CPanel.
Once I had the test site up, I cloned and genericized (is that a word) a dentist website. It is not a heavy site, and is really only about 5 pages long. But, most local business sites are not real big. Below is what the site looks like:
After I finished making my generic site, I installed the normal plugins that I use plus one extra. The extra plugin was the WP Clone plugin to easily blow out and re-clone the website on the caching test domain. The other plugins that I normally install on a customer site include:
So finally, I am going to run the test site through GT Metrix to get a base line speed test. When I ran it, I got a, well lets be realistic, horrendous 3.3 seconds. I also ran it a second time and got a more respectable, but still needs improvement 2.4 seconds. That doesn’t mean I can’t improve the score using some of the suggestions such as scaling my images. Normally, for a customer I would, but I also want to see what I can do with a not- to optimized site.
I cloned the site over and did my first test.
WP Super Cache
So I installed WP SuperCache, turned it on and just used the basic settings. Ok, my page speed score stayed about the same , but my page load time got super fast. I went from 2.4 seconds to 1.6 seconds. A significant improvement. And all of this with little to do on my end. In fact, one advantage to WP Super Cache, is its compatible with many membership programs including the one I use, Digital Access Pass.
I also enabled “Compress pages so they’re served more quickly to visitors. (Recommended)” and it seemed to slow things down. When I turned it back off, things sped up by about a second.
Next I tried out ZenCache. I installed ZenCache which let me know it is now Comet Cache. I un-installed Zen Cache, then activated Comet Cache and used the standard settings. I only saw about a second improvement.
I then included Gzip compression which gave me an extra second. But, client side caching slowed it down to 2.8 seconds.
WP Fastest Cache
When I ran the speed test, I was pleasantly surprised to see I hit 1.6 second load times.
Edit – 9/7/2016: The plugin developer did reach out to me to let me know that WP Fastest Cache works with Woocommerce as well. In fact, it auto detects Woocommerce and automatically excludes the required pages from the cache (like the checkout pages). As I get more information I will continue to update this post.
So I installed this caching plugin. I ran it once, got a good score, then saved the options and got a worse score. I couldn’t replicate the good score so I am not sure if that was a fluke. All in all, I got about 2.2. seconds. It was asking me to add a line to my wp-config file and I just couldn’t be bothered to do that and I know a lot of people won’t be comfortable playing in those config files. I imagine if I did update it, the cache might perform better.
I installed Gator Cache onto the new test site. Once you activate it you have to “install” some items by pushing a button. The only setting is to enable page cache. When I ran that, I got a speed of 1.6 seconds, very respectable. There are other settings like custom cache rules (including for HTTPS) but I didn’t see anything for integrating with a CDN.
This is the plugin I have been using with a lot of websites I built and it worked reasonably well with some caveats. Using the most basic settings and not minifying is what I started out with. That got me a respectable 1.6 seconds, just like on Gator Cache. W3Total Cache has a ton of options including access to using external Content Delivery Networks.
A2 Optimized WP
This is a plugin created by A2 Hosting. Since the server configurations are similar to what I have with my own hosting, I thought it would be good to test and see what type of results I got.
Apparently the plugin has some security features as well which is a nice add but I didn’t play with. After hitting most of the settings:
I ran a speed test and got 1.6 seconds.
WordFence and the Falcon Caching Engine
EDIT: Wordfence just announced (October 12, 2016) they are discontinuing their Falcon Caching Engine, sometime in the next month. It’s a shame since it performed so well with Divi.
Wordfence is a popular security plugin for wordpress that also includes both basic Caching the the Wordfence Falcon Engine. Because it is included as an add on to their security plugin, I decided to turn off iThemes Security Pro since most likely, you would be using these together. They allow both a basic as well as advanced caching.
I started with Basic Caching first and ran the first test. This gave me results of 1.9 seconds. Not great but not bad. I then turned on the Falcon Engine and reran the test. Falcon does make changes to your .HTACCESS file so they recommend you back up your site incase things go sideways. Upon running the test I got a very respectable 1.5 seconds.
Just to make sure, I also implemented the firewall which makes further changes to the .HTACCESS file to see if it changed performance. I still got the same 1.5 second load time so it made no difference on the speed test.
Hummingbird by WPMU
Since I have a subscription to WPMU, I was able to test their Hummingbird Caching plugin. I installed the WPMU Dashboard and then installed Hummingbird. In set up browser caching and it apparently modified the .HTACCESS file as well. but, I was getting an error and that may be to me using Litespeed instead of Apache. After running a test, I got 2.1 seconds. I tried configuring Gzip and it didn’t want to accept Litespeed so its stuck on Apache. I was still sitting at 2.1 seconds. I then minified the JS and CSS files. That gave me a .1 second increase to 2.0. Just to give WPMU a fair shake, I also installed Smush It Pro. I then bulk smushed the images to see if I could get more speed out of it just by decreasing the size of the images. The first run, I actually got WORSE performance. So I ran it through Super Smush and ran the speed test again. I got down to 2.0 seconds.
Once thing I discovered though, is somewhere in the optimization process, some CSS on the home page got messed up.
Just out of curiosity I did change it to Harddrive Cache as well, but it requires a change to the .HTACCESS file and the instructions look like they are in German… https://github.com/pluginkollektiv/cachify/wiki
Simple Cache was my next try. This is again, another lightweight simple caching plugin. I turned on the most basic settings which was, turn on caching. The first run, nothing spectacular, 2.3 seconds. I then turned on compression which is the only other option available. This actually gave me a surprisingly good 1.5 second load time. I then ran it again, and got a 1.9 second load time. I then turned off compression, purged the cache and got 1.4 seconds. I then enabled Compression, again purged the cache and got 1.5 seconds. One last try, I turned off Compression, purged the cache and did one more run. It came up at 1.9 seconds again. I am not sure exactly what I am doing wrong ( or right) as I had to run it again and got a great 1.5 seconds. I am going to stick with the 1.5 seconds but I am unsure if this plugin does something weird or funky. It was all over the place in speed tests.
Cache Enabler – WordPress Cache
This plugin is created by KeyCDN so I wanted to try it out. As you can imagine, it will work with KeyCDN (which seems to be, at least at the plan level above basic) cheaper than MaxCDN with more zones.
I decided to try the Litespeed Cache since one, its made by Litespeed technologies which is an apache drop in replacement, and two, my hosting uses Litespeed. I wanted to see if it made a difference. After I installed it, I got this error that I didn’t have something enabled which makes me think this plugin is more for people that run a VPS and have more server skills than I do.
WPRocket is a popular caching plugin but it is also a paid plugin. the guys over at WP Rocket gave me a trial of the plugin to text head to head with the other plugins. First, I installed the plugin and activated it, and ran the first test. Without doing anything besides activating, i got a 1.5 second load time.
Next I turned on lazy load for images and iframes and videos. This dropped the page load time to 1.1 seconds. One tiny anomoly I saw but it is not a deal killer, is an overlay image in the hero area (under the header) loads about a second after the rest of the image but to be honest, the speed of load is so darn fast, I don’t see how you could really complain about it.
I also tried minifying some of the content. Minifying HTML provided no benefit in page speed as did minifying inline JS and Inline CSS. I still got 1.1 second load time. That being said, it didn’t hurt performance. Finally, I turned on all minification and clicked one more setting which replaced emojis with default WordPress smiley. With these settings, I got a 1 second load time.
One area that never gets talked about is the ability of the plugin to clean up revisions on your website. As a site ages, those revisions can add up. Just on a test site alone I had 57 revisions it cleaned out. Add to this the plugin works with varnish, CDN’s, SSL and allows you to keep pages out of the cache which is great for both e-commerce stores and membership sites.
Before you read into the conclusions, it is important to realize where this is not the most scientific results. For example, I ran these tests over several days. Given that I am on reseller hosting, it’s possible, I was testing during times when accounts that share the same server with me had a lot (or less) traffic than normal (A KVM VPS would be a better test since its a more pristine environment). Also, I ran this on good quality reseller hosting. My gut tells me, these results will be even more dramatic if you are using one of those cheap shared hosts that all the GURU’s tell you to use (you know the one I am talking about…). In addition, since I use Litespeed instead of Apache, that could make a difference in the results. Finally, the site I was testing with this, was a pretty lightweight site of just 5 or so pages. I could have optimized the pages even further, especially images. But, some of the heavier intensive websites might perform different.
Overall WInner: WP Rocket at 1.0 Seconds
Second Place: Fastest Cache with 1.3 Seconds
Third Place: A2 Optimized Cache and WordFence at 1.5 seconds. Simple Cache was to finicky for me to put them in second place
Fourth Place: WP Super Cache, Gator Cache and W3 Total Cache at 1.6 seconds.
Cache Enabler, Hummingbird, Comet Cache/Zen Cache, Hyper Cache and Cachify all had 2 seconds or slower load speeds.
If you run an e-commerce store or membership site, then WP Rocket is the way to go. If you have a simple site (like I tested) and are on a tight budget, then WP Fastest Cache would be my next choice. If you run just a single site, and need security, don’t discount Wordfence as both the cache and security. For my customers, as much as I like Wordfence, it is more economical for me to use iThemes Security Pro which means if I have at least 10 customers, WP Rocket would be a great addition to my value add.
If you are the plugin developer for any of these and want to give it a run with any optimizations, please let me know and I will rerun your tests and post the results. Also if you are a premium plugin and you want to give me a trial to test, I am happy to as well. Finally, if I missed you on the Plugin Repository and you meet the criteria, reach out to me on my contact page and I will look at testing your plugin as well.