This repository has been archived by the owner on Feb 23, 2019. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 47
/
readme.txt
516 lines (395 loc) · 38.4 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
=== Plugin Name ===
Contributors: fredericktownes
Tags: seo, cache, caching, compression, maxcdn, nginx, varnish, redis, new relic, aws, amazon web services, s3, cloudfront, rackspace, cloudflare, azure, apache
Requires at least: 3.2
Tested up to: 4.8
Stable tag: 0.9.5.4.3
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Search Engine (SEO) & Performance Optimization (WPO) via caching. Integrated caching: CDN, Minify, Page, Object, Fragment, Database support.
== Description ==
W3 Total Cache improves the SEO and user experience of your site by increasing website performance, reducing download times via features like content delivery network (CDN) integration.
The **only** web host agnostic WordPress Performance Optimization (WPO) framework recommended by countless web developers and web hosts. Trusted by numerous companies like: AT&T, stevesouders.com, mattcutts.com, mashable.com, smashingmagazine.com, makeuseof.com, kiss925.com, pearsonified.com, lockergnome.com, johnchow.com, ilovetypography.com, webdesignerdepot.com, css-tricks.com and tens of thousands of others.
An inside look:
http://www.youtube.com/watch?v=rkmrQP8S5KY
*BENEFITS*
* Improvements in search engine result page rankings, especially for mobile-friendly websites and sites that use SSL
* At least 10x improvement in overall site performance (Grade A in [WebPagetest](https://www.webpagetest.org/) or significant [Google Page Speed](http://code.google.com/speed/page-speed/) improvements) **when fully configured**
* Improved conversion rates and "[site performance](http://googlewebmastercentral.blogspot.com/2009/12/your-sites-performance-in-webmaster.html)" which [affect your site's rank](http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html) on Google.com
* "Instant" repeat page views: browser caching
* Optimized progressive render: pages start rendering quickly and can be interacted with more quickly
* Reduced page load time: increased visitor time on site; visitors view more pages
* Improved web server performance; sustain high traffic periods
* Up to 80% bandwidth savings via minify and HTTP compression of HTML, CSS, JavaScript and feeds
*KEY FEATURES*
* Compatible with shared hosting, virtual private / dedicated servers and dedicated servers / clusters
* Transparent content delivery network (CDN) management with Media Library, theme files and WordPress itself
* Mobile support: respective caching of pages by referrer or groups of user agents including theme switching for groups of referrers or user agents
* Accelerated Mobile Pages (AMP) support
* Secure Socket Layer (SSL) support
* Caching of (minified and compressed) pages and posts in memory or on disk or on (FSD) CDN (by user agent group)
* Caching of (minified and compressed) CSS and JavaScript in memory, on disk or on CDN
* Caching of feeds (site, categories, tags, comments, search results) in memory or on disk or on CDN
* Caching of search results pages (i.e. URIs with query string variables) in memory or on disk
* Caching of database objects in memory or on disk
* Caching of objects in memory or on disk
* Caching of fragments in memory or on disk
* Minification of posts and pages and feeds
* Minification of inline, embedded or 3rd party JavaScript (with automated updates)
* Minification of inline, embedded or 3rd party CSS (with automated updates)
* Browser caching using cache-control, future expire headers and entity tags (ETag) with "cache-busting"
* JavaScript grouping by template (home page, post page etc) with embed location control
* Non-blocking JavaScript embedding
* Import post attachments directly into the Media Library (and CDN)
* WP-CLI support for cache purging, query string updating and more
* Various security features
* Caching statistics for performance insights
* Extension framework for customization or extensibility e.g. New Relic, Cloudflare, WPML and more
* Reverse proxy integration via Nginx or Varnish
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? =
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.
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** [[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.
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](http://www.websiteoptimization.com/speed/tweak/psychology-web-performance/) 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 caching solutions? =
**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](http://searchengineland.com/site-speed-googles-next-ranking-factor-29793); 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.3 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? =
Great question. W3 Total Cache uses several open source tools to attempt to combine and optimize CSS, JavaScript and HTML etc. Unfortunately some trial and error is required on the part of developers is required to make sure that their code can be successfully minified with the various libraries W3 Total Cache supports. Even still, if developers do test their code thoroughly, they cannot be sure that interoperability with other code your site may have. This fault does not lie with any single party here, because there are thousands of plugins and theme combinations that a given site can have, there are millions of possible combinations of CSS, JavaScript etc.
A good rule of thumb is to try auto mode, work with a developer to identify the code that is not compatible and start with combine only mode (the safest optimization) and increase the optimization to the point just before functionality (JavaScript) or user interface / layout (CSS) breaks in your site.
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:
* [MaxCDN](https://www.maxcdn.com/), [Discount Coupon Code](http://tracking.maxcdn.com/c/15753/3982/378?u=https%3A%2F%2Fsecure.maxcdn.com%2F%3Fpackage%3Dstarter%26coupon%3Dw3tc)
* [Amazon Cloudfront](https://aws.amazon.com/cloudfront/)
* [CloudFlare](https://www.cloudflare.com/features-cdn/)
* [Verizon Digital Media Services (formerly EdgeCast)](https://www.verizondigitalmedia.com/)
* [MediaTemple TrueSpeed (formerly ProCDN)](https://mediatemple.net/services/truespeed-cdn/)
* [Rackspace Cloud Files](https://www.rackspace.com/cloud/files)
* [Limelight Networks](https://www.limelight.com/)
* [Akamai / Cotendo](https://www.akamai.com/)
= 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)? =
Yes.
= 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+, [nginx](https://www.nginx.com/solutions/web-server/) 0.7+, [IIS](http://www.iis.net/) 5+ or [litespeed](https://www.litespeedtech.com/products/litespeed-web-server/overview) 4.0.2+. If there's a web server you feel we should be actively testing (e.g. [lighttpd](https://www.lighttpd.net/)), we're [interested in hearing](https://www.w3-edge.com/contact/).
= 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.
= 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](http://aws.amazon.com/) (unless using origin pull); 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](http://aws-portal.amazon.com/gp/aws/developer/account/index.html?action=access-key)" 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](https://console.aws.amazon.com/cloudfront/) and create a new distribution: select the S3 Bucket you created earlier as the "Origin," enter a [CNAME](http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/index.html?CNAMEs.html) 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](http://www.rackspacecloud.com/cloud_hosting_products/files). 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](https://manage.rackspacecloud.com/APIAccess.do)) 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](https://manage.rackspacecloud.com/CloudFiles.do) 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.
= 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 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:
1. Enable dynamic loading of ratings by checking GD Star Rating -> Settings -> Features "Cache support option"
1. If Database cache enabled in W3 Total Cache add `wp_gdsr` to "Ignored query stems" field in the Database Cache settings tab, otherwise ratings will not updated after voting
1. 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? =
Add `/.+` 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 <em>define('FS_METHOD', 'direct');</em> 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:
* [Google Page Speed](https://developers.google.com/speed/pagespeed/)
* [WebPagetest](https://www.webpagetest.org/test)
* [Pingdom](https://tools.pingdom.com/)
* [DynaTrace (formerly Gomez) Performance Test](https://www.dynatrace.com/en_us/application-performance-management/products/performance-center.html)
= 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](https://www.w3-edge.com/contact/) 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.
== Installation ==
1. 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.
1. 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.
1. 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/`.
1. 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.
1. 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.
1. *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.
1. *Recommended:* On the "Browser Cache" tab, HTTP compression is enabled by default. Make sure to enable other options to suit your goals.
1. *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.
1. *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.
1. *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.
1. *Optional:* On the "User Agent Groups" tab, specify any user agents, like mobile phones if a mobile theme is used.
== What users have to say: ==
* Read [testimonials](https://twitter.com/w3edge/favorites) from W3TC users.
== Who do I thank for all of this? ==
It's quite difficult to recall all of the innovators that have shared their thoughts, code and experiences in the blogosphere over the years, but here are some names to get you started:
* [Steve Souders](http://stevesouders.com/)
* [Steve Clay](http://mrclay.org/)
* [Ryan Grove](http://wonko.com/)
* [Nicholas Zakas](http://www.nczonline.net/blog/2009/06/23/loading-javascript-without-blocking/)
* [Ryan Dean](http://rtdean.livejournal.com/)
* [Andrei Zmievski](http://gravitonic.com/)
* George Schlossnagle
* Daniel Cowgill
* [Rasmus Lerdorf](http://toys.lerdorf.com/)
* [Gopal Vijayaraghavan](http://notmysock.org/)
* [Bart Vanbraban](http://eaccelerator.net/)
* [mOo](http://xcache.lighttpd.net/)
Please reach out to all of these people and support their projects if you're so inclined.
== Changelog ==
= 0.9.5.4.3 =
* Fix Undefined property: W3TC\Extension_Amp_Plugin::$is_amp_endpoint
* Adjusting cdn link in MediaLibrary
* Add support for X-Forwarded-Proto to identify HTTPS protocol
* Fix a timeout update that was missed in push CDN upload
* Write correct data into minify cache file when cache dir is created
* Make the Google Drive CDN work properly
* Return correct data from minify file cache when locking is in use
* Write cache files in binary to prevent corruption of UTF-8 characters
= 0.9.5.4.2 =
* Colored self test window
* Fixed Redis DB selection in persistent connection mode
* Fixed wrong == in ObjectCache_WpObjectCache_Regular.php
* Missing commas in Generic_Page_Dashboard_View.css
* Remove uninitialized variable
* Fix page cache .htaccess for Windows
= 0.9.5.4.1 =
* Re-sync with the official version
= 0.9.5.4 =
* Fixed regression with browser caching and query strings
= 0.9.5.3 =
* Fixed handling of HTTP compressed documents in PHP v5.3 (via amiga-500)
* Fixed a bug with accelerated mobile pages (via nigrosimone)
* Improved reliability of minify in manual mode
* Improved JavaScript interoperability with CDATA use cases
* Improved file name generation on Windows for IIS servers
* Improved handling of # in URLs
* Improved handling of exclusions for e-commerce in Genesis Framework
* Improved handling of headers for Microsoft Azure
* Improved functionality with existing Cloudfront Distributions when configuring Full Site Delivery
* Improved minify debug logging
* Improved handling of URLs that omit the protocol
* Improved handling of custom files with CDN (via amiga-500)
* Updated CSSTidy library (via nigrosimone and amiga-500)
* Added Swarmify Video Optimization Extension [Hat tip the Swarmify Team]
* Added flushing of AMP pages
= 0.9.5.2 =
* Fixed security issue by protecting configuration data by adding .php to relevant files
* Fixed security issue with the creation of dot folders that could be abused
* Fixed handling HTTP compression for uncached pages
* Fixed handling of .svgz files
* Added expiration headers to webP images
* Added support for Microsoft Azure’s latest API
* Added ability to cache WP Admin. Recommended setting, is off. (Improved WP Admin performance with object caching enabled)
* Added HTTP/2 Push support for minified files
* Added option management support for wp-cli
* Improved handling of uncompressed minified files
* Improved handling of purging of modified pages / posts
* Improved compatibility with Rackspace Cloud Files
* Improved initial CDN configuration reliability
* Improved reliability of object caching
* Improved PHP 7.0 compatibility
* Improved PHP 4.3 compatibility
* Improved HTTP/2 support
* Improved CSS embed handling
* Improved reliability of object cache, transients now fallback to database
* Improved handling of cached http compressed objects
= 0.9.5.1 =
* Fixed missing namespace, which caused issues with other implementations of Google APIs
* Fixed handling Cloudflare zone list being incomplete for users with many zones
* Added extension to support Accelerated Mobile Pages (AMP)
* Added notification for users that are still using PHP 5.2 (end of life in 2011)
* Improved default settings
* Improved compatibility with Yoast SEO sitemap caching
* Improved compatability with Jetpack
* Improved directory handling on IIS
* Improved backwards compatibility for 3rd party implementations against legacy W3TC functions
= 0.9.5 =
* Fixed XSS vulnerability
* Fixed issues with dismissing overlays
* Fixed handling of tilde in URLs
* Fixed issue with HTTP compression header when using mfunc calls
* Fixed cache ID issue with minify in network mode
* Fixed rare issue of caching empty document when some PHP errors occur in themes or plugins
* Fixed caching of query strings
* Added support for APCu Opcode Cache
* Added support for Redis
* Added support for Google Drive
* Added support for Amazon S3-compatible stroage services
* Added support for PECL memcached
* Added support for srcset elements
* Added support for Rackspace CDN Origin Pull
* Added support for minification of external fonts
* Added support for WOFF2 font format
* Added support for FTPS (FTP-SSL, S-FTP)
* Added YUI Compressor's PHP Port of the CSS minifier
* Added Narcissus' JS minifier
* Added purge of parent page when attachments are added or updated
* Added Highwinds CDN provider
* Added "Validate Timestamps" option for compatible opcode caches functions like apc.stat are enabled
* Added Full Site Delivery for Pro subscribers
* Added HTTP Strict Transport Security (HSTS) support
* Added a sample extension for developers to reference
* Added Rackspace Cloud Files Multi-Region Support
* Added more support for exclusions to database cache
* Added more optionality to minifiers
* Added WPML Performance Extension
* Added use of [namespace](http://php.net/manual/en/language.namespaces.rationale.php) which creates mininum dependency on version PHP 5.3
* Improved PHP 5.6 compatibility
* Improved PHP 7 compatibility
* Improved performance menu in admin bar, including purging of specific cache engines and more
* Improved SSL interoperability
* Improved reliablity of test buttons
* Improved nomenclature of caching files for higher cache hit rates
* Improved nginx compatibility
* Improved WP CLI support
* Improved Cloudflare compatibility (now using latest APIs), Cloudflare must be re-authorized
* Improved AWS API compatibility (now using latest APIs)
* Improved Rackspace Cloud Files compatibility (now using latest APIs)
* Improved page cache purge for extensions like cloudflare and other reverse proxy use cases
* Improved extension framework functionality
* Improved compatibility of headers like ETag and content encoding
* Improved template fragment caching
* Improved notifications, warnings and errors
* Improved moble user agents detection
* Improved security with nonces and form elements
* Improved security throughout the codebase
* Improved detail of debug messages
* Improved Amazon SNS security (validation)
* Improved minify's ability to match script tags without type attribute
= 0.9.4 =
* Fixed undefined w3tc_button_link
* Fixed support and other form submissions
* Fixed extension enabled key error
* Fixed Test CDN errors
* Fixed trailing slashes in custom wp content path and Minify
* Fixed WP_PLUGIN_DIR not being available when object-cache.php is loaded and W3TC constant not set
* Fixed Minify Auto and restructuring of JS code placement on page
* Fixed remove / replace drop in file on plugins page
* Fixed false positive check for legacy code
* Fixed deprecated wpdb escape
* Fixed Fragment Caching and APC anomalies
* Fixed cached configs causing 500 error on interrupted file writes
* Fixed readfile errors on servers with the functionality disabled
* Fixed false positives for license key verification
* Fixed debug information not printed on cached pages
* Fixed backwards compatibility and flushing and added doing it wrong notification
* Fixed "Prevent caching of objects after settings change"
* Fixed "Use late init" being shown as enabled with Disc:Enhanced
* Fixed missing param in APC cache method declaration
* Fixed user roles property not begin an array
* Fixed adding empty Vary header
* Fixed notice on failed upgrade licencing check
* Fixed Database Cache description text
* Fixed duplicate bb10 agents
* Fixed settings link in Minify Auto notification
* Fixed notice with undefined constant
* Fixed nginx configuration and Referrer, User Groups setting
* Fixed Genesis settings and Suhosin field name limit error
* Fixed Genesis and Fragment Caching (caching categories etc)
* Fixed CDN being enabled when creating NetDNA / MaxCDN pull zone
* Fixed NewRelic related notice in compatibility popup
* Fixed trailing slash issue in filename to url conversion
* Fixed issue with wp in subdirectory and relative minimal manual urls
* Fixed issue with widget styling
* Fixed issue with Purge All button action
* Fixed issue with exporting of settings
* Fixed issue with plugin interferring with preview theme
* Fixed issue with malformed config files
* Added caching of list of posts pages (tags, categories etc) to Genesis extension a long with flush it checkbox
* Added typecasting on expiration time in object cache drop-in
* Added capability check for save options
* Added FeedBurner extension
* Added woff support to Browser Cache
* Added new CloudFlare IPs
* Added support for WordPress defined charset and collate in CDN queue table creation
* Added WordPress SEO by Yoast extension
* Added *.less to CDN theme uploads and MIME
* Added default settings for MaxCDN Pull Zone creation
* Added call to change MaxCDN canonical header setting to match plugin setting
* Added one button default pull zone creation to MaxCDN without refresh
* Added MaxCDN authorization validation
* Added whitelist IPs notification for MaxCDN
* Added support for use of existing zones without refresh
* Added new mime types
* Added support for separate domains for frontend and admin backend
* Added CloudFlare as an extension
* Added nofollow to blogroll links
* Added DEV mode support to PRO version
* Added EDGE MODE functionality
* Improved wrapper functions in plugins.php for plugin / theme authors
* Improved reliability of NetDNA / MaxCDN API calls by using WP HTTP and not cURL
* Improved Fragment Caching debug information
* Improved preview mode, removed query string requirement
* Improved FAQ structure
* Improved empty minify/pgcache cache notification when using CDN
* Improved default settings for MaxCDN zone creation
* Improved CDN queue performance
* Improved blogmap url sanitation
* Improved MaxCDN automatic zone creation process
* Improved license key saving and Pro mode activation on Pro license purchases
* Updated EDGE MODE: Full site mirroring support for MaxCDN
* Updated translations
== Upgrade Notice ==
= 0.9.5.3 =
Thanks for using W3 Total Cache! This release includes compatibility fixes that have been reported. In addition, numerous other improvements are now yours!
= 0.9.5.2 =
Thanks for using W3 Total Cache! This release includes security fixes that have been reported. In addition, numerous other improvements are now yours!
= 0.9.5.1 =
Thanks for using W3 Total Cache! This release includes security fixes that have been reported. In addition, numerous other improvements are now yours!
= 0.9.5 =
Thanks for using W3 Total Cache! This release includes fixes for recent XSS security issues that have been reported. In addition, hundreds of other improvements are now yours!
= 0.9.4 =
Thanks for using W3 Total Cache! This release introduces hundreds of well-tested stability fixes since the last release as well as a new mode called "edge mode," which allows us to make releases more often containing new features that are still undergoing testing or active iteration.
= 0.9.2.11 =
Thanks for using W3 Total Cache! This release includes various fixes for MaxCDN and minify users. As always there are general stability / compatibility improvements. Make sure to test in a sandbox or staging environment and report any issues via the bug submission form available on the support tab of the plugin.
= 0.9.2.10 =
Thanks for using W3 Total Cache! This release includes performance improvements for every type of caching and numerous bug fixes and stability / compatbility improvements. Make sure to keep W3TC updated to ensure optimal reliability and security.
= 0.9.2.9 =
Thanks for using W3 Total Cache! This release addresses security issues for Cloudflare users as well as users that implement fragment caching via the mfunc functionality. For those using mfunc, temporarily disable page caching to allow yourself time to check the FAQ tab for new usage instructions; if you have a staging environment, that is the most convenient way to test prior to production roll out.
= 0.9.2.8 =
Thanks for using W3 Total Cache! The recent releases attempted to use WordPress' built in support for managing files and folders and clearly has not worked. Since W3TC is a caching plugin, file management is a critical issue that will cause lots of issues if it doesn't work perfectly. This release is hopefully the last attempt to restore file management back to the reliability of previous versions (0.9.2.4 etc). We realize that having *any* problems is not acceptable, but caching means changing server behavior, so while this plugin is still in pre-release we're trying to focus on learning.