Shared hosting isn’t the ideal environment for speeding up WordPress with W3 Total Cache. There are features that just don’t work well on a shared server. In addition, if you run into server configuration issues there isn’t much you can do about it if your site is hosted on a shared server.
In an ideal WordPress world, every WordPress website would be hosted in a private environment. However, many WordPress websites don’t generate the kind of traffic or revenue needed to justify anything more than bare-bones shared hosting.
If that’s where you find yourself, it’s easy to get frustrated and give up on W3TC entirely. Instead of throwing in the towel, what you really need is a simple baseline configuration – a starting point that produces a measurable improvement in site performance. From that starting point you can customize W3TC for additional gains, but at least you’ll know right off-the-bat that you’re starting the process with a mark in the win column.
- 1 Simple Settings That Just Work
- 2 Where Did These Settings Come From??
- 3 What Sort of Results Will These Settings Produce?
- 4 Next Steps…
This article is 100% affiliate-free!
We will never take money to promote others, everything you read is genuine. Learn more.
This post is the final part of our four-part series on W3 Total Cache. If you want to read all of the W3TC goodness we have on tap, check out the rest of our Ultimate Guide to W3 Total Cache:
Simple Settings That Just Work
You might be surprised to learn that all it takes to produce a measurable improvement in site performance is page and browser caching. That’s good news because no other modules perform consistently from one shared hosting environment to the next.
What that means is that you only have to mess with three of W3TC’s sixteen menus to see a noteworthy boost in site performance: General Settings, Page Cache, and Browser Cache.
Clear the Slate
Ideally, you’ll come to this tutorial with a brand new, untouched W3TC installation. However, if that isn’t the case, the first thing to do is to clear the slate by resetting the default settings. To do that go to Performance > General Settings and scroll all the way to the bottom of the page. Select the very last button you see to Restore Default Settings.
Now we’re ready to get started.
General Settings Menu
First, enable the Page Cache and Browser Cache modules from the General Settings menu. To enable these modules, follow these steps:
- Go to Performance > General Settings.
- In the Page cache section select the Enable checkbox.
- In the Browser cache section select the Enable checkbox.
- Leave all other checkboxes and settings in their default configuration and click any of the buttons labeled Save all settings.
Page Cache Menu
Next, configure page caching. Go to the Page Cache menu and make sure the following settings are selected:
- Go to Performance > Page Cache.
- Select the checkbox to Cache front page.
- Select the checkbox to Cache feeds: sites, categories, tags, comments.
- Select the checkbox to Cache requests only for yourdomain.com address.
- Select the checkbox next to Don’t cache pages for logged in users.
- In the Cache Preload section, select the checkbox to Automatically prime the page cache.
- In the Cache Preload section, select the checkbox to Preload the post cache upon publish events.
- Leave all other settings in their default configuration and click any of the buttons labeled Save all settings.
Browser Cache Menu
Finally, configure browser caching. From the Browser Cache menu just a couple of minor modifications are needed:
- Go to Performance > Browser Cache.
- Select the checkbox to Set Last-Modified header.
- Select the checkbox to Enable HTTP (gzip) compression.
- Select the checkbox next to Don’t set cookies for static files.
- Leave all other settings in their default configuration and click any of the buttons to Save all settings.
Where Did These Settings Come From??
This plugin configuration was thoroughly tested.
- Shared servers from four hosting providers were tested: Site5, Hostgator, SiteGround, and Surpass Hosting.
- The test platforms include both Apache and NGINX web servers running PHP versions ranging from 5.2 to 5.6.
- None of the hosts knew what we were doing.
- We used standard consumer-level shared hosting plans: the exact same sort of plan you would get if you purchased a shared hosting plan from one of those providers right now.
A standardized test process was developed and used to test out W3TC configuration on each of the servers.
- A clean WordPress installation was created with the default TwentySixteen theme activated.
- Test data from WPTest.io was uploaded to each site to bulk up the size of the site homepage.
- Each site was then tested at least five times using Pingdom’s Website Speed to determine the typical page load speed.
- After testing the site, W3 Total Cache was installed and configured exactly as described in this article.
- Once page caching had taken effect – which was confirmed by checking the site debugging information – the site was retested at least five more times with Pingdom’s website speed test.
What Sort of Results Will These Settings Produce?
That’s a tough question to answer.
The improvement you will see after installing W3TC and configuring it exactly as we’ve recommended cannot be predicted. There are just too many factors in play. However, we can show you the results that these settings produced when we tested them out.
Baseline Performance: No Caching Plugin Installed
The test site is a pretty lightweight website. So it should load pretty fast without any caching, right? Yes, and Pingdom agrees.
In every case, the average load time was less than a second and a half — not too shabby and nothing to complain about. How much improvement can you really expect by implementing just page caching and browser caching on a site that already loads pretty fast? Not much, right?
The correct answer: more than a 30% improvement.
Performance with W3TC Installed and Configured
With W3TC installed and configured, and the site homepage cached, our test site loaded significantly faster.
On average, the test site loaded 33% faster with page and browser caching enabled. Here are the numbers so you can judge the results for yourself:
- Average load time prior to caching: 1221 milliseconds.
- Average load time with caching: 815 milliseconds.
- Reduction in average load time: 406 milliseconds or 33.3%.
Keep in mind that our test site started the process as a light site. Heavier sites can expect to see a larger improvement in site performance with the same settings in effect.
There is so much more that you can do with W3TC, even on a shared server. Minification has the greatest potential to boost website performance, but database and object caching may also prove helpful for some sites. If you’re using WordPress and W3TC on a shared server use these settings as a starting point, but not as the final plugin configuration. If you do, you’ll be leaving a lot of potential improvement on the table.
Your next step should be to take a look at the minify, database cache, and object cache modules in W3TC to determine if any improvement in site performance can be produced by configuring those modules. If you’re intimidated by that thought, refer to the second part of this Ultimate Guide to W3 Total Cache in which all of the plugin modules are explained.
Why 100 is NOT a Perfect Google PageSpeed Score (*5 Min Watch)
Learn how to use Google PageSpeed Insights to set realistic goals, improve site speed, and why aiming for a perfect 100 is the WRONG goal.