Maximize WordPress and BuddyPress Performance With W3 Total Cache

Wondering what all the fuss is about with people tweeting their love for caching plugins? Consider this a quick beginner’s introduction to WordPress caching, an answer to a few of the questions you may have been afraid to ask.

Today we’re going to take a look at W3 Total Cache, written by Frederick Townes, a server junkie and CTO of Mashable. This caching option is used by many high traffic sites, such as mashable.com, smashingmagazine.com, tutsplus.com, webdesignerdepot.com, pearsonified.com, css-tricks.com, and yoast.com. If you’d like to compare it to some other caching plugins, have a look at some WordPress cache plugin benchmarks for a thorough analysis of current WordPress scalability options.

What is caching?

Basic caching for WordPress involves taking the dynamic posts and pages and making them available as static files. These static files are then served to users which reduces the processing load on the server, especially during times of high traffic.

Why do I need caching for WordPress?

You may not. If your website is not trying to attract new traffic, then you’re probably safe without it. However, if you want to be prepared for a measure of success, you absolutely must have a caching option in place. Otherwise you risk overloading your server during what should be a shining moment of unprecedented traffic for your website. Even though the average website probably doesn’t need caching 99% of the time, when you do have a traffic spike, you’ll appreciate it. It’s times like these that can make or break a business. It will help you to avoid having to get an expensive dedicated server for your site if you’re only occasionally running into traffic spikes.

Benefits of Using W3 Total Cache

  • At least 10x improvement in overall site performance (when fully configured: Grade A in YSlow or significant Google Page Speed improvements)
  • Improves “site performance” which affect your site’s rank on Google.com
  • “Instant” second page views (browser caching after first page view)
  • Reduced page load time: increased visitor time on site (visitors view more pages)
  • Optimized progressive render (pages appear to render immediately)
  • Improved web server performance (sustain high traffic spikes)
  • Up to 80% bandwidth savings via minify and HTTP compression of HTML, CSS, JavaScript and feeds

Why is W3 Total Cache better than other caching options?

Depending on your server’s configuration you can see 50-100% improvement over WP Super Cache. However, WP Super Cache may be a better option for you if you don’t have the available RAM that W3TC requires to do its magic. W3TC utilizes your in-memory cache (APC or memcache). Memory caching is faster than disk caching, so if you’re able to dedicate at least 128M for memory caching, you should be able to see a remarkable improvement in performance.

What is CDN and how does it work?

Another way W3 Total Cache is able to give you a significant boost in performance is by providing transparent CDN integration. A content delivery network (CDN) is a collection of web servers distributed across multiple locations to deliver content more efficiently to users. A site can often dramatically improve load performance by offloading static assets, such as images and javascript, to be served by a content delivery network. W3TC makes it easy for you to set this up to work in concert with its caching system.

Is W3 Total Cache compatible with WPMU and BuddyPress?

Yes. :) Yet another reason this plugin gets my vote.

Considerations:

  • Make sure caching plugins work well with other plugins, i.e. ones that show ads based on search queries, etc.
  • Memcached isn’t available on most shared hosting providers
  • W3 Total Cache requires more memory than WP Super Cache, so you’ll need to make sure your hosting has that available.
  • Since you manually enter CSS / JS to compress, you’ll have to do this again if you ever change your theme files or add plugins, etc.

Comments (29)

  1. I’ve been trying to figure out how to get BuddyPress running smoothly with W3 Total Cache.. But the activity stream does not update properly with caching enabled, and so far I have not found a good setup that works..

    The actual W3 Total Cache plugin is really amazing, and it would be awesome to get it working 100% with BuddyPress.. Looking forward to the new release Frederick!

  2. Wait, can someone translate this for me? It’s from the plugin database you link to.

    “W3 Total Cache has a number of options and sometimes settings can be quite detrimental to site performance. If you can’t use APC caching or Memcached for caching Database queries or Minification, turn both off. W3 Total Cache’s interface is overwhelming but the plugin author has indicated that he’ll be making a new ‘Wizard’ configuration menu in the next version along with Fragment Caching.”

    So until that “Wizard” version comes out, I (and anyone else who doesn’t really know what they’re doing) should stick with Super Cache?

  3. What is the best way to check for plugin (especially buddypress specific) incompatibilities with this or any other caching plugin? I had installed the minify plugin and it seemed to break Bp-Chat and the links plugin functionality and so I had to deactivate minify.

    I’ve been hesitant to try out Super Cache or W3 Total Cache on my production site because I am not sure how to detect incompatibilities.

  4. I’m a little confused. You say that W3TC requires more memory than WP Super Cache… but is that only if you have the plugin set to use opcode or memcache? If you have everything set to just use disk (the default settings), does it still require more memory? My server has 2GB of RAM and 16 WP sites (three of which are BuddyPress but NOT in network/mu mode). The traffic is pretty low but available RAM can get pretty low are times. Should I use WP Super Cache instead?

  5. David, W3TC has more capabilities, so when various events the plugin performs run more memory is required. It has nothing to do with how the plugin works, it’s just life. WordPress itself requires different amounts of memory depending on what you’re doing also. We’re talking here about PHP’s memory allocation, none of the cases you’re referring to. Since every theme, server etc is different I don’t have any rules of thumb here, but in the past year I’ve only seen 1 user that had to change their PHP memory allocation and that was because of how their theme was written.

  6. This plugin breaked my system, because of it the permalinks died.I had links like site/community/members/username, now it doesn’t allow me, I only can get to the user by site/members/username. Does anyone know why?How can I fix this?

Participate