=== Plugin Name === Contributors: fredericktownes Tags: user experience, cache, caching, page cache, css cache, js cache, db cache, disk cache, disk caching, database cache, http compression, gzip, deflate, minify, CDN, content delivery network, media library, performance, speed, multiple hosts, CSS, merge, combine, unobtrusive javascript, compress, optimize, optimizer, JavaScript, JS, cascading style sheet, plugin, yslow, YUI, google, google rank, google page speed, S3, CloudFront, AWS, Amazon Web Services, batcache, wp cache, wp super cache, w3 total cache Requires at least: 2.5 Tested up to: 2.9 Stable tag: 0.8.5 Dramatically improve the user experience of your blog. Add page caching, database caching, minify and content delivery network functionality and more to WordPress. == Description == 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. Benefits: * At least 10x improvement in site performance (when fully configured: Grade A in [YSlow](http://developer.yahoo.com/yslow/) or significant [Google Page Speed](http://code.google.com/speed/page-speed/) Improvements) * Improves "[site performance](http://googlewebmastercentral.blogspot.com/2009/12/your-sites-performance-in-webmaster.html)" which [may affect your blog's rank](http://searchengineland.com/site-speed-googles-next-ranking-factor-29793) 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 load instantly) * Improved web server performance (easily sustain high traffic spikes) * Up to 80% Bandwidth savings via Minify and HTTP compression of HTML, CSS, JavaScript and RSS feeds Features: * Compatible with shared hosting, virtual private servers and dedicated servers / clusters * Transparent content delivery network (CDN) integration with Media Library, theme files and WordPress itself * Caching of (minified and compressed) pages and posts in memory or on disk * Caching of (minified and compressed) CSS and JavaScript in memory, on disk or on CDN * Caching of RSS (comments, page and site) feeds in memory or on disk * Caching of search results pages (i.e. URIs with query string variables) in memory or on disk * Caching of database objects in memory * Minification of posts and pages and RSS feeds * Minification (combine and remove comments / white space) of inline, embedded or 3rd party JavaScript (with automated updates) * Minification (combine and remove comments / white space) of inline, embedded or 3rd party CSS (with automated updates) * Browser caching of CSS, JavaScript and HTML using future expire headers and entity tags (ETag) * JavaScript grouping by template (home page, post page etc) with embed location management * Non-blocking JavaScript embedding * Import post attachments directly into the Media Library (and CDN) Easily improve the user experience for your readers without having to change WordPress, your theme, your plugins or how you produce your content. == Frequently Asked Questions == = Why does speed matter? = Speed is among the most significant success factors web sites face. In fact, your blog's speed directly affects your income (revenue) — it's a fact. Some high traffic sites conducted some research and uncovered the following: * Google.com: +500 ms (speed decrease) -> -20% traffic loss [[1](http://home.blarg.net/~glinden/StanfordDataMining.2006-11-29.ppt)] * Yahoo.com: +400 ms (speed decrease) -> -5-9% full-page traffic loss (visitor left before the page finished loading) [[2](http://www.slideshare.net/stoyan/yslow-20-presentation)] * Amazon.com: +100 ms (speed decrease) -> -1% sales loss [[1](http://home.blarg.net/~glinden/StanfordDataMining.2006-11-29.ppt)] A thousandth of a second is not a long time, yet the impact is quite significant. Even if you're not a large company (or just hope to become one), a loss is still a loss. However, there is a solution to this problem, take advantage. In the near future search engines themselves will weigh the performance of web sites as factors in their ranking algorithms. Search engine's have the goal of providing users with the best user experience, so speed is definitely a factor. = Why is W3 Total Cache better than other cache plugins? = Most of the popular cache plugins available do a great job and serve their purpose very well. Our plugin remedies numerous performance reducing aspects of any web site going far beyond merely reducing CPU usage (load) and bandwidth consumption for HTML pages alone. Equally important, the plugin requires no theme modifications, modifications to your .htaccess (mod_rewrite rules) or programming compromises to reap the benefits. Setup is easy. = I've never heard of any of this stuff; my blog is fine, no one complains about the speed. Why should I install this? = Rarely do readers take the time to complain. They typically just stop browsing earlier than you'd prefer and may not return altogether. It's in every web site owner's best interest is to make sure that the performance of your blog is not hindering its success. = And how many years of university do I need to use this thing? = -4 - That's right; a youngster in junior high school can get started with this plugin. Seriously, if you did your own WordPress install or have ever installed a plugin before you're in good shape. If you need help, let us know or perhaps we'll make some videos or the like. = But even Matt Mullenweg doesn't agree that additional caching is so important, why bother? = You're right, [Matt did say that](http://ma.tt/2008/03/wordpress-is-open-source/#comment-439787). However, this plugin provides more than just "caching". Because he is correct, the web is dynamic and must remain so. But as we explain throughout this FAQ, our goal is to improve the performance of any blog and we deliver. Furthermore, the techniques we use, are well documented from past [WordCamp presentations](http://www.slideshare.net/bazza/high-performance-wordpress), we simply have combined them in a way that we have found stands up to the highest traffic situations. = Which WordPress versions are supported? = To use all features in the suite, a minimum of version WordPress 2.5 with PHP 5 is required. Earlier versions will benefit from our Media Library Importer to get them back on the upgrade path and into a CDN of their choosing. = Will the plugin interfere with other plugins or widgets? = No, on the contrary if you use the minify settings you will improve their performance by several times. = Does this plugin work with WordPress MU? = Indeed it does. = Does this plugin work with BuddyPress (bbPress)? = Not sure, we'll get to that soon. = What about comments? Does the plugin slow down the rate at which comments appear? = On the contrary, as with any other action a user can perform on a site, faster performance will encourage more of it. The cache is so quickly rebuilt in memory that it's no trouble to show visitors the most current version of a post that's experiencing Digg, Slashdot, Drudge Report, Yahoo Buzz or Twitter effect. = Who do you recommend as a CDN (Content Delivery Network) provider? = That depends on how you use your blog and where most of your readers read your blog (regionally). Here's a short list: * [MaxCDN](http://www.maxcdn.com/) * [Cotendo](http://www.cotendo.com/) * [VPS NET](https://vps.net/cdn-signup) * [Amazon S3](http://aws.amazon.com/s3/) & [Amazon Cloudfront](http://aws.amazon.com/cloudfront/) * [NetDNA](http://www.netdna.com/) * [EdgeCast](http://www.edgecast.com/) * [Akamai](http://www.akamai.com/) * [Limelight Networks](http://www.limelightnetworks.com/) * [SimpleCDN](http://www.simplecdn.com/) * [Voxel](http://www.voxel.net/products-services/voxcast-cdn) = Why would I want to cache my feeds? = We feel that caching objects after the first request and checking for updates before responding subsequent requests (which is kind of how web browsers work too) creates more opportunities for interesting applications and mashups where the blogosphere doesn't require institutional investment to be able to handle developers making hundreds of requests every day the same way we use Google, Twitter and Facebook (for example) APIs today. Think about it, even when major search engines crawl your site, they have to be "gentle" so they don't bring it down, let's turn the paradigm around so that every blog can deliver content in real-time in various ways. = I don't understand what a CDN has to do with caching, that's completely different, no? = Technically no, a CDN is a high performance cache that stores static assets (your theme files, media library etc) in various locations throughout the world in order to provide low latency access to them by readers in those regions. So indeed a CDN is a high performance cache, many of which actually store your frequently requested assets in memory for fastest possible response. = Will this plugin speed up WP Admin? = Yes, indirectly - if you have a lot of bloggers working with you, you will find that it feels like you have a server dedicated only to WP Admin once this plugin is enabled; the result, increased productivity. = Which web servers do you support? = We are aware of no incompatibilities with [apache](http://httpd.apache.org/) 1.3+, [IIS](http://www.iis.net/) 5+ or [litespeed](http://litespeedtech.com/products/webserver/overview/) 4.0.2+. If there's a web server you feel we should be actively testing (e.g. [lighttpd](http://www.lighttpd.net/)), we're [interested in hearing](mailto:wordpressexperts@w3-edge.com). = Is this plugin server cluster and load balancer friendly? = Yes, built from the ground up with scale and current hosting paradigms in mind. = Aren't there any troubleshooting tips? = No, however we do have an extensive FAQ in the plugin. In general, due to the manner in which this plugin works the only issues with you may encounter existed before you installed this plugin. In other words, the order or location of JavaScript or CSS files etc will need to be paid attention to as you configure your settings. Install the plugin to read the full FAQ. == Installation == 1. Disable and remove any other caching plugin you may be using — most plugins have uninstall procedures you can follow. Make sure wp-content/ has 777 permissions before proceeding, e.g.: `# chmod 777 /var/www/vhosts/domain.com/httpdocs/wp-content/` 1. Unzip and upload the plugin to your plugins directory (wp-content/plugins/), when done wp-content/plugins/w3-total-cache/ should exist. 1. Ensure that wp-config.php contains the statement below; if you previously used a caching plugin, this statement is likely to exist already: `define('WP_CACHE', true);` 1. Locate and activate the plugin on the plugins page, then click the Settings link to proceed to the General Settings tab. Set the permissions of wp-content back to 755, e.g.: `# chmod 755 /var/www/vhosts/domain.com/httpdocs/wp-content/` 1. Select your caching preferences for page, database and minify. If memcached is used this will require you to confirm or modify the default settings and add any additional memcached servers you wish to use. To (optionally) utilize APC / memcached + memcache installation guides have been provided under the Installation tab. For those in shared hosting environments, contact your provider to see if either of these is supported. 1. If you already have a content delivery network provider, proceed to the CDN Settings tab and populate the fields and set your preferences. If you're not running a version of WordPress with the Media Library feature, use the Media Library Import Tool to migrate your post images etc to appropriate locations. If you do not have a CDN provider, you can still improve your site's performance using this feature. Create and use a subdomain on your own server; e.g. static.domain.com and configure options on the CDN tab accordingly. 1. On the Minify Settings tab all of the recommended settings are preset. Specify any CSS and JS files in the respective sections, view your site's HTML source and search for .css and .js files. In the case of JS files you can specify the type and location of the embedding using the drop down menu. 1. You're done! Get back to blogging! == Changelog == = 0.8.5 = * Added "enhanced" disk caching mode for page cache, a 160% performance improvement over basic mode * Added disk caching as an option for Database Cache * Added CDN support for Amazon S3 and CloudFront * Added mobile user agent rejection and redirect fields to page cache for handling mobile user agents * Added Submit Bug Report tab * Added support for detection of custom templates for minify groups * Added separate controls expiration time field for minify and page cache settings * Added PHP4 Support Notification to handle fatal errors on activation * Improved database caching by 45% * Improved handling of cache-control HTML headers * Improved handing of 3rd Party CSS file minification * Improved media library import reliability * Improved handling of `DOCUMENT_ROOT` on some servers * Improved garbage collection routine * Improved handling of `
` and `