readme.txt 69 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156
  1. === W3 Total Cache ===
  2. Contributors: boldgrid, fredericktownes, maxicusc, gidomanders, bwmarkle, harryjackson1221, joemoto, vmarko, jacobd91
  3. Tags: seo, cache, CDN, pagespeed, caching, performance, compression, optimize, cloudflare, nginx, apache, varnish, redis, aws, amazon web services, s3, cloudfront, azure
  4. Requires at least: 5.3
  5. Tested up to: 6.6
  6. Stable tag: 2.7.4
  7. License: GPLv2 or later
  8. License URI: http://www.gnu.org/licenses/gpl-2.0.html
  9. Search Engine (SEO) & Performance Optimization (WPO) via caching. Integrated caching: CDN, Page, Minify, Object, Fragment, Database support.
  10. == Description ==
  11. W3 Total Cache (W3TC) improves the SEO, Core Web Vitals and overall user experience of your site by increasing website performance and reducing load times by leveraging features like content delivery network (CDN) integration and the latest best practices.
  12. W3TC is the **only** web host agnostic Web Performance Optimization (WPO) framework for WordPress trusted by millions of publishers, web developers, and web hosts worldwide for more than a decade. It is the total performance solution for optimizing WordPress Websites.
  13. *BENEFITS*
  14. * Improvements in search engine result page rankings, especially for mobile-friendly websites and sites that use SSL
  15. * At least 10x improvement in overall site performance (Grade A in [WebPagetest](https://www.webpagetest.org/) or significant [Google PageSpeed](http://code.google.com/speed/page-speed/) improvements) **when fully configured**
  16. * 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
  17. * "Instant" repeat page views: browser caching
  18. * Optimized progressive render: pages start rendering quickly and can be interacted with more quickly
  19. * Reduced page load time: increased visitor time on site; visitors view more pages
  20. * Improved web server performance; sustain high traffic periods
  21. * Up to 80% bandwidth savings when you minify HTML, minify CSS and minify JS files.
  22. *KEY FEATURES*
  23. * Compatible with shared hosting, virtual private / dedicated servers and dedicated servers / clusters
  24. * Transparent content delivery network (CDN) management with Media Library, theme files and WordPress itself
  25. * Mobile support: respective caching of pages by referrer or groups of user agents including theme switching for groups of referrers or user agents
  26. * Accelerated Mobile Pages (AMP) support
  27. * Secure Socket Layer (SSL/TLS) support
  28. * Caching of (minified and compressed) pages and posts in memory or on disk or on (FSD) CDN (by user agent group)
  29. * Caching of (minified and compressed) CSS and JavaScript in memory, on disk or on CDN
  30. * Caching of feeds (site, categories, tags, comments, search results) in memory or on disk or on CDN
  31. * Caching of search results pages (i.e. URIs with query string variables) in memory or on disk
  32. * Caching of database objects in memory or on disk
  33. * Caching of objects in memory or on disk
  34. * Caching of fragments in memory or on disk
  35. * Caching methods include local Disk, Redis, Memcached, APC, APCu, eAccelerator, XCache, and WinCache
  36. * Minify CSS, Minify JavaScript and Minify HTML with granular control
  37. * Minification of posts and pages and RSS feeds
  38. * Minification of inline, embedded or 3rd party JavaScript with automated updates to assets
  39. * Minification of inline, embedded or 3rd party CSS with automated updates to assets
  40. * Defer non critical CSS and Javascript for rendering pages faster than ever before
  41. * Defer offscreen images using Lazy Load to improve the user experience
  42. * Browser caching using cache-control, future expire headers and entity tags (ETag) with "cache-busting"
  43. * JavaScript grouping by template (home page, post page etc) with embed location control
  44. * Non-blocking JavaScript embedding
  45. * Import post attachments directly into the Media Library (and CDN)
  46. * Leverage our multiple CDN integrations to optimize images
  47. * WP-CLI support for cache purging, query string updating and more
  48. * Various security features to help ensure website safety
  49. * Caching statistics for performance insights of any enabled feature
  50. * Extension framework for customization or extensibility for Cloudflare, WPML and much more
  51. * Reverse proxy integration via Nginx or Varnish
  52. * WebP Converter extension provides WebP image format conversion from common image formats (on upload and on demand)
  53. *PAGESPEED SCORE IMPROVEMENTS*
  54. To help you understand the impact of individual features on your website's performance, we've tested each feature separately to see its effect on Google PageSpeed scores. While optimal results come from configuring several different caching tools together, the following individual features also show significant improvements on their own:
  55. <font size="5">**[Remove Unused CSS/JS](https://www.boldgrid.com/support/w3-total-cache/pagespeed-tests/remove-scripts/)**</font>
  56. This feature removes CSS and JavaScript files that are not needed for the current page, reducing the load time.
  57. * Added over 27 points to the Google PageSpeed score (Before: 57.2 / After: 86.7)
  58. * Reduced the Potential Savings From Unused JavaScript from 127.5 KiB to 84 KiB
  59. <font size="5">**[Full Site Delivery](https://www.boldgrid.com/support/w3-total-cache/pagespeed-tests/fsd-full-site-delivery/)**</font>
  60. Full Site Delivery optimizes the delivery of your entire site, enhancing the server response time.
  61. * Added a 99% performance enhancement to the Average Server Response Time (Before: 3413 ms / After: 34 ms)
  62. <font size="5">**[Eliminate Render Blocking CSS](https://www.boldgrid.com/support/w3-total-cache/pagespeed-tests/eliminate-render-blocking-css/)**</font>
  63. This feature eliminates CSS that blocks the rendering of your page, speeding up the initial load time.
  64. * Added over 17 points to the Google PageSpeed score (Before: 53.75 / After: 71)
  65. * Reduced the Potential Savings From Render-Blocking Resources by over 94% (Before: 2432.5 ms / After: 125 ms)
  66. * Improved the Largest Contentful Paint time by over 56% (Before: 7s / After: 3.04s)
  67. <font size="5">**[Delay Scripts](https://www.boldgrid.com/support/w3-total-cache/pagespeed-tests/delay-scripts-test/)**</font>
  68. Delay Scripts postpones the loading of certain scripts until they are needed, reducing initial load times.
  69. * Added 14 points to the Google PageSpeed Performance score (Before: 54.25 / After: 68.5)
  70. * Reduced the Time Third-Party Code Blocked The Main Thread For by 62% (Before: 825 ms / After: 197.5 ms)
  71. <font size="5">**[Rest API Caching](https://www.boldgrid.com/support/w3-total-cache/pagespeed-tests/rest-api-testing/)**</font>
  72. This feature caches API responses, reducing server load and speeding up API interactions.
  73. * Reduced the Average Server Load by 40% (Before: 0.62 / After: 0.37)
  74. * Sped up API Responses by 84.5% (Before: 968ms / After: 150ms)
  75. * Reduced the Average Server Load by 24% under during a major traffic spike (Before: 34.55 / After: 26.19)
  76. <font size="5">**[WebP Images](https://www.boldgrid.com/support/w3-total-cache/pagespeed-tests/webp/)**</font>
  77. Converts images to the WebP format, which is more efficient and faster to load.
  78. * Added over 9 points to the Google PageSpeed score (Before: 84.67 / After: 93.83)
  79. <font size="5">**[Lazy Load Google Maps](https://www.boldgrid.com/support/w3-total-cache/pagespeed-tests/lazy-load-maps/)**</font>
  80. Delays the loading of Google Maps until the user interacts with them, reducing initial load time.
  81. * Added 10 points to the Google PageSpeed score (Before: 66 / After: 76)
  82. * Reduced the Total Blocking Time Performance score by 72% (Before: 287.5 ms / After: 80 ms)
  83. Speed up your site tremendously, improve core web vitals and the overall user experience for your visitors without having to change your WordPress host, theme, plugins or your content production workflow.
  84. == Frequently Asked Questions ==
  85. = Why does speed matter? =
  86. 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.
  87. Speed is among the most significant success factors web sites face. In fact, your site's speed directly affects your income (revenue) &mdash; it's a fact. Some high traffic sites conducted research and uncovered the following:
  88. * Google.com: **+500 ms** (speed decrease) -> **-20% traffic loss** [[1](http://home.blarg.net/~glinden/StanfordDataMining.2006-11-29.ppt)]
  89. * 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)]
  90. * Amazon.com: **+100 ms** (speed decrease) -> **-1% sales loss** [[1](http://home.blarg.net/~glinden/StanfordDataMining.2006-11-29.ppt)]
  91. 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. W3 Total Cache is your solution for faster websites, happier visitors and better results.
  92. Many of the other consequences of poor performance were discovered more than a decade ago:
  93. * Lower perceived credibility (Fogg et al. 2001)
  94. * Lower perceived quality (Bouch, Kuchinsky, and Bhatti 2000)
  95. * Increased user frustration (Ceaparu et al. 2004)
  96. * Increased blood pressure (Scheirer et al. 2002)
  97. * Reduced flow rates (Novak, Hoffman, and Yung 200)
  98. * Reduced conversion rates (Akamai 2007)
  99. * Increased exit rates (Nielsen 2000)
  100. * Are perceived as less interesting (Ramsay, Barbesi, and Preece 1998)
  101. * Are perceived as less attractive (Skadberg and Kimmel 2004)
  102. 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.
  103. = Why is W3 Total Cache better than other caching solutions? =
  104. **It's a complete framework.** Most cache plugins available do a great job at achieving a couple of performance gains. Total Cache is different because it remedies numerous performance reducing aspects of any web site. It goes farther than the basics, beyond merely reducing CPU usage (load) or bandwidth consumption for HTML pages. 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.
  105. = I've never heard of any of this stuff; my site is fine, no one complains about the speed. Why should I install this? =
  106. 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.
  107. 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.
  108. = Which WordPress versions are supported? =
  109. To use all features in the suite, a minimum of version WordPress 5.3 with PHP 7.2.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.
  110. = Why doesn't minify work for me? =
  111. 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.
  112. 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.
  113. 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.
  114. = What about comments? Does the plugin slow down the rate at which comments appear? =
  115. 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.
  116. = Will the plugin interfere with other plugins or widgets? =
  117. No, on the contrary if you use the minify settings you will improve their performance by several times.
  118. = Does this plugin work with WordPress in network mode? =
  119. Indeed it does.
  120. = Does this plugin work with BuddyPress (bbPress)? =
  121. Yes.
  122. = Will this plugin speed up WP Admin? =
  123. 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.
  124. = Which web servers do you support? =
  125. 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/).
  126. = Is this plugin server cluster and load balancer friendly? =
  127. Yes, built from the ground up with scale and current hosting paradigms in mind.
  128. = What is the purpose of the "Media Library Import" tool and how do I use it? =
  129. 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.
  130. 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.
  131. You should backup your database before performing this operation.
  132. = How do I find the JS and CSS to optimize (minify) them with this plugin? =
  133. 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.
  134. = I don't understand what a CDN has to do with caching, that's completely different, no? =
  135. 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. Use Total Cache to accelerate your site by putting your content closer to your users with our many CDN integrations including Cloudflare, StackPath, AWS and more.
  136. = How do I use an Origin Pull (Mirror) CDN? =
  137. 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.
  138. 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.
  139. = How do I configure Amazon Simple Storage Service (Amazon S3) or Amazon CloudFront as my CDN? =
  140. 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.
  141. 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.
  142. 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.
  143. 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.
  144. 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.
  145. = How do I configure Rackspace Cloud Files as my CDN? =
  146. 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.
  147. 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.
  148. 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.
  149. = What is the purpose of the "modify attachment URLs" button? =
  150. 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.
  151. As always, it never hurts to back up your database first.
  152. = Is this plugin comptatible with TDO Mini Forms? =
  153. 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.
  154. = Is this plugin comptatible with GD Star Rating? =
  155. Yes. Follow these steps:
  156. 1. Enable dynamic loading of ratings by checking GD Star Rating -> Settings -> Features "Cache support option"
  157. 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
  158. 1. Empty all caches
  159. = I see garbage characters instead of the normal web site, what's going on here? =
  160. 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.
  161. = How do I cache only the home page? =
  162. Add `/.+` to page cache "Never cache the following pages" option on the page cache settings tab.
  163. = I'm getting blank pages or 500 error codes when trying to upgrade on WordPress in network mode =
  164. 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.
  165. = A notification about file owner appears along with an FTP form, how can I resolve this? =
  166. 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.
  167. Typically, you should tell your web host about the permission issue and they should be able to resolve it.
  168. You can however try adding <em>define('FS_METHOD', 'direct');</em> to wp-config.php to circumvent the file and folder checks.
  169. = Does the WebP Converter extension use a lot of resources to convert images to WebP? =
  170. No. The WebP Converter extension converts common image file formats to the modern WebP format using our API services. The conversions occur on our API service, so that resource usage does not impact your website server.
  171. = Is image data retained by the Total Cache WebP Converter API? =
  172. Image data received by our API is destroyed after a converted image is generated. The converted iamges are destroyed once picked-up/downloaded to your website by the Total Cache plugin.
  173. = This is too good to be true, how can I test the results? =
  174. You will be able to see the results instantly on each page load, but for tangible metrics, you should consider using the following tools:
  175. * [Google PageSpeed](https://developers.google.com/speed/pagespeed/)
  176. * [Google Search Console Core Web Vitals Report](https://search.google.com/search-console/core-web-vitals/)
  177. * [WebPagetest](https://www.webpagetest.org/test)
  178. * [Pingdom](https://tools.pingdom.com/)
  179. * [GTmetrix](https://gtmetrix.com/)
  180. = I don't have time to deal with this, but I know I need it. Will you help me? =
  181. 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."
  182. Install the plugin to read the full FAQ on the plugins FAQ tab.
  183. == Installation ==
  184. 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.
  185. 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.
  186. 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/`.
  187. 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.
  188. 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.
  189. 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.
  190. 1. *Recommended:* On the "Browser Cache" tab, HTTP compression is enabled by default. Make sure to enable other options to suit your goals.
  191. 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.
  192. 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.
  193. 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.
  194. 1. *Optional:* On the "User Agent Groups" tab, specify any user agents, like mobile phones if a mobile theme is used.
  195. == What users have to say: ==
  196. * Read [testimonials](https://twitter.com/w3edge/favorites) from W3TC users.
  197. == Who do I thank for all of this? ==
  198. 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:
  199. * [Steve Souders](http://stevesouders.com/)
  200. * [Steve Clay](http://mrclay.org/)
  201. * [Ryan Grove](http://wonko.com/)
  202. * [Nicholas Zakas](http://www.nczonline.net/blog/2009/06/23/loading-javascript-without-blocking/)
  203. * [Ryan Dean](http://rtdean.livejournal.com/)
  204. * [Andrei Zmievski](http://gravitonic.com/)
  205. * George Schlossnagle
  206. * Daniel Cowgill
  207. * [Rasmus Lerdorf](http://toys.lerdorf.com/)
  208. * [Gopal Vijayaraghavan](http://notmysock.org/)
  209. * [Bart Vanbraban](http://eaccelerator.net/)
  210. * [mOo](http://xcache.lighttpd.net/)
  211. Please reach out to all of these people and support their projects if you're so inclined.
  212. == Changelog ==
  213. = 2.7.4 =
  214. * Fix: WP-CLI get option output for array type
  215. * Fix: Remove CSS/JS URL matching
  216. * Fix: Nginx rules for feature and permission policies
  217. * Fix: Redis connect port for unix sockets error
  218. * Update: Newsletter in footer is now a link to a working form
  219. * Update: Added JSON type for WP-CLI get/set option
  220. * Update: Added config export for WP-CLI
  221. * Update: Added content matching option for Remove CSS/JS individual entries
  222. * Update: Updated Google PageSpeed score block appearance for cleaner UI
  223. * Update: Added Google PageSpeed score block for PageCache Lazy Loading Google Maps setting
  224. * Update: Added Google PageSpeed score block for Minify Eliminate Render Blocking CSS option
  225. = 2.7.3 =
  226. * Fix: Page Cache: File Cleaner now uses the correct expiration setting
  227. * Fix: PHP 8.1 warnings for Redis connect
  228. * Fix: Google ChartJS error
  229. * Update: Bumped PHP minimum version to 7.2.5; added support for up to PHP 8.3
  230. * Update: AWS SDK PHP dependency updated to 3.314.2
  231. * Update: Microsoft Azure Storage SDK PHP dependency updated to 1.5.4 (blob) and 1.5.2 (common)
  232. * Update: Several other PHP and NodeJS dependencies updated
  233. * Update: Made improvements to the Remove CSS/JS feature
  234. * Update: Removed the newsletter signup popup and added it in the footer
  235. * Update: Added use-case proof and links to settings pages
  236. * Update: Changed CDN default to none and updated the StackPath EOL notice
  237. = 2.7.2 =
  238. * Fix: Page Cache cleanup purging all if browsercache.html.lifetime > W3TC_CACHE_FILE_EXPIRE_MAX
  239. * Fix: Page Cache primer: Ignore sitemap XML comments
  240. * Fix: Page Cache primer: Preload cache for custom post types
  241. * Fix: Page Cache primer: Add an option to prime cache after updating a post/page/CPT
  242. * Fix: Redis test logic
  243. * Fix: Cloudflare extension: Setting values via API
  244. * Fix: Amazon SNS message validation
  245. * Fix: Handle XML setting being saved properly
  246. * Update: Add more options to the Remove CSS/JS feature
  247. * Update: Add an option for Amazon CloudFront default region in distribution hostname
  248. * Update: Add information about feature impact on PageSpeed
  249. * Update: Reworked the Page Cache Preload settings UI
  250. = 2.7.1 =
  251. * Fix: Page Cache: Prefer Brotli over Gzip
  252. * Fix: Page Cache: Purge sitemaps on post creation/edit/trash/delete
  253. * Fix: Page Cache: Processed content filter
  254. * Fix: Minify URL to filename filter mapping
  255. * Update: Added Bunny CDN partner information
  256. * Update: Added filters for Apache rules and Page Cache postfix
  257. = 2.7.0 =
  258. * Feature: Performance Dashboard update
  259. * Feature: Remove unused CSS/JS
  260. * Fix: Nginx feature and permission policy header syntax
  261. * Fix: Memcache install check
  262. * Fix: CloudFront purge button
  263. * Fix: Uncaught type error on the install page
  264. * Fix: Page mapping data
  265. * Fix: Add missing id for a save settings button
  266. * Fix: Extension counts
  267. * Fix: PHP 8.2 deprecation warnings for dynamic class property assignments
  268. * Fix: Do not autoload WP option for PageSpeed data
  269. * Fix: Cache groups: Fix spacing in values for htaccess syntax
  270. * Fix: Refactor Minify cache key mapping to have shorter keys and separate storage
  271. * Fix: Minify statistics output and PHP warnings
  272. * Fix: Feature Showcase: New feature version numbers
  273. * Fix: Lazy Loading URL pattern match
  274. * Update: Upgrade modal/popup
  275. * Update: Added "Learn more" links
  276. = 2.6.1 =
  277. * Fix: WebP Converter extension activation
  278. * Fix: Media Library upload may fail when using Bunny CDN
  279. * Fix: Cloudflare API error when updating certain settings
  280. * Fix: Lazy Loading issue with the Delay Scripts feature enabled
  281. * Update: Allow custom hostname changes for Bunny CDN
  282. = 2.6.0 =
  283. * Feature: Added support for Bunny.Net CDN
  284. * Feature: Preload requests (Pro)
  285. * Fix: Error when changing CDN cookie domain setting
  286. * Fix: Admin notice when flushing cache from the admin bar
  287. * Fix: Error in some Minify cache file operations
  288. * Fix: PHP 8 compatibility
  289. * Update: Delay scripts UI changes
  290. = 2.5.0 =
  291. * Feature: Added Delay Scripts (Pro)
  292. * Fix: Several PHP 8 warnings
  293. * Fix: Fragment Cache extension PHP warnings when no engine was selected
  294. * Fix: Fragment Cache engine selection disabled for pro license under certain conditions
  295. * Fix: Added Database Cluster compatibility for older db.php files
  296. * Fix: Fixed one PageSpeed tool metric not outputting data and adjusted a few labels
  297. * Fix: Multiple anchor links for PageSpeed block on General Settings page
  298. * Fix: Cache Groups validation on save
  299. * Fix: Cache Groups delete button not working for added groups
  300. * Update: Renamed Image Service feature to WebP Converter
  301. * Update: Added WebP Converter block to General Settings page along with link to navigation bar
  302. * Update: StackPath CDN prices (Service ending November 22, 2023 and will be replaced by Bunny CDN in future update)
  303. = 2.4.1 =
  304. * Fix: Add a fallback for the older version of wp-content/db.php
  305. = 2.4.0 =
  306. * Feature: Added filter "w3tc_config_item_objectcache.enabled" to allow for disabling W3TC object cache
  307. * Fix: Auto-apply W3TC Pro license after purchase via in-plugin purchase/upgrade buttons
  308. * Fix: PHP 8 warnings for Page and Fragment caches
  309. * Fix: Replaced delete_blog deprecated hook with wp_uninitialize_site and wp_update_site
  310. * Fix: Database Cluster configuration file save issue
  311. * Fix: Fragment cache will now be disabled for non-pro users instead of being only disabled on the front-end
  312. * Fix: Premium services widget list is now synced with the support page
  313. * Update: User interface updated for cleaner appearance and easier navigation and control
  314. * Update: Added support for get/set/add/delete wp_xxx_multiple methods to Object cache
  315. = 2.3.3 =
  316. * Fix: Fragment Cache: Fatal error when displaying registered groups
  317. * Fix: PHP 8 deprecation warnings in the SNS Message Bus and NuSOAP libraries
  318. * Fix: Broken nonce for renewal form
  319. * Fix: Page Cache: Moved hardcoded query string exemptions to the settings page
  320. * Update: Redis and Memcached host/IP/domain configuration examples
  321. = 2.3.2 =
  322. * Fix: Correct interpolation of a symlinked cache directory
  323. * Fix: Memcached test using SASL authentication
  324. * Fix: Multi-site authorization request returning to incorrect URL
  325. = 2.3.1 =
  326. * Fix: PHP 8 compatibility: Invalid return type if Browser Cache is disabled
  327. * Fix: Added AWS SNS message classes (aws/aws-php-sns-message-validator)
  328. * Fix: PageSpeed service: messages and escaping
  329. * Fix: Image Service meta query handling
  330. * Update: Dependency version updates
  331. * Update: Content-Security-Policy (CSP) and Content-Security-Policy-Report-Only (CSPRO) header field configuration
  332. = 2.3.0 =
  333. * Feature: PageSpeed Insights reports and performance page widget
  334. * Feature: Added basic OpenLiteSpeed support
  335. * Feature: Add Permissions-Policy to mirror Feature-Policy directives
  336. * Fix: PHP 8.2 compatibility
  337. * Fix: GuzzleHttp 7 conflict with Azure
  338. * Fix: Allow object cache updates when using WP-CLI
  339. * Fix: Added missing Page Cache configuration "host" value
  340. * Fix: Missing on_comment_status action callback
  341. * Fix: Flush cache on attachment update
  342. * Fix: Varnish flush for posts
  343. * Update: Improved comment status logic for flushing database and object caches
  344. * Update: Adjusted FTP form style
  345. * Update: Removed deprecated MaxCDN and NetDNA components and added a notice if one was used
  346. * Update: Removed deprecated FeedBurner
  347. = 2.2.12 =
  348. * Fix: Comment status change error
  349. * Fix: Varnish flush post arguments
  350. = 2.2.11 =
  351. * Fix: Error when flushing page cache after an attachment update
  352. = 2.2.10 =
  353. * Fix: Optimized and fixed object cache flushing
  354. * Fix: Scheduled post page cache flushing
  355. * Fix: Admin bar flush cache for current page with disabled purge policy
  356. * Fix: Loop when disabling Minify HTTP/2 push setting
  357. * Fix: Extension admin notice missing links
  358. * Update: Removed custom translation files
  359. = 2.2.9 =
  360. * Fix: Reset our textdomain for translations
  361. = 2.2.8 =
  362. * Fix: Escape output in compatibility checker, minify, and New Relic pages
  363. * Fix: Admin notice buttons on non-plugin pages
  364. * Fix: Namespace on exception type in a minify class
  365. * Fix: Translation issues due to hooks and typos
  366. * Fix: Broken JavaScript in admin_print_scripts calls when language is not English
  367. * Fix: Deprecated warnings in JS and CSS minify
  368. * Update: Translation files
  369. = 2.2.7 =
  370. * Fix: Updated database cache connection class to avoid deprecated warnings in WordPress 6.1
  371. * Fix: Redis: Fixed handling of retry interval and timeout options for usage statistics
  372. * Enhancement: Redis: Added TLS/SSL certificate verification option
  373. * Enhancement: Page cache: Added query string exemptions
  374. = 2.2.6 =
  375. * Fix: Error clearing all cache when using CloudFront full CDN in Pro
  376. = 2.2.5 =
  377. * Fix: Revert WooCommerce Variation Image Gallery plugin CDN filter
  378. * Fix: DB cache syntax error in PHP 5.6
  379. * Fix: Added missing space to S3 CDN bucket label
  380. * Fix: JS error for CloudFront CDN related check on non-W3TC pages
  381. * Fix: Page cache unpack warning for empty/malformed files
  382. * Enhancement: Image Service pre_get_posts anonymous action now hooked (w3tc_modify_query_obj)
  383. * Enhancement: Image Service ajax_query_attachments_args anonymous action now hooked (w3tc_filter_ajax_args)
  384. = 2.2.4 =
  385. * Fix: Extensions URL in settings
  386. * Fix: Redis undefined array key warnings
  387. * Fix: Redis connect issue based on phpredis version
  388. * Fix: Sanitization of licensing messages
  389. * Fix: DB cache error in Ajax
  390. * Fix: Call to undefined function in DB cache query class
  391. * Fix: PHP 8 compatibility: join
  392. * Fix: WooCommerce Variation Image Gallery plugin CDN filter
  393. * Enhancement: Add setting for AWS S3 public objects in ACL
  394. * Enhancement: Check if post is empty before cache flush
  395. * Enhancement: Add max lifetime setting for non-disk page cache
  396. * Enhancement: Add notice when selecting CDN using CloudFront
  397. * Update: CSS Tidy 1.7.3 => 2.0.1
  398. * Update: Add sns-message-validator
  399. * Security: Ensure cache writes in cache folders
  400. = 2.2.3 =
  401. * Fix: Redis Cache: Removed exception on warnings
  402. * Fix: Compatibility check for WP_CACHE
  403. * Fix: Flush all cache cache except Cloudflare button
  404. * Fix: License terms update notice escaping
  405. * Fix: Feature Showcase: Image Service activate button
  406. * Security: Updated guzzlehttp/guzzle to 6.5.8
  407. = 2.2.2 =
  408. * Security: PHPCS and WPCS updates
  409. * Security: Updated guzzlehttp/guzzle to 6.5.6
  410. * Security: Updated guzzlehttp/psr7 to 1.8.5
  411. * Fix: Cloudflare flush all cache
  412. * Fix: Access log test
  413. * Fix: Better handling for PHP 5.6
  414. * Fix: Convert Redis warnings to exceptions
  415. * Fix: WordPress 5.5 image lazy loading
  416. * Fix: Infinite loop when using database cluster configuration
  417. * Fix: Database cluster logic
  418. * Fix: FTP credentials form
  419. * Fix: Preview deploy button
  420. * Fix: Image Service links in multisite network admin
  421. * Fix: Enable Image Service settings changes in multisite blog/sub sites
  422. * Enhancement: Updated Cloudflare settings to allow a global API key or token
  423. * Enhancement: Added Cloudflare CDN public objects option to settings
  424. * Enhancement: Added timeout settings for Redis
  425. * Enhancement: Added TLS/SSL certificate verification option for Redis
  426. * Enhancement: Added Image Service visibility option
  427. * Enhancement: Updated Image Service limit notification
  428. * Enhancement: Better handling of trailing slash URLs
  429. * Update: Adjusted lightbox for accessibility
  430. * Update: Removed deprecated opcache flush
  431. = 2.2.1 =
  432. * Fix: Cloudflare: Removed use of the retired ip_lkup V1 endpoint
  433. * Fix: Prevent error in some environments using non-direct filesystems
  434. * Fix: Added better checking for some filesystem actions
  435. * Fix: AWS CloudFront: Reverted async change for cache invalidation to honor promises
  436. * Enhancement: Added option to exclude minified JS files from being processed by Rocket Loader
  437. * Enhancement: Improved handling of Image Service rate-limiting and error messages
  438. = 2.2.0 =
  439. * Feature: Image Service extension: WebP conversion options
  440. = 2.1.9 =
  441. * Fix: Cloudflare Dashboard Widget: Updated to use GraphQL
  442. * Fix: Cloudflare Dashboard Widget: Use WordPress timezone
  443. * Fix: CDN: Execute purge only if hosting is enabled, to prevent unneeded delays
  444. * Fix: Published/modified custom posts not clearing the archive cache(s)
  445. * Fix: Native WordPress sitemap caching
  446. * Fix: Extra MIME groups other than controlled by settings were added to rules
  447. * Fix: Usage Statistics: Not functioning when object cache is set to Redis
  448. * Fix: AMP Extension: Prevent popup admin bar for endpoints
  449. * Fix: Setup Guide Wizard: CSS for long translations
  450. * Fix: Opcache Settings: Validate timestamp indicator checkbox
  451. * Update: Remove robots.txt cache toggle setting
  452. * Enhancement: Impove 404 detection
  453. * Enhancement: Improved compatibility check indicators
  454. * Enhancement: AWS CloudFront: Faster cache invalidation using async
  455. = 2.1.8 =
  456. * Fix: Corrected handling of robots.txt (file and filter)
  457. = 2.1.7 =
  458. * Fix: Corrected relative paths used in the JS minify YUI Compressor
  459. * Fix: Disallow crawling of cache directory
  460. * Fix: Responsive display for the dashboard
  461. * Enhancement: Added lazy load threshold setting
  462. * Enhancement: Added feature policy security headers to settings
  463. = 2.1.6 =
  464. * Fix: JS minify issue with template literal backticks
  465. * Fix: Do not redirect when using WP-CLI
  466. * Fix: Missing whitespace in Memcached Nginx configuration
  467. * Fix: Setting for CDN over passive FTP
  468. * Fix: Updated CDN Minify regex
  469. * Fix: Added missing text domains and fixed translations
  470. * Enhancement: Allow default AWS credentials provider
  471. * Enhancement: Added error logging when minification base URL is not found
  472. = 2.1.5 =
  473. * Fix: Sanitize extension argument
  474. = 2.1.4 =
  475. * Fix: Use Memcached server from config for Nginx rules instead of localhost
  476. * Fix: Allow more characters in CDN hostname sanitization
  477. * Fix: Added missing textdomains for Browser Cache settings
  478. * Fix: Avoid a possible PHP warning in LazyLoad mutator
  479. * Enhancement: Added a filter w3tc_cdn_cf_flush_all_uris for CloudFront purging
  480. = 2.1.3 =
  481. * Fix: Authenticated Persistent XSS & XFS in CDN admin page
  482. * Update: AWS library version 3.183.0
  483. * Update: Minify: Include theme template files using page_* filenames
  484. = 2.1.2 =
  485. * Fix: Skip removing spaces around "<li>" tags in HTML Minify
  486. * Fix: Updated admin URL logic for multisite installations
  487. * Fix: TransparentCDN purge URL validation
  488. * Fix: Added an option to use ABSPATH as the document root for Minify
  489. * Fix: Database cache debug message
  490. * Update: Added regions for AWS S3 (af-south-1, cn-north-1, cn-northwest-1, eu-south-1)
  491. * Update: Added MIME types AVIF and AVIFS for Browser Cache rules
  492. * Update: Enhanced "get_pagenum_link" filter
  493. * Update: Removed "comment" from the non-persistent object cache group
  494. = 2.1.1 =
  495. * Fix: Move Minify library to a namespace to avoid conflicts with other plugins
  496. * Fix: Check for AWS before loading functions
  497. * Fix: Update Minify ClosureCompiler base URL; use HTTPS
  498. * Fix: Corrected getting the network siteurl
  499. * Fix: Prevent PHP warning in CurlFactory
  500. * Update: Added information links to general minify options
  501. * Update: Added video/ogg support for browser caching
  502. = 2.1.0 =
  503. * Feature: Added a Feature Showcase to highlight new and existing features
  504. * Update: Consolidated cache groups settings pages
  505. * Update: Replaced deprecated jQuery method for WordPress 5.6
  506. * Fix: PHP warnings for sprintf placeholders in PHP 8
  507. * Fix: PHP deprecated warnings in PHP 8
  508. * Fix: Browser Cache Quick Reference Chart link
  509. * Fix: Bad nonce in help
  510. * Fix: Google Drive CDN JavaScript
  511. = 2.0.1 =
  512. * Fix: Corrected redirection logic for the new Setup Guide
  513. * Fix: Fixed JavaScript w3tc_ga error
  514. = 2.0.0 =
  515. * Feature: Added the Setup Guide wizard for onboarding
  516. * Update: Updated jQuery compatibility and methods deprecated in WordPress 5.6
  517. * Fix: Browser Cache: Fixed ExpiresByType code; changed from modified time to client access time
  518. = 0.15.2 =
  519. * Fix: Minify: Do not remove quotes around meta tags
  520. * Fix: Minify: Removal of spaces in calc function was breaking CSS
  521. * Fix: Browser Cache: Query string was not added to prevent caching after setting changes
  522. * Fix: Avoid warning when sending an empty URL for purging
  523. * Update: Added a filter for minified JavaScript content
  524. * Update: Minify: Added options for minify only got both JS and CSS in auto mode
  525. = 0.15.1 =
  526. * Fix: Fixed Memcached flush logic
  527. * Fix: Remove disk enhanced rewrites when disabling page cache
  528. * Fix: Better handle conflicts on activation
  529. = 0.15.0 =
  530. * Feature: Added TransparentCDN full-site delivery option
  531. * Fix: Update settings on activation in a changed environment
  532. * Fix: Fixed a compatibility check for Apache when PHP is running as CGI
  533. * Fix: Always set HSTS headers in Apache; not only for 2xx HTTP codes
  534. * Fix: Implemented anatomic incrementing of key version in Memcache(d)
  535. * Update: Allow filtering of w3tc_minify_url_for_files Minify URL for files
  536. = 0.14.4 =
  537. * Fix: Cleanup widget and postbox display for WordPress 5.5
  538. * Fix: Update to PageSpeed API v5, show webvitals metrics
  539. * Fix: Console error when adminbar is hidden and PageSpeed module is active
  540. * Fix: Stats view JS issue
  541. * Fix: Deprecated jQuery warnings
  542. * Fix: Require files for request_filesystem_credentials() call
  543. * Added option to disable jquery-migrate on the front-end. Fixed #172 master (#240)
  544. = 0.14.3 =
  545. * Fix: Take "Accepted Query Strings" into account when "Cache query strings" enabled
  546. * Fixed typo in variable for lazy loading
  547. * Update: Add lazy load Google Maps reference to the general settings page
  548. * Update: Support background-image: together with background: for lazy loading
  549. = 0.14.2 =
  550. * Fixed WP-CLI redirect issue in multisite
  551. * Fix: Avoid PREG_JIT_STACKLIMIT_ERROR in minify
  552. * Fix: Prevent empty needle PHP warning
  553. * Update: Allow to specify URIs with a query string in Additional Pages
  554. = 0.14.1 =
  555. * Fixed CSS minify URL rewrite logic that affected some lazy loading and CSS URL addresses using protocols
  556. = 0.14.0 =
  557. * Added lazy loading for Google Maps
  558. * Added a filter w3tc_minify_css_content for minified contents
  559. * Fixed a minify regex issue in non-Unicode websites
  560. * Fixed a PHP notice in WPMU: accessing array offset on null
  561. * Fixed a minify issue where embedded CSS URL fragments were converted incorrectly
  562. * i18n improvement
  563. * Changed default to disabled for wp-admin requests in the object cache
  564. = 0.13.3 =
  565. * Fixed HTML minification of img elements containing embedded SVG strings
  566. * Removed an identifying value for GDPR
  567. = 0.13.2 =
  568. * Fix: Dont store content of HEAD requests
  569. * Updated informational URL on page cache static page comments
  570. = 0.13.1 =
  571. * Fixed php warnings in PgCache_ContentGrabber.php
  572. = 0.13.0 =
  573. * Added new Pro feature, Debug - Purge Stack Trace
  574. * Added "Feature Policy" security header
  575. * Removed deprecated get_magic_quotes_gpc()
  576. * Improved AMP Extension by ignoring value of amp querystring marker in request if passed without value in config
  577. * Improved lazyload by not processing elements with skip-lazy class or data-skip-lazy attribute
  578. * Fixed caching of query-string normalization redirects, no longer cached when cache key is normalized by accept querystring arguments, caused redirect loop
  579. = 0.12.0 =
  580. * Added querystring based URL structures for AMP pages
  581. * Added filter of minify options
  582. * Added lazyload picture tag support
  583. * Removed footer link "Support Us" option
  584. * Improved wp_die handling
  585. * Improved lazyload handling of content in script tags
  586. * Improved lazyload handling of feeds
  587. * Improved printing tags coming from feeds
  588. * Improved handling of modified posts before wp_rewrite initialized
  589. * Nginx rules changed a lot to avoid "location" block conflicts. That change may cause problems on some systems using non-default WordPress rules - keep a backup of your original rules
  590. * Improved handling of .htaccess files in regard to EOF
  591. * Fixed Varnish purging
  592. * Fixed html minification of data tags equaling 0
  593. = 0.11.0 =
  594. * Added recommendation for BoldGrid's Total Upkeep plugin
  595. * Added new lazy loading feature
  596. * Removed New Relic extension by default for new installations
  597. * Updated usage of html minification and quote removal
  598. * Improved memcached config and added optional binary protocol setting
  599. * Improved process of renewing expired licenses
  600. * Improved page cache purging
  601. * Improved FAQ link by opening in new window
  602. * Improved detection of detect_post_id
  603. * Improved REST caching in relation to cache headers like X-WP-*
  604. * Improved Vary User-Agent header usage
  605. * Improved various features with AMP pages and HTTP2
  606. * Improved redis connection string to allow for tls://host:port format
  607. * Fixed file headers for CloudFront S3 CDN
  608. * Fixed fatal error on with flush / SNS
  609. * Fixed comments with URLs within minify debug mode
  610. * Fixed ObjectCache statistics within footer
  611. * Fixed temporary hotfix with wp_die and regular output
  612. * Fixed fragment cache header link
  613. * Fixed flushing of /feed and /feed/ cache
  614. * Fixed js error in widget
  615. * Fixed fatal cache flush error caused by empty $wp_rewrite
  616. * Fixed path for file_generic REST caching on non-default port
  617. * Fixed test minify button with Closure Compiler engine
  618. = 0.10.2 =
  619. * Fixed compatibility with wpdb::prepare in WordPress 5.3
  620. = 0.10.1 =
  621. * Fixed slowdown in memcached engine
  622. * Fixed Purge Cache menu links so they flush current blog in WPMU
  623. * Fixed error during upgrade, "Call to undefined method W3TC\Util_Content::is_database_error"
  624. * Updated Redis cache engine to avoid "Function Redis::delete() is deprecated" warning
  625. = 0.10.0 =
  626. * Improved Statistics component for pro users
  627. * Improved support for CloudFront distributions with multiple origins
  628. * Improved redirects by using safter wp_safe redirect
  629. * Improved .htaccess usage when pagecache does not require it
  630. * Improved protection of unexpected values in global variables
  631. * Added more Amazon S3 regions
  632. * Added support for memcached binary protocol when available
  633. * Added caching for WebP MIME type
  634. * Updated S3 bucket creation by settings CORS policy
  635. * Updated blogmap to allow urls with custom ports
  636. * Fixed usage of base url with minify
  637. * Fixed mixing content of sync & async scripts with minify
  638. * Fixed S3 + CloudFront urls when CNAMEs not used
  639. = 0.9.7.5 =
  640. * Updated AWS library
  641. * Added support of set_sql_mode by dbcluster
  642. * Improved support for webserver running on non-default port with disk-enhanced
  643. * Improved menu icons
  644. * Fixed php warning when remote service cannot be loaded
  645. * Fixed php warnings on support page
  646. = 0.9.7.4 =
  647. * Fixed PHP warning when Redis integration not configured correctly
  648. * Fixed 404 in multisite caused by subdirectory issue
  649. * Fixed object cache issue in multisite where object cache was cleared at wrong time
  650. * Fixed database cluster in WordPress 5.1
  651. * Fixed warning caused by user agent theme change used
  652. * Fixed minification in multisite when URLs were set to root-blog based url
  653. * Fixed undefined w3tc_ga issue
  654. * Improved purging of current page by using post_id instead of URL
  655. * Improved cache delivery of /feed URLs
  656. * Improved security on calls to opcache flush
  657. * Improved minification of files in environments running on non-default ports
  658. = 0.9.7.3 =
  659. * Fixed caching of redirect responses based on empty response body
  660. * Improved compatibility with WordPress 5.1
  661. * Improved transports, unix: prefix not required
  662. * Improved minify html
  663. = 0.9.7.2 =
  664. * Fixed fatal error during media file upload with CDN module active
  665. * Fixed removal of empty values, JSON encoded string in attribute, trailing quote at end of tag, and the handling of anchors in HTML minify
  666. * Fixed undefined index warning
  667. * Fixed fatal error when purging CDN using full site delivery
  668. = 0.9.7.1 =
  669. * Fixed undefined variable notice
  670. * Fixed "No such file or directory" warning
  671. * Fixed writing to PHP error log rather than WordPress debug log
  672. * Fixed default referrer policy should be "no-referrer-when-downgrade"
  673. * Fixed php_flag error related to browser cache, using ini_set instead
  674. * Fixed Cloudflare IPv6 check undefined offset
  675. * Fixed Undefined constant WP_ROOT
  676. * Fixed frame-ancestors being overwritten by frame-src
  677. * Fixed missing semicolon in nginx configuration
  678. * Fixed HTTP/2 URLs handling for browser cache and CDN modules
  679. * Fixed display of CDN debug information
  680. * Fixed CSS Minification with Google Fonts when included via "Include external files/libraries" and non-latin character-sets are loaded
  681. * Fixed media query string not updating when all caches were purged
  682. * Fixed double slash with ABSPATH if file exists
  683. * Fixed setting max-age and expires header simultaneously
  684. * Fixed SASL detection for PECL Memcached
  685. * Fixed handling of manually entered objects to be purged on CDN
  686. * Fixed query string handling in Nginx
  687. * Improved error handling with Cloudfront
  688. * Improved page cache logging
  689. * Improved multi-tenant support for memory-based caching engines
  690. * Improved CSS minification
  691. * Improved purge behavior for changed media objects when using CDN
  692. * Improved compatibility with sitemap plugins
  693. * Added support for Memcached for Nginx
  694. * Added support for caching webm files
  695. * Added Brotli HTTP compression support
  696. * Added StackPath full site delivery support
  697. * Added _wc_session_ to the list of ignored query stems for improved WooCommerce compatibility
  698. = 0.9.7 =
  699. * Fixed minified files not being hosted by CDN when enabled if "host minified files" is disabled
  700. * Fixed warning thrown when purge all was selected (via nigrosimone)
  701. * Fixed undefined offset error in fragment cache
  702. * Fixed MaxCDN test button failure when debug mode is enabled
  703. * Fixed purging of feeds when cache feeds option is enabeld
  704. * Improved handling of errors when full site delivery isn't set
  705. * Improved nginx.conf to support xml caching
  706. * Improved nginx.conf to support HSTS for static files
  707. * Improved minify's handling of query strings
  708. * Improved database caching, frequent wp_options no longer flush posts or comments data
  709. * Improved Limelight Networks CDN integration
  710. * Improved FAQ, they're now hosted in the GitHub public repository
  711. * Improved handling for /*<![CDATA[*/ in HTML minify engine
  712. * Imporved garbage collection for basic disk caching
  713. * Improved HSTS support (via Dave Welsh)
  714. * Improved reliabilty of CSS embed options
  715. * Improved New Relic requirements in compatibility test
  716. * Added StackPath CDN integration (including full site delivery)
  717. * Added support for page cache priming via WP-CLI via prime function
  718. * Added filter support for managing cache groups
  719. * Added API for flushing individual cache groups via flush_group function
  720. * Added purge support for JSON cache e.g. cached REST API requests
  721. * Added filter support for managing database cache settings
  722. * Added filter support before (w3tc_process_content) and after (w3tc_processed_content) a cache object is created
  723. * Added compatibility for AMPforWP plugin
  724. * Added JSON caching support for Pro subscribers
  725. * Added additional security headers (via amiga-500)
  726. = 0.9.6 =
  727. * Fixed anonymous usage tracking, default to disabled
  728. * Fixed incorrect minify cache data written if target directory missing
  729. * Fixed empty minify cache file written when file locking enabled
  730. * Fixed missing commas in CSS (via nigrosimone)
  731. * Fixed typo in object cache engine (via Furniel)
  732. * Fixed incorrect reuse of redis connections when persistent connections option enabled
  733. * Fixed reliability of Google Drive (via jikamens)
  734. * Fixed handling of UTF-8 encoded files by writing them in binary (via jikamens)
  735. * Improved Full Site Delivery configuration user flow on the General and CDN settings screens
  736. * Improved content type matching and cache hits as a result
  737. * Improved minify file locking logic
  738. * Improved visual langage of the compatibility test (via Furniel)
  739. * Improved configuration file management
  740. * Improved MaxCDN set up wizard
  741. * Improved page cache's accepted query string handling to handle optional values and add support for disk enhanced mode (via amiga-500, nigrosimone)
  742. * Improved handling of timeouts to origin push CDN proviers
  743. * Added HTTP/2 push headers for disk enhanced page caching (via nigrosimone)
  744. * Added X-Forwarded-Proto header for use cases like HTTPS recognition behind proxies or load balancers
  745. * Added multiple CDN support i.e. static file objects and pages, posts, feeds, API responses etc to use different respective CDN providers
  746. * Added page caching by cookie name or value (sponsored by SQweb)
  747. * Added toggle for CORS header to improve inter-operatbility with various CDN providers
  748. * Added support for CDN hosted media to media library (inspired by amiga-500)
  749. * Added object caching of AJAX calls (via andyexeter)
  750. * Enterprise features are now available to Pro subscribers! Including reading from multiple databases concurrently and purging caches across multiple hosts via a Message Bus
  751. = 0.9.5.4 =
  752. * Fixed regression with browser caching and query strings
  753. = 0.9.5.3 =
  754. * Fixed handling of HTTP compressed documents in PHP v5.3 (via amiga-500)
  755. * Fixed a bug with accelerated mobile pages (via nigrosimone)
  756. * Improved reliability of minify in manual mode
  757. * Improved JavaScript interoperability with CDATA use cases
  758. * Improved file name generation on Windows for IIS servers
  759. * Improved handling of # in URLs
  760. * Improved handling of exclusions for e-commerce in Genesis Framework
  761. * Improved handling of headers for Microsoft Azure
  762. * Improved functionality with existing CloudFront Distributions when configuring Full Site Delivery
  763. * Improved minify debug logging
  764. * Improved handling of URLs that omit the protocol
  765. * Improved handling of custom files with CDN (via amiga-500)
  766. * Updated CSSTidy library (via nigrosimone and amiga-500)
  767. * Added Swarmify Video Optimization Extension [Hat tip the Swarmify Team]
  768. * Added flushing of AMP pages
  769. = 0.9.5.2 =
  770. * Fixed security issue by protecting configuration data by adding .php to relevant files
  771. * Fixed security issue with the creation of dot folders that could be abused
  772. * Fixed handling HTTP compression for uncached pages
  773. * Fixed handling of .svgz files
  774. * Added expiration headers to WebP images
  775. * Added support for Microsoft Azure’s latest API
  776. * Added ability to cache WP Admin. Recommended setting, is off. (Improved WP Admin performance with object caching enabled)
  777. * Added HTTP/2 Push support for minified files
  778. * Added option management support for wp-cli
  779. * Improved handling of uncompressed minified files
  780. * Improved handling of purging of modified pages / posts
  781. * Improved compatibility with Rackspace Cloud Files
  782. * Improved initial CDN configuration reliability
  783. * Improved reliability of object caching
  784. * Improved PHP 7.0 compatibility
  785. * Improved PHP 4.3 compatibility
  786. * Improved HTTP/2 support
  787. * Improved CSS embed handling
  788. * Improved reliability of object cache, transients now fallback to database
  789. * Improved handling of cached http compressed objects
  790. = 0.9.5.1 =
  791. * Fixed missing namespace, which caused issues with other implementations of Google APIs
  792. * Fixed handling Cloudflare zone list being incomplete for users with many zones
  793. * Added extension to support Accelerated Mobile Pages (AMP)
  794. * Added notification for users that are still using PHP 5.2 (end of life in 2011)
  795. * Improved default settings
  796. * Improved compatibility with Yoast SEO sitemap caching
  797. * Improved compatability with Jetpack
  798. * Improved directory handling on IIS
  799. * Improved backwards compatibility for 3rd party implementations against legacy W3TC functions
  800. = 0.9.5 =
  801. * Fixed XSS vulnerability
  802. * Fixed issues with dismissing overlays
  803. * Fixed handling of tilde in URLs
  804. * Fixed issue with HTTP compression header when using mfunc calls
  805. * Fixed cache ID issue with minify in network mode
  806. * Fixed rare issue of caching empty document when some PHP errors occur in themes or plugins
  807. * Fixed caching of query strings
  808. * Added support for APCu Opcode Cache
  809. * Added support for Redis
  810. * Added support for Google Drive
  811. * Added support for Amazon S3-compatible stroage services
  812. * Added support for PECL memcached
  813. * Added support for srcset elements
  814. * Added support for Rackspace CDN Origin Pull
  815. * Added support for minification of external fonts
  816. * Added support for WOFF2 font format
  817. * Added support for FTPS (FTP-SSL, S-FTP)
  818. * Added YUI Compressor's PHP Port of the CSS minifier
  819. * Added Narcissus' JS minifier
  820. * Added purge of parent page when attachments are added or updated
  821. * Added Highwinds CDN provider
  822. * Added "Validate Timestamps" option for compatible opcode caches functions like apc.stat are enabled
  823. * Added Full Site Delivery for Pro subscribers
  824. * Added HTTP Strict Transport Security (HSTS) support
  825. * Added a sample extension for developers to reference
  826. * Added Rackspace Cloud Files Multi-Region Support
  827. * Added more support for exclusions to database cache
  828. * Added more optionality to minifiers
  829. * Added WPML Performance Extension
  830. * Added use of [namespace](http://php.net/manual/en/language.namespaces.rationale.php) which creates mininum dependency on version PHP 5.3
  831. * Improved PHP 5.6 compatibility
  832. * Improved PHP 7 compatibility
  833. * Improved performance menu in admin bar, including purging of specific cache engines and more
  834. * Improved SSL interoperability
  835. * Improved reliablity of test buttons
  836. * Improved nomenclature of caching files for higher cache hit rates
  837. * Improved nginx compatibility
  838. * Improved WP CLI support
  839. * Improved Cloudflare compatibility (now using latest APIs), Cloudflare must be re-authorized
  840. * Improved AWS API compatibility (now using latest APIs)
  841. * Improved Rackspace Cloud Files compatibility (now using latest APIs)
  842. * Improved page cache purge for extensions like cloudflare and other reverse proxy use cases
  843. * Improved extension framework functionality
  844. * Improved compatibility of headers like ETag and content encoding
  845. * Improved template fragment caching
  846. * Improved notifications, warnings and errors
  847. * Improved moble user agents detection
  848. * Improved security with nonces and form elements
  849. * Improved security throughout the codebase
  850. * Improved detail of debug messages
  851. * Improved Amazon SNS security (validation)
  852. * Improved minify's ability to match script tags without type attribute
  853. = 0.9.4 =
  854. * Fixed undefined w3tc_button_link
  855. * Fixed support and other form submissions
  856. * Fixed extension enabled key error
  857. * Fixed Test CDN errors
  858. * Fixed trailing slashes in custom wp content path and Minify
  859. * Fixed WP_PLUGIN_DIR not being available when object-cache.php is loaded and W3TC constant not set
  860. * Fixed Minify Auto and restructuring of JS code placement on page
  861. * Fixed remove / replace drop in file on plugins page
  862. * Fixed false positive check for legacy code
  863. * Fixed deprecated wpdb escape
  864. * Fixed Fragment Caching and APC anomalies
  865. * Fixed cached configs causing 500 error on interrupted file writes
  866. * Fixed readfile errors on servers with the functionality disabled
  867. * Fixed false positives for license key verification
  868. * Fixed debug information not printed on cached pages
  869. * Fixed backwards compatibility and flushing and added doing it wrong notification
  870. * Fixed "Prevent caching of objects after settings change"
  871. * Fixed "Use late init" being shown as enabled with Disc:Enhanced
  872. * Fixed missing param in APC cache method declaration
  873. * Fixed user roles property not begin an array
  874. * Fixed adding empty Vary header
  875. * Fixed notice on failed upgrade licencing check
  876. * Fixed Database Cache description text
  877. * Fixed duplicate bb10 agents
  878. * Fixed settings link in Minify Auto notification
  879. * Fixed notice with undefined constant
  880. * Fixed nginx configuration and Referrer, User Groups setting
  881. * Fixed Genesis settings and Suhosin field name limit error
  882. * Fixed Genesis and Fragment Caching (caching categories etc)
  883. * Fixed CDN being enabled when creating NetDNA / MaxCDN pull zone
  884. * Fixed NewRelic related notice in compatibility popup
  885. * Fixed trailing slash issue in filename to url conversion
  886. * Fixed issue with wp in subdirectory and relative minimal manual urls
  887. * Fixed issue with widget styling
  888. * Fixed issue with Purge All button action
  889. * Fixed issue with exporting of settings
  890. * Fixed issue with plugin interferring with preview theme
  891. * Fixed issue with malformed config files
  892. * Added caching of list of posts pages (tags, categories etc) to Genesis extension a long with flush it checkbox
  893. * Added typecasting on expiration time in object cache drop-in
  894. * Added capability check for save options
  895. * Added FeedBurner extension
  896. * Added woff support to Browser Cache
  897. * Added new Cloudflare IPs
  898. * Added support for WordPress defined charset and collate in CDN queue table creation
  899. * Added WordPress SEO by Yoast extension
  900. * Added *.less to CDN theme uploads and MIME
  901. * Added default settings for MaxCDN Pull Zone creation
  902. * Added call to change MaxCDN canonical header setting to match plugin setting
  903. * Added one button default pull zone creation to MaxCDN without refresh
  904. * Added MaxCDN authorization validation
  905. * Added whitelist IPs notification for MaxCDN
  906. * Added support for use of existing zones without refresh
  907. * Added new mime types
  908. * Added support for separate domains for frontend and admin backend
  909. * Added Cloudflare as an extension
  910. * Added nofollow to blogroll links
  911. * Added DEV mode support to PRO version
  912. * Added EDGE MODE functionality
  913. * Improved wrapper functions in plugins.php for plugin / theme authors
  914. * Improved reliability of NetDNA / MaxCDN API calls by using WP HTTP and not cURL
  915. * Improved Fragment Caching debug information
  916. * Improved preview mode, removed query string requirement
  917. * Improved FAQ structure
  918. * Improved empty minify/pgcache cache notification when using CDN
  919. * Improved default settings for MaxCDN zone creation
  920. * Improved CDN queue performance
  921. * Improved blogmap url sanitation
  922. * Improved MaxCDN automatic zone creation process
  923. * Improved license key saving and Pro mode activation on Pro license purchases
  924. * Updated EDGE MODE: Full site mirroring support for MaxCDN
  925. * Updated translations
  926. == Upgrade Notice ==
  927. = 2.7.3 =
  928. Thanks for using W3 Total Cache! The minimum required PHP version has been raised to PHP 7.2.5. We recommend using PHP 8. StackPath CDN has cased all operations and will be removed in a future release. We recommend switching to Bunny CDN.
  929. = 0.9.7.5 =
  930. Users running Cloudflare CDN may experience issues beginning June 6th. Please upgrade to W3 Total Cache 0.9.7.5 for the latest Cloudflare patches.
  931. = 0.9.5.3 =
  932. Thanks for using W3 Total Cache! This release includes compatibility fixes that have been reported. In addition, numerous other improvements are now yours!
  933. = 0.9.5.2 =
  934. Thanks for using W3 Total Cache! This release includes security fixes that have been reported. In addition, numerous other improvements are now yours!
  935. = 0.9.5.1 =
  936. Thanks for using W3 Total Cache! This release includes security fixes that have been reported. In addition, numerous other improvements are now yours!
  937. = 0.9.5 =
  938. 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!
  939. = 0.9.4 =
  940. 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.
  941. = 0.9.2.11 =
  942. 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.
  943. = 0.9.2.10 =
  944. 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.
  945. = 0.9.2.9 =
  946. 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.
  947. = 0.9.2.8 =
  948. 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.