Skip to:
Content
Pages
Categories
Search
Top
Bottom

Re: Issues with W3 Total Cache and Buddypress on Multisite


Bowe
Participant

@bowromir

@oneearth.. Sure I can give you what i have so far. Here it is:

Series: Setting up W3TotalCache with BuddyPress – Part One

W3Total Cache has taken the WordPress world by storm this year. In my opinion it is by far the greatest performance tool for WordPress, and some of it’s features can be used to speed up BuddyPress as well. It has taken me some time to figure out the best settings, and with something as complicated as this, the results may vary. In this (lengty) trick I’m going to take you through the process of setting up W3Total Cache in the following order;

1: About W3 Total Cache and Installation
2: Server setup
2: Setting up the options that play nice with BuddyPress and your hosting setup
3: Using a CDN with MaxCDN
4: Hosting your Theme files and (group)avatars with the CDN
6: A word from the plugin author Frederick Townes
7: Conclusion

As you’ve probably seen, this is quite an extensive guide, and so I decided to split this post into 2 parts.

About W3 Total Cache and Installation

Plugin author Frederick Townes described W3 Total Cache as follows:

The fastest and most complete WordPress performance optimization plugin. Trusted by many popular blogs like: mashable.com, pearsonified.com, noupe.com, webdesignerdepot.com, freelanceswitch.com, briansolis.com, tutsplus.com, yoast.com, css3.info and others — W3 Total Cache improves the user experience of your blog by improving your server performance, caching every aspect of your site, reducing the download time of your theme and providing transparent content delivery network (CDN) integration.

Sounds impressive? Well it is impressive! So let’s install this plugin by going to your plugin browser and searching for W3 Total Cache. When you’ve found it, click on “Install” and that’s all you need to do install it.

Server Setup

Before we start with setting up the plugin, it’s important to tell you something about the general hosting of BuddyPress sites. Depending on the size of your community

Selecting the options that play nice with BuddyPress and your hosting setup

The hardest thing about using W3 Total Cache are the options that you cannot use in combination with BuddyPress. Because of the way that BuddyPress works and meant to be used (as a social networking tool), page caching and database caching causes trouble with the highly dynamic content that is being added to your site. Things like the activity stream will stop to function correctly if you simple enable all these features. I’ve read many times that the plugin “does not work” or “breaks” BuddyPress, but this is simply not the case. It only “breaks” if you try to use it for things that simply are not meant to be used with BuddyPress.

What caching basically does is taking a snaphot of a page at certain time intervals and serving that to the visitor when he visits that page (it’s more complicated then this, but this works to explain it easily). Now this works great if it takes a snapshot of a blogpost, because the content of a blogpost does not change every couple of minutes. But what happens when this concept is applied to your Activity Stream, Profile pages and Groups? You’ll see outdated data on the page, because in the meantime new content like status updates or group updates have been posted by your community. This explains why you can not use these features with BuddyPress.

But not to worry, there are plenty of feature you can use, and thus allow you to drastically speed up your site (just not as much as on a regular old -boring- WordPress site.

Here’s a screenshot of what you can enable:

[screenshot]

Minify:Minification can decrease file size of HTML, CSS, JS and feeds respectively by ~10% on average.

You can enable minification and configure it by visiting the Minify settings in W3TC it’s admin settings. Here’s how I’ve set it up on BP-Tricks:

[screenshot[

Depending on your hosting configuration you can choose which Minify Cache Method you want to use. If you have a dedicated server or VPS server and have something like APC, XCache or eAccelarator installed then use one of those tools. Or else you can just use the Disk method.

If you have a shared server your only option is the disk method.

Object caching: Object caching greatly increases performance for highly dynamic sites (that use the Object Cache API).

This feature so far has proven to work great with BuddyPress, altough it should be used with caution if you’re on a Shared server because sometimes it can actually decrease pageload times on your site. If that stuff happens it might be best to look into a cheap VPS or dedicated server. A little bit of information about the setup being used on BP-Tricks will be given in part two.

Content Delivery Network: Host static files with your content delivery network provider to reduce page load time.

This feature is probably the most useful for us BuddyPress users. In part two there will be a detailed step-by-step guide in setting up your CDN, so serve not only your theme files, but only your avatars, BP-Default Theme files and your essential plugin files!

Browser Cache: Reduce server load and decrease response time by using the cache available in site visitor’s web browser.

Gzip compression of your pages can also help speeding up your load times. Here’s what I have enabled for all sections on the page, and seems to do it’s job perfectly:

Set expires header
Set cache control header
Set entity tag (eTag)
Enable HTTP (gzip) compression
Here’s a screenshot with all my settings:

[screenshot]

To check if gzip compression works, you can go to http://www.gidnetwork.com/tools/gzip-test.php and check your domain and see Gzip is working.



Still working on the rest, this is all pretty general info.. But maybe it does help some of you :-)

Skip to toolbar