Ok, let’s get the big question out of the way. What is caching and why do you want it? Basically, caching will store copies of pages that have already been served from your webserver so that they don’t have to be called from the database every time they are requested and don’t have to be parsed through the PHP engine. The whole process is very similar to browser caching, except it works in reverse. Caching can be beneficial if you have a very busy website with lots of traffic or are experiencing burst traffic, which might happen from something like the Digg Effect or Slashdot Effect. Caching can also help because it addresses some performance issues that occur within WordPress. If you do things like not including numbers in your permalinks structure, serving the pages from the cache really improves performance.
That said, there are some downsides to caching. If you have comments and have caching enabled, the comments don’t show right away. If you aren’t careful about how you configure the cache, the feeds may not update in a timely fashion. Additionally if you use scheduled posts, instead of publishing on demand, caching support is sketchy at best. Lastly, caching doesn’t always play nicely with other plugins. Even with these drawbacks, IMHO it’s still worth activating caching on your WordPress blog.
I’m going to recommend that you go with the Super Cache plugin from Donncha O Caoimh. Lately, a lot of people have been talking about W3 Total Cache, but I would recommend you avoid using that plugin if at all possible. I tried it out on my blog, and it didn’t work as well as Super Cache. My hosting company TigerTech (an awesome company, by the way) gave me a graph showing how the CPU utilization went up when I switched to W3 Total Cache, so learn from my mistake and don’t go there.(*UPDATE SEE BELOW)
Here’s a screen shot of my settings:
In most cases you want it in the “on” status, unless you are using a plugin that creates conflicts with that setting (more on that below).
Don’t cache pages for local users. It won’t cache pages for any logged in authors and users, so any changes being made will be seen right away instead of an older version from the cache.
I wish the clear cache when a new post is published worked with scheduled posts, but I’ve never been able to get it to work that way.
If you are using a mobile plugin, be sure to turn it on here.
The first time you activate this plugin, it will suggest changes to your htaccess file. I usually just let it do its thing.
I also tell the plugin not to cache the feed. Because scheduled posts don’t clear the cache, feedburner has a hard time knowing when I make a new post. Turning off the option to cache the feed solved the problem. That setting is down a little farther in the settings page. You can block caching of other pages if for some reason you need to.
With that, you’re good to go. If you know you are working a social story that day, you may want to put the blog in lockdown mode. The benefit of lockdown is that it will help keep your server running smoothly; the bad part is that comments won’t show.
If you are like me and work with scheduled posts, I would also recommend manually clearing out the cache every few days to keep thing working optimally.
It’s my opinion that every website–not just “tech” sites–should have a mobile version. Why? Because, even if you are a doctor, someone will search for you from a smart phone. I bring this up here because, even though WP Super Cache recommends WordPress mobile edition, I think the programmer has some issues. I would recommend WP Touch instead. You will have to make some additional changes. I’ve included a video explaining what they are. One change involves setting the cache to “half on,” which is why mentioning it here seems useful.
To wrap up, putting a caching plugin on your blog is a good idea in most cases. Just be sure you know its limitations and qurks. Also be on the lookout for plugin incompatibilities.
Several people including the developer of W3TC have emailed me about the plugin, saying I’m incorrect and that plugin is faster, and I probably had several settings wrong. This may indeed be true, I’m not an expert but I consider myself somewhat technically proficient, and if I can’t get it right easily the chances of most people getting it right are slim to none. So if you are technical and have a better grasp of the plugin and how to configure it properly feel free to try it, it may indeed be faster. Also if you work with a CDN the plugin also may work faster. For me that just wasn’t the case, I like to run a low maintenance website, and finicky plugins aren’t my idea of fun.
photo credit: zenera