- Deactivate and uninstall any other caching plugin you may be using. Pay special attention if you have customized the rewrite rules for fancy permalinks, have previously installed a caching plugin or have any browser caching rules as W3TC will automate management of all best practices. Also make sure wp-content/ and wp-content/uploads/ (temporarily) have 777 permissions before proceeding, e.g. in the terminal:
# chmod 777 /var/www/vhosts/domain.com/httpdocs/wp-content/using your web hosting control panel or your FTP / SSH account.
- Login as an administrator to your WordPress Admin account. Using the "Add New" menu option under the "Plugins" section of the navigation, you can either search for: w3 total cache or if you've downloaded the plugin already, click the "Upload" link, find the .zip file you download and then click "Install Now". Or you can unzip and FTP upload the plugin to your plugins directory (wp-content/plugins/). In either case, when done wp-content/plugins/w3-total-cache/ should exist.
- Locate and activate the plugin on the "Plugins" page. Page caching will automatically be running in basic mode. Set the permissions of wp-content and wp-content/uploads back to 755, e.g. in the terminal:
# chmod 755 /var/www/vhosts/domain.com/httpdocs/wp-content/.
- Now click the "Settings" link to proceed to the "General Settings" tab; in most cases, "disk enhanced" mode for page cache is a "good" starting point.
- The "Compatibility Mode" option found in the advanced section of the "Page Cache Settings" tab will enable functionality that optimizes the interoperablity of caching with WordPress, is disabled by default, but highly recommended. Years of testing in hundreds of thousands of installations have helped us learn how to make caching behave well with WordPress. The tradeoff is that disk enhanced page cache performance under load tests will be decreased by ~20% at scale.
- Recommended: On the "Minify Settings" tab, all of the recommended settings are preset. If auto mode causes issues with your web site's layout, switch to manual mode and use the help button to simplify discovery of your CSS and JS files and groups. Pay close attention to the method and location of your JS group embeddings. See the plugin's FAQ for more information on usage.
- Recommended: On the "Browser Cache" tab, HTTP compression is enabled by default. Make sure to enable other options to suit your goals.
- Recommended: If you already have a content delivery network (CDN) provider, proceed to the "Content Delivery Network" tab and populate the fields and set your preferences. If you do not use the Media Library, you will need to import your images etc into the default locations. Use the Media Library Import Tool on the "Content Delivery Network" tab to perform this task. If you do not have a CDN provider, you can still improve your site's performance using the "Self-hosted" method. On your own server, create a subdomain and matching DNS Zone record; e.g. static.domain.com and configure FTP options on the "Content Delivery Network" tab accordingly. Be sure to FTP upload the appropriate files, using the available upload buttons.
- Optional: On the "Database Cache" tab, the recommended settings are preset. If using a shared hosting account use the "disk" method with caution, the response time of the disk may not be fast enough, so this option is disabled by default. Try object caching instead for shared hosting.
- Optional: On the "Object Cache" tab, all of the recommended settings are preset. If using a shared hosting account use the "disk" method with caution, the response time of the disk may not be fast enough, so this option is disabled by default. Test this option with and without database cache to ensure that it provides a performance increase.
- Optional: On the "User Agent Groups" tab, specify any user agents, like mobile phones if a mobile theme is used.
- Added option to disable the Minify Auto filename length test and specify manual value for hosting environments like Windows that require it
- Fixed NetDNA / MaxCDN authorization key issues
- Fixed OAuth name conflict for NetDNA / MaxCDN
- Fixed CDN and CNAME replacement for minify URLs
- Fixed WordPress sub-directory issue
- Fixed handling of moved / renamed wp-content and plugin directory
- Fixed Multisite issue when CDN is enabled and Minify is in auto mode and network-wide settings are applied
- Fixed late init handling
- Fixed handling of HTML debug comments being incorrectly inserted into documents
- Improved minify auto file naming for single install
- Improved page caching performance in NFS-based hosting environments
- Added NetDNA / MaxCDN dashboard widget
- Added zone dropdown for NetDNA and MaxCDN CDNs
- Added create pull zone for NetDNA and MaxCDN CDNs
- Added notification(s) if incompatible plugins are detected
- Added "Disable CDN on the following pages" setting
- Added "Disable CDN on SSL pages" setting
- Added late init support for page cache's fragment caching
- Added POT file
- Added translations NL, PL
- Fixed setenvif issue in htaccess rules
- Fixed failed rewrite (404) and not caching feeds in nginx
- Fixed NetDNA / MaxCDN CNAME purging issues and "Test CDN" functionality
- Fixed Azure container handling
- Fixed New Relic verification
- Fixed theme preview
- Fixed wrong path issue with w3tc-wp-loader.php
- Fixed auto mode of Minify and filename lengths
- Fixed purging monthly archives with Varnish
- Fixed insert, delete, update quries purging with database cache
- Fixed HTTP compression when dynamic page fragments are used
- Fixed PHP_STRING and other warnings
- Fixed case sensitive header detection
- Fixed HEAD request handling
- Fixed event scheduling propagation in Multi Site
- Improved CDN custom file paths
- Improved handling of legacy config files
- Improved NetDNA / MaxCDN alias, key, secret string handling (backwards compatible)
- Improved auto mode for minify file naming which was causing unncessary issues
- Improved handling of hardcoded WordPress paths
- Improved the file management functionality (FTP support, file permissions etc)
- Improved disk cache directory usage
- Improved garbage collection of expired cache files for disk enhanced method of page caching
- Improved drop-in verification, only adds required drop-ins
- Improved New Relic error notification handling
- Improved New Relic "app name" settings with Multi Site
- Improved cacheable mime type detection in Page Cache
- Improved ob_callback performance and reduced number of output buffer calls
- Improved minify handling with CDN and Multi Site
- Improved Object Cache purge policy performance
- Improved Database Cache purge policy performance
- Improved handling of request methods other than GET, POST for page caching
- Removed setting of New Relic app name in htaccess; set manually or use the dynamic setting on the "Monitoring" tab
- Fixed saving settings issue with CloudFlare on activation
- Fixed issue with DbCache and Object Cache flushing
- Improved security for CloudFlare API calls
- Improved security for mfunc, now disabled by default and requires security string in order to execute: CVE-2013-2010
- Improved behavior of GET string, used for detecting blogs in disk enhanced page caching mode for multi site to prevent redirect loops and other issues
- Fixed /tmp file creation issue when saving settings
- Fixed auto minify
- Fixed New Relic API key verification
- Fixed uncommon issue with require ObjectCache failing
- Fixed uncommon open_basedir verification issue
- Improved notification handling by modified WordPress FileSystem API implementation
- Added PHP file handling to support cases not covered by default WordPress FileSystem API
- Fixed config file write in more hosting environments
- Fixed legacy config file import on servers with hardened file permissions
- Fixed page cache write cache rules in some environments
- Fixed HiDPI images
- Fixed false positive notifications when permissions are not changed or same
- Fixed minify help
- Improved upgrade notifications
- Improved page cache and minify notifications
- Added support for grouping cache entries for easier flushing
- Added more options for placing minified files on pages. Custom placements using HTML comments.
- Added CSS inclusion for auto / manual minify. If present its used:
- Added JS inclusion for minify auto mode. If present its used: ,
- Added JS inclusion for minify manual mode. If present they are used when selecting correspong location in placement dropdown: , ,
- Added new minification inclusion options, async, defer, extsrc and asyncsrc
- Added flushing sitemaps
- Added flushing custom pages
- Added flush the current blog when flushing in MultiSite
- Added flushing home page and/or post page if static
- Added flushing older pages (page/2, page/3) on purge requests
- Added flushing a limited amount of pagenumbers
- Added purging caches for deleted blogs in WordPress MultiSite
- Added uninstall process to the plugin for easier cleanup
- Added upgrade support that cleans up and removes old cache folders
- Added message when disk enhanced page caching is not working properly
- Added custom wp-content name and locations
- Added CDN feature "Dont use CDN for specific roles"
- Added "Purge from cache" link on edit post/page pages
- Added permalink suffixes (.html, .htm etc)
- Added uploading blogs.dir files when using MultiSite and CDN
- Added notification about IAM when using Amazon services (SNS, CloudFront, S3 etc)
- Added 'Don't minify JS files' 'Don't minify CSS files' options for minify
- Added Access-Control-Allow-Origin support for CDNs
- Added hooks clean_post_cache and menu changes
- Added caching JSON mime-type. Other mime-types can be added using array filter 'w3tc_is_cacheable_content_type'
- Added automatic reloading of config files when APC apc.stat is disabled
- Added request reload of APC file over HTTP
- Added priming of post on publish
- Added single config file (by default) when using WordPress MultiSite
- Added switch_to_blog() support
- Added wp_cache_decr, wp_cache_incr support
- Added wp_cache_switch_to_blog support
- Added fragment caching functionality that extends the transient caching methods in WordPress core
- Added network activation and network policy management
- Added control for comment cookie lifetime
- Added Go Daddy SUBDOMAIN_DOCUMENT_ROOT directive support
- Added JSON to mod_deflate configuration
- Added WP-CLI support for purging cache, purging pull CDNs, reloading APC files, clearing APC, deleting pgcache files, and updating browser query string
- Added .htc mime type
- Added Rackspace CloudFiles container location selection
- Added rejected terms in database cache, to allow for deeper database caching capability
- Added Akamai CDN origin pull support
- Added system cache purge when apc.stat is disabled
- Added origin rel canonical support for CDNs
- Added AT&T origin pull CDN
- Added full-page mirroring and purging for origin pull CDNs
- Added compatibility mode improve disk enhanced page caching performance ~20% for users that don't care about interoperability
- Added nginx example files
- Added varnish example files
- Added basic application monitoring support using New Relic
- Added application monitoring widget using New Relic
- Added plugin dashboard page to display widgets etc
- Added purge from cache link to admin bar dropdown while browser posts/pages on front-end
- Added purge CDN completely link to admin bar dropdown
- Added CDN SSL checkbox "Disable CDN on SSL page"
- Added pull CDN support to MultiSite
- Fixed caching of the "Front Page" and added an option for the same
- Fixed w3_url_format function was not included error
- Fixed security vulnerability with file cache: disk basic page caching, database or object caching to disk. CVEs: CVE-2012-6077, CVE-2012-6078, CVE-2012-6079
- Fixed issue with concurrent writes to single config file
- Fixed Preview mode and deploy button
- Fixed varnish purging (See varnish config example file in ini folder)
- Fixed false positive notification on Page Cache: Disc Enhanced
- Fixed broken images for feedburner in dashboard on HTTPS sites
- Fixed minify ID generation causing notices
- Fixed false positive on minification related to group configuration among other
- Fixed default wp-content path and CDN uploads when WordPress is installed in directory
- Fixed pages not flushing when making changes in WordPress Admin
- Fixed mod_filter being used on unsupported Apache versions
- Fixed WordPress upgrade issue caused by W3TC remaining active
- Fixed minify path when using WordPress MultiSite and blogs in sub-directories
- Fixed user interface for "Dont cache specific roles"
- Fixed CDN and minify to file for storage
- Fixed feed_link filters interferring with feed purging
- Fixed false positive with minify rewrite test and WordPress MultiSite sub-directory mode
- Fixed WordPress Multisite in sub-directory mode and minify paths
- Fixed caching posts page when using static home page
- Fixed object cache not being initialised before getting options
- Fixed locating document root for minify in certain environments
- Fixed saving settings if permalinks are turned off
- Fixed "Install" page displaying rules that is not required
- Fixed minify cache being empty while page is cached so no minified files are generated, minified files auto generation no longer depend on pages not being cached
- Fixed unnecessary flushing with SSL, user agents and referrer not being activated
- Fixed "Purge from Page Cache" not purging varnish or CDN when enabled
- Fixed CSS minification and relative paths in external files
- Fixed login / logout and compatibility with BuddyPress
- Fixed flushing same posts many times if status is trashed or restored
- Fixed handling of .html fancy permalinks with nginx
- Fixed handling of missing xcache opcode cache
- Fixed Amazon S3 allowing LIST permissions to everyone
- Fixed handling of .xml mime type
- Fixed numerous object cache compatibility issues
- Fixed memcached port support issue
- Fixed HTTP_HOST not defined warning issue
- Fixed xdebug not configured halt issue
- Fixed minified files not being mirrored by push CDNs
- Fixed uploading to CDNs multiple times even if force overwrite is disabled
- Improved CloudFlare support: purging, dev mode, minification options, automatic IP range updates, rocket loader feature, security levels
- Improved support for the Bad Behavior plugin
- Improved object cache and MultiSite compatibility
- Improved flushing behavior with better post and pages detection. To change behavior hook into filter 'w3tc_flushable_post'
- Improved XML user interface when using Page Cache Disc: Enhanced
- Improved minify filename path generation
- Improved minify custom placement usage
- Improved PHP 5 compatibility by removing deprecated functionality
- Improved WordPress 3.4 and 3.5 compatibility by removing deprecated functions usage
- Improved plugin by removing unnecessary ob_starts
- Improved minify usage by returning old minify files while generating new
- Improved update procedure by removing need to manually deactivate and reactivate plugin
- Improved CDN paths and URL generation using both single and multisite installs
- Improved Admin Bar menu with more flushing actions
- Improved minify auto by adding support for downloading and combining external files
- Improved descriptions for various "Do not cache ..." textareas
- Improved header settings so plugin header settings override WordPress default header where appropriate
- Improved debug logging by adding a debug folder constant: W3TC_DEBUG_DIR
- Improved support for WPTouch plugin
- Improved custom post type support and flushing
- Improved cache key format and handling
- Improved minify support on Windows
- Improved purging functionality for CDN providers
- Improved compatibility wp-fb-autoconnect plugin
- Improved support of WordPress installed when in a sub-directory
- Improved support of non-default WordPress folder setups
- Improved use of HTTP API and FileSystem API in WordPress. HTTP API usage improves minify and CDN functionality. FileSystem API integration improves activation, deactivation and configuration changes
- Improved execution time across all caching engines
- Improved cache miss performance for page caching
- Improved notification handling
- Improved cache priming algorithm
- Improved minify error reporting
- Improved varnish purging capability
- Improved memory caching logic and purging speed
- Improved support for auto minify in more hosting environments
- Improved support for use of sockets in memcached
- Improved handling of old settings upon update
- Improved detection of document root on additional hosting providers
- Improved handling of eTags
- Improved browser cache policy options
- Improved bug submission form implementation
- Improved NetDNA / MaxCDN support by using their new API
- Disabled minify if CloudFlare is active
- Removed PHP 4 support
- Removed cookie used for user agent groups unless the feature is used
- Removed cookie used for referrer unless the feature is used
- Removed duplicate inclusion of JSON library
- Fixed security issue that can occur if using database caching to disk. If using database caching to disk with a web server with directory listing or web accessible wp-content/w3tc/dbcache/* directories. This patch works for all hosting environments / types where PHP is properly configured, i.e. .htaccess modifications (or other web server configuration changes) are not necessary to ensure proper security. Empty the database cache after performing the update if you use database caching to disk.
- Added support for Microsoft SQL Server
- Added API support for MediaTemple ProCDN (EdgeCast)
- Added set_time_limit to self test
- Fixed LiteSpeed web server support issues
- Fixed native hostname 301 redirect
- Fixed redundant object origin push export
- Fixed WSOD (white screen of death) caused by minify in some hosting configurations
- Fixed text encoding in feeds
- Fixed incorrect mime-type in feeds (which caused feedburner anomalies)
- Fixed array to string notices
- Fixed expires header support for AWS
- Fixed minification of font-family
- Fixed object cache write issue in WP Admin
- Improved (reduced) memory utilization by up to 70%
- Improved disk enhanced page caching performance
- Improved object caching performance
- Improved activation reliability
- Improved reliability of minify auto mode
- Improved security (added nonces, no directory indexing, prevent direct file access)
- Improved compatibility with network based file systems
- Added additional CloudFlare IP ranges
- Fixed html tidy encoding
- Fixed NetDNA / MaxCDN purging
- Improved handling of markers in .htaccess files - easier upgrades
- Improved cache busting logic
- Improved numerous notifications and user interface behaviors
- Improved AWS S3 and Cloudfront reliability
- Improved reliability of minify auto mode
- Fixed minify directives, e.g.: "File param is missing," causing minify caching to fail
- Fixed document root detection for IIS server
- Fixed HTTP compression when using CloudFlare
- Fixed fancy permalinks, sites with or without trailing slashes can now cache pages using disk enhanced
- Fixed appending WP_CACHE define into wp-config.php for some users
- Fixed path to JSON.php
- Fixed listing of buckets error with AWS S3
- Improved compatibility with WordPress SEO by Yoast, 404 error exception list sitemap value changed to: sitemap(_index|[0-9]+)?.xml(.gz)?
- Fixed existing installation upgrades: set minify to manual mode by default
- Fixed unsuccessful transfer queue button
- Fixed background in lightbox
- Fixed handling of local http requests being blocked on some hosts
- Disabled CDN for minify files when auto mode is selected and the CDN method is origin push
- Added support for nginx web server
- Added support for CloudFlare
- Added origin pull support for Amazon Cloudfront
- Added Microsoft Azure Storage support for CDN
- Added WinCache opcode cache support
- Added additional minifier engines for HTML, CSS and JS including: HTMLtidy, CSStidy, Closure Compiler, YUI Compressor
- Added Google Page Speed integration
- Added support for @import processing
- Added controls for page cache purging policy
- Added auto mode for minify (not compatible with CDN)
- Added support for set cookie domain setting
- Added reliability improvements for Amazon Web Services
- Added referrer group management for uniquely caching these cases
- Added Amazon S3 bucket location selection control
- Added support CNAMEs confguration support for Amazon Cloudfront
- Added purge tool
- Added support of custom wp-config.php location
- Added cache busting support
- Improved object caching performance when no plugins are active
- Improved non-blocking JS embedding implementation
- Improved reliability of CDN export operations
- Improved implementation of headers for all cache engines
- Improved minify help (recommendations) tool
- Improved handling of .htaccess directive changes
- Improved support of IIS web server
- Improved varnish support
- Fixed bugs with API changes with Rackspace Cloudfiles
- Fixed bugs with origin push content delivery network methods
- Fixed HTML encoding
- Fixed emptying cache for various cache keys
- Fixed rejected CDN file support
- Fixed HTTPS mode in WP Admin
- Fixed relative document root for disk enhanced page cache
- Fixed trailing slash for disk enhanced page cache
- Fixed minify template group settings being lost upon upgrade
- Fixed division by zero error
- Fixed object cache clones
- Moved browser cache rules to site root instead of document root
- Improved error messages with AWS S3 CDN
- Added SSL support for CDN
- Added control for CDN queue upload interval
- Added option for 404 file exceptions list in browser cache
- Added exception for NextGen Gallery flash image rotator to CDN settings
- Fixed external file imports
- Fixed document root detection for CDN
- Fixed minify file search
- Fixed bugs with AWS CloudFront distribution creation and saving
- Fixed Rackspace Cloud Files API
- Improved media library import compatibility
- Improved various notifications
- Changed expires implementation to last accessed instead of last modified
- Resolved Apache 1.3 compatibility issue
- Fixed issues with document root detection on some servers
- Fixed an issue with minification of script tags with HTML comments inside
- Fixed minify gzip compression
- Fixed cache-control headers
- Fixed empty fatal error notification on network activation
- Fixed minify when https is active
- Fixed fatal error upon activation when uploads path does not exist
- Added an additional notification to help users identify incomplete installations upon activation
- Reverted previous Cloud Files workaround
- Fixed preview mode buttons
- Fixed duplicate entries appearing when using minify help tool more than once
- Fixed browser cache rules generation for media files
- Improved Rackspace Cloud Files implementation
- Improved frequently asked questions implementation to support incomplete PHP distributions
- Fixed 500 Internal Server Error when upgrading with Disk enhanced mode enabled
- Fixed notification issues with preview mode
- Fixed an issue with fatal errors with minify and memcache(d) caching engine
- Added preview feature so all cache settings can be reviewed prior to deployment
- Added minify configuration wizard (help button on minify tab)
- Added "never cache the following pages" to database and object cache
- Added minify error notifications
- Added object caching
- Added option to automatically page cache prime (preload) with or without XML sitemap
- Added support for multiple CNAMEs to CDN
- Added support for minifcation of any respective theme installed a single site
- Added support for page caching of multiple themes for various user agent groups
- Added support for theme switching / redirection based on groups of user agents
- Added compatibility with WP Super Cache fragment caching method (disk basic mode only)
- Added HTTP compression and headers for AWS S3
- Added ignored comment stems field, with Google AdSense default value to HTML minify
- Added support for varnish purging
- Added Rackspace Cloud Files support
- Added native NetDNA / MaxCDN integration
- Added option to cache 404 pages
- Added changed files auto-upload to CDN
- Added option to handle 404 errors for static objects directly with the web server
- Added support for gravity forms to database cache default settings
- Added changed file auto-upload to CDN
- Database connection errors now return internal server (500) error response and are thus not cached
- Incomplete plugin installation / removal no longer generates public errors
- Unterminated string errors no longer display publicly
- Support tab improvements
- Install tab improvements
- Resolved conflicts with disk enhanced .htaccess directives insertion
- Improved compatibility with all mobile plugins
- Improved AWS reliability
- Improved browser caching support and management
- Improved directory management for disk caching methods for increased performance
- Improved handling of missing minify files
- Improved Media Library import
- Improved Multi Site support
- Improved SSL interoperability
- Added support for Bad Behavior plugin
- Added support for eAccelerator 0.9.5.3 and XCache opcode caches
- Added support for rewriting href attribute of anchors for images that use the CDN
- Added deflate http compression support to minify
- Added setting of file modification time after FTP upload
- Added check of file modification time and file size before FTP upload
- Added check of file hash before uploading to Amazon S3
- Added option to force replacement of uploaded attachments on CDN
- Added option to toggle feed minification
- Added combine only option for CSS minification to overcome invalid CSS files
- Added configuration file import / export
- Database caching now disabled by default to improve compatibility with some shared hosting environments
- Default page caching method now disk enhanced
- Improved HTTP Compression inter-operability
- Improved compatibility with Multi Site Manager
- Improved apache compatibility
- Improved .htaccess directives
- Improved header management for posts / pages
- Improved notifications
- Improved minify handling of external files
- Improved minify memory limit to avoid blank pages when document size is large
- Improved minify reliability by reducing comment removal options
- Improved Media Library Import versatility
- Improved reliability of plugin activation in WordPress MU
- Improved security handling for some operations
- Improved reliability of handling file names containing spaces in CDN functionality
- Improved non-blocking embedding reliability
- Improved memcached detection by supporting only PECL memcache
- Fixed disk enhanced method of page cache in WordPress MU
- Fixed false match of page cache files in disk enhanced method of page cache
- Fixed cron anomalies caused by caching of wp_options table
- Fixed missing trailing slash issue when using disk enhanced page caching
- Fixed auto-embed bug CSS and JS when already manually embedded
- Added option to CDN Settings to skip specified directories
- Added option to allow for full control of HTTP compression options for page cache (some WordPress installations have issues with deflate)
- Added sql_calc_found_rows to default auto reject SQL list
- Added more notification cases identified and configured
- Added new mobile user agents for Japanese market
- Page cache performance improvements for disk enhanced mode
- Improved FAQ and option descriptions
- Improved apache directives for minify headers
- Improved handling of redirects
- Improved name space to avoid issues with other plugins
- Improved handling of incomplete installations, caching runs with default options if custom settings file does not exist
- Fixed anomalies with memcached-client.php in some environments
- Fixed another interface bug with management of minify files
- Fixed minor bug with table column length for some MySQL versions
- Fixed minify bug with CRLF
- Fixed minify bug with handling of zlib compression enabled
- Fixed handling of pages with CDN Media Library import
- 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_ROOTon some servers
- Improved garbage collection routine
- Improved handling of
- Improved handling of regular expressions in custom file list in CDN settings
- Improved handling of media library attachments in RSS feeds
- Improved handing of subdomains for CDN settings
- Improved various notifications and error messages
- Improved optional .htaccess directives
- Fixed JS minifcation saving group settings
- Fixed false positives for duplicate CSS or JS in minify settings
- Fixed bug causing settings to be lost on upgrade
- Fixed attachment URI when CDN mode enabled
- Fixed small bug with FTP upload when CDN Method is Mirror (Origin Pull)
- Fixed the URI for wlwmanfiest.xml when CDN enabled
- Fixed handling of HTTPS objects according to options
- Fixed emptying disk cache under various obscure permutations
- Fixed handling of obscure open_basedir restrictions
- Fixed various bugs with emptying cache under various obscure permutations
- Fixed installations deeper than document root
- Added disk as method for page caching
- Added support for mirror (origin pull) content delivery networks
- Added options to specify minify group policies per template
- Added options for toggling inline CSS and JS minification to improve minify reliability
- Added option to update Media Library attachment hostnames (when migrating domains etc)
- Added "Empty Cache" buttons to respective tabs
- Added additional file download fallback methods for minify
- Improved cookie handling
- Improved header handling
- Improved reliability of Media Library import
- "Don't cache pages for logged in users" is now the default page cache setting
- Fixed minify bug with RSS feeds
- Fixed minify bug with rewriting of url() URI in CSS
- Addressed more page cache invalidity cases
- Addressed rare occurrence of PHP fatal errors when saving post or comments
- Addressed CSS bug on wp-login.php
- Addressed rare MySQL error when uploading attachments to Media Library
- Modified plugin file/directory structure
- Confirmed compatibility with varnish and squid
- Added warning dialog to minify tab about removal of query strings locally hosted object URIs
- Added empty (memcached) cache button to each tab
- Improved reliability of memcache flush
- Minified files now (optionally) upload automatically according to update interval (expiry time)
- Changed directory of minify working files to wp-content/w3tc-cache/
- Fixed parsing memcached server strings
- Fixed minify sometimes not creating files as it should
- Addressed WordPress network activation/deactivation issues
- Provided memcache.ini directives updated to improve network throughput
- Added memcached test button for convenience
- Added option to concatenate any script to header or footer with non-blocking options for scripts that cannot be minified (e.g. obfuscated scripts)
- Added options to concatenate JS files only in header or footer (for use with obfuscated scripts)
- Improved notification handling
- Improved compatibility with suPHP
- Improved reliability of Media Library Export
- Fixed database cache that caused comment counts to become out of date
- Fixed minor issue with URI with CDN functionality enabled
- Removed unnecessary minify options
- Minification error dialogs now disabled when JS or CSS minify settings disabled
- Normalized line endings with /n as per minify author's direction
- Resolved bug in the minify library preventing proper permission notification messages
- Added handling for magic_quotes set to on
- Fixed issue with auto-download/upgrade and additional error checking
- Fixed bug preventing minify working properly if either CSS or JS minification was disabled
- Improved handing of @import CSS embedding
- Addressed privilege control issue
- Resolved warnings thrown in various versions of WordPress
- Memcached engine logic modified to better support clustering and multiple memcached instances
- Eliminated false negatives in a number of gzip / deflate compression analysis tools
- Total plugin file size reduced
- Added minify support for URIs starting with /
- WordPress network mode support bug fixes
- Minor CDN uploader fixes
- Minor error message improvements
- Added "Debug Mode" listing all settings and queries with statistics
- Improved error message notifications
- Improved cache stability for large objects
- FAQ and installation instructions corrections/adjustments
- Support for multiple wordpress installations added
- Resolved bug in minification of feeds
- Initial release
Why does speed matter?
Speed is among the most significant success factors web sites face. In fact, your site's speed directly affects your income (revenue) — it's a fact. Some high traffic sites conducted research and uncovered the following:
- Google.com: +500 ms (speed decrease) -> -20% traffic loss 
- Yahoo.com: +400 ms (speed decrease) -> -5-9% full-page traffic loss (visitor left before the page finished loading) 
- Amazon.com: +100 ms (speed decrease) -> -1% sales loss 
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.
Search engines like Google, measure and factor in the speed of web sites in their ranking algorithm. When they recommend a site they want to make sure users find what they're looking for quickly. So in effect you and Google should have the same objective.
Many of the other consequences of poor performance were discovered more than a decade ago:
- Lower perceived credibility (Fogg et al. 2001)
- Lower perceived quality (Bouch, Kuchinsky, and Bhatti 2000)
- Increased user frustration (Ceaparu et al. 2004)
- Increased blood pressure (Scheirer et al. 2002)
- Reduced flow rates (Novak, Hoffman, and Yung 200)
- Reduced conversion rates (Akamai 2007)
- Increased exit rates (Nielsen 2000)
- Are perceived as less interesting (Ramsay, Barbesi, and Preece 1998)
- Are perceived as less attractive (Skadberg and Kimmel 2004)
There are a number of resources that have been documenting the role of performance in success on the web, W3 Total Cache exists to give you a framework to tune your application or site without having to do years of research.
Why is W3 Total Cache better than other cache plugins?
It's a complete framework. Most cache plugins available do a great job at achieving a couple of performance aims. 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 get started. Most importantly, it's the only plugin designed to optimize all practical hosting environments small or large. The options are many and setup is easy.
I've never heard of any of this stuff; my site 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. This is the only plugin specifically designed to make sure that all aspects of your site are as fast as possible. Google is placing more emphasis on the speed of a site as a factor in rankings; this plugin helps with that too.
It's in every web site owner's best interest is to make sure that the performance of your site is not hindering its success.
Which WordPress versions are supported?
To use all features in the suite, a minimum of version WordPress 2.8 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.
Why doesn't minify work for me?
We're always working to make this more simple and straight forward in future releases, but this is not an undertaking we can realize on our own. When you find a plugin, theme or file that is not compatible with minification reach out to the developer and ask them either to provide a minified version with their distribution or otherwise make sure their code is minification-friendly.
Who do you recommend as a CDN (Content Delivery Network) provider?
That depends on how you use your site and where most of your readers read your site (regionally). Here's a short list:
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.
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 in network mode?
Indeed it does.
Does this plugin work with BuddyPress (bbPress)?
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?
Is this plugin server cluster and load balancer friendly?
Yes, built from the ground up with scale and current hosting paradigms in mind.
What is the purpose of the "Media Library Import" tool and how do I use it?
The media library import tool is for old or "messy" WordPress installations that have attachments (images etc in posts or pages) scattered about the web server or "hot linked" to 3rd party sites instead of properly using the media library.
The tool will scan your posts and pages for the cases above and copy them to your media library, update your posts to use the link addresses and produce a .htaccess file containing the list of of permanent redirects, so search engines can find the files in their new location.
You should backup your database before performing this operation.
How do I find the JS and CSS to optimize (minify) them with this plugin?
Use the "Help" button available on the Minify settings tab. Once open, the tool will look for and populate the CSS and JS files used in each template of the site for the active theme. To then add a file to the minify settings, click the checkbox next to that file. The embed location of JS files can also be specified to improve page render performance. Minify settings for all installed themes can be managed from the tool as well by selecting the theme from the drop down menu. Once done configuring minify settings, click the apply and close button, then save settings in the Minify settings tab.
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.
What if I don't want to work with a CDN right now, is there any other use for this feature?
Yes! You can take advantage of the pipelining support in some browsers by creating a sub-domain for the static content for your site. So you could select the "Origin Push / Self-hosted" method of the General Settings tab. Create static.domain.com on your server (and update your DNS zone) and then specify the FTP details for it in the plugin configuration panel and you're done. If you disable the scripting options on your server you'll find that your server will actually respond slightly faster from that sub-domain because it's just sending files and not processing them.
How do I use an Origin Pull (Mirror) CDN?
Login to your CDN providers control panel or account management area. Following any set up steps they provide, create a new "pull zone" or "bucket" for your site's domain name. If there's a set up wizard or any troubleshooting tips your provider offers, be sure to review them. In the CDN tab of the plugin, enter the hostname your CDN provider provided in the "replace site's hostname with" field. You should always do a quick check by opening a test file from the CDN hostname, e.g. http://cdn.domain.com/favicon.ico. Troubleshoot with your CDN provider until this test is successful.
Now go to the General tab and click the checkbox and save the settings to enable CDN functionality and empty the cache for the changes to take effect.
How do I configure Amazon Simple Storage Service (Amazon S3) or Amazon CloudFront as my CDN?
First create an S3 account; it may take several hours for your account credentials to be functional. Next, you need to obtain your "Access key ID" and "Secret key" from the "Access Credentials" section of the "Security Credentials" page of "My Account." Make sure the status is "active." Next, make sure that "Amazon Simple Storage Service (Amazon S3)" is the selected "CDN type" on the "General Settings" tab, then save the changes. Now on the "Content Delivery Network Settings" tab enter your "Access key," "Secret key" and enter a name (avoid special characters and spaces) for your bucket in the "Create a bucket" field by clicking the button of the same name. If using an existing bucket simply specify the bucket name in the "Bucket" field. Click the "Test S3 Upload" button and make sure that the test is successful, if not check your settings and try again. Save your settings.
Unless you wish to use CloudFront, you're almost done, skip to the next paragraph if you're using CloudFront. Go to the "General Settings" tab and click the "Enable" checkbox and save the settings to enable CDN functionality. Empty the cache for the changes to take effect. If preview mode is active you will need to "deploy" your changes for them to take effect.
To use CloudFront, perform all of the steps above, except select the "Amazon CloudFront" "CDN type" in the "Content Delivery Network" section of the "General Settings" tab. When creating a new bucket, the distribution ID will automatically be populated. Otherwise, proceed to the AWS Management Console and create a new distribution: select the S3 Bucket you created earlier as the "Origin," enter a CNAME if you wish to add one or more to your DNS Zone. Make sure that "Distribution Status" is enabled and "State" is deployed. Now on "Content Delivery Network" tab of the plugin, copy the subdomain found in the AWS Management Console and enter the CNAME used for the distribution in the "CNAME" field.
You may optionally, specify up to 10 hostnames to use rather than the default hostname, doing so will improve the render performance of your site's pages. Additional hostnames should also be specified in the settings for the distribution you're using in the AWS Management Console.
Now go to the General tab and click the "Enable" checkbox and save the settings to enable CDN functionality and empty the cache for the changes to take effect. If preview mode is active you will need to "deploy" your changes for them to take effect.
How do I configure Rackspace Cloud Files as my CDN?
First create an account. Next, in the "Content Delivery Network" section of the "General Settings" tab, select Rackspace Cloud Files as the "CDN Type." Now, in the "Configuration" section of the "Content Delivery Network" tab, enter the "Username" and "API key" associated with your account (found in the API Access section of the rackspace cloud control panel) in the respective fields. Next enter a name for the container to use (avoid special characters and spaces). If the operation is successful, the container's ID will automatically appear in the "Replace site's hostname with" field. You may optionally, specify the container name and container ID of an existing container if you wish. Click the "Test Cloud Files Upload" button and make sure that the test is successful, if not check your settings and try again. Save your settings. You're now ready to export your media library, theme and any other files to the CDN.
You may optionally, specify up to 10 hostnames to use rather than the default hostname, doing so will improve the render performance of your site's pages.
Now go to the General tab and click the "Enable" checkbox and save the settings to enable CDN functionality and empty the cache for the changes to take effect. If preview mode is active you will need to "deploy" your changes for them to take effect.
My YSlow score is low because it doesn't recognize my CDN, what can I do?
Rule 2 says to use a content delivery network (CDN). The score for this rule is computed by checking the hostname of each component against the list of known CDNs. Unfortunately, the list of "known CDNs" are the ones used by Yahoo!. Most likely these are not relevant to your web site, except for potentially yui.yahooapis.com. If you want an accurate score for your web site, you can add your CDN hostnames to YSlow using Firefox's preferences. Here are the steps to follow:
- Go to about:config in Firefox. You'll see the current list of preferences.
- Right-click in the window and choose New and String to create a new string preference.
- Enter extensions.yslow.cdnHostnames for the preference name.
- For the string value, enter the hostname of your CDN, for example, mycdn.com. Do not use quotes. If you have multiple CDN hostnames, separate them with commas.
If you specify CDN hostnames in your preferences, they'll be shown under the details for Rule 2 in the Performance view.
What is the purpose of the "modify attachment URLs" button?
If the domain name of your site has changed, this tool is useful in updating your posts and pages to use the current addresses. For example, if your site used to be http://www.domain.com, and you decided to change it to domain.com, the result would either be many "broken" images or many unnecessary redirects (which slow down the visitor's browsing experience). You can use this tool to correct this and similar cases. Correcting the URLs of your images also allows the plugin to do a better job of determining which images are actually hosted with the CDN.
As always, it never hurts to back up your database first.
Is this plugin comptatible with TDO Mini Forms?
Captcha and recaptcha will work fine, however you will need to prevent any pages with forms from being cached. Add the page's URI to the "Never cache the following pages" box on the Page Cache Settings tab.
Is this plugin comptatible with GD Star Rating?
Yes. Follow these steps:
- Enable dynamic loading of ratings by checking GD Star Rating -> Settings -> Features "Cache support option"
- If Database cache enabled in W3 Total Cache add
wp_gdsrto "Ignored query stems" field in the Database Cache settings tab, otherwise ratings will not updated after voting
- Empty all caches
I see garbage characters instead of the normal web site, what's going on here?
If a theme or it's files use the call
php_flush() or function
flush() that will interfere with the plugins normal operation; making the plugin send cached files before essential operations have finished. The
flush() call is no longer necessary and should be removed.
How do I cache only the home page?
/.+ to page cache "Never cache the following pages" option on the page cache settings tab.
I'm getting blank pages or 500 error codes when trying to upgrade on WordPress in network mode
First, make sure the plugin is not active (disabled) network-wide. Then make sure it's deactivated network-wide. Now you should be able to successful upgrade without breaking your site.
A notification about file owner appears along with an FTP form, how can I resolve this?
The plugin uses WordPress FileSystem functionality to write to files. It checks if the file owner, file owner group of created files match process owner. If this is not the case it cannot write or modify files.
Typically, you should tell your web host about the permission issue and they should be able to resolve it.
You can however try adding define('FS_METHOD', 'direct'); to wp-config.php to circumvent the file and folder checks.
This is too good to be true, how can I test the results?
You will be able to see it instantly on each page load, but for tangible metrics, consider the following tools:
- Mozilla Firefox + Firebug + Yahoo! YSlow
- Mozilla Firefox + Firebug + Google Page Speed
- Mozilla Firefox + Firebug + Hammerhead
- Google Chrome + Google Speed Tracer
- Gomez Instant Test Pro
- Resource Expert Droid
- Web Caching Tests
- Port80 Compression Check
- A simple online web page compression / deflate / gzip test tool
I don't have time to deal with this, but I know I need it. Will you help me?
Yes! Please reach out to us and we'll get you acclimated so you can "set it and forget it."
Install the plugin to read the full FAQ on the plugins FAQ tab.
What users have to say:
- Read testimonials from W3TC users.
Press: Mentions, Tutorials & Reviews
- How to Speed Up Your WordPress Site (Quickly and Easily), Tom Ewer
- The Periodic Table of WordPress Plugins, Tom Ewer
- WordPress Optimization Guide
- The 25 Best WordPress Plugins Ever, Michael Garrity
Recommandé par des hébergeurs web comme : MediaTemple, Host Gator, Page.ly et WP Engine et bien plus. Mis en confiance par d'innombrables sites comme : stevesouders.com, mattcutts.com, mashable.com, smashingmagazine.com, makeuseof.com, yoast.com, kiss925.com, pearsonified.com, lockergnome.com, johnchow.com, ilovetypography.com, webdesignerdepot.com, css-tricks.com et des dizaines de milliers d'autres. 2190400 téléchargements ... je vous parle du plugin WordPress "W3 Total Cache".
Ce célèbre plugin "W3 Total Cache" vient de faire un "Total Fail". Une faille vient d'être découverte permettant de lire le contenu des requêtes mises en cache et donc de trouver des couples login/pass (hashés) par exemple. Cette faille appelée "Full Disclosure" ressemble presque à une injection SQL mais n'en est pas une. Cependant, la faille permettant de lire toutes les requêtes effectuées sur votre site, cela donne déjà trop d'informations aux pirates.
Aucun patch officiel n'est sorti, par contre un script existe et tourne entre les mains des pirates, vous pourriez devenir la cible, demain. Dependant les pirates ont besoin de renseigner le préfixe de votre base de données pour faire fonctionner leur script malicieux, j'espère pour vous que ce n'est pas "wp_" car c'est bien ce préfixe qui sera testé en premier lors de leurs attaques.
Je vous propose donc 3 solutions pour patcher en attendant :
- Modifier vite le préfixe de votre installation grâce au plugin "WP Security Scan" qui permet de le faire en quelques clics sans danger,
- Désactiver le "disk cache" et vider le contenu de /wp-content/w3tc/dbcache/,
- Ajouter un fichier ".htaccess" dans /wp-content/w3tc/dbcache/ avec en contenu "deny from all" même si vous avez déjà un .htaccess à la racine avec "Options -Indexes"
Edit du 30 déc 2012
Le plugin a été mis à jour hier nuit, la version 0.9.2.5 corrige la faille.