=== WP Fastest Cache ===
Contributors: emrevona
Donate link: https://profiles.wordpress.org/emrevona/
Tags: cache, Optimize, performance, PageSpeed, core web vitals
Requires at least: 5.3
Tested up to: 6.9
Stable tag: 1.4.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

The simplest and fastest WP Cache system

== Description ==

<h4>Official Website</h4>

You can find more information on our website (<a href="https://www.wpfastestcache.com/">wpfastestcache.com</a>)

Welcome to the page of the WP Fastest Cache plugin, a WordPress cache plugin developed to speed up WordPress sites.
<br><br>
In today's world where every second counts, optimizing your website's performance is very important. Meet WP Fastest Cache, your caching plugin that you can use to speed up WordPress websites. 
<br><br>
Optimize the performance of your website with WP Fastest Cache. Improve Google PageSpeed, Core Web Vitals, GTmetrix and Pingdom score with our wp cache plugin.
<br><br>
In addition, page speed is a ranking factor in Google's search algorithm. Therefore, using cache plugins helps improve your SEO ranking. Our WordPress optimization plugin not only accelerates your site but also boosts SEO rankings. 

<h4>Features</h4>

1. Mod_Rewrite which is the fastest method is used in this plugin
2. All cache files are deleted when a post or page is published
3. Admin can delete all cached files from the options page
4. Admin can delete minified css and js files from the options page
5. Block cache for specific page or post with Short Code
6. Cache Timeout - All cached files are deleted at the determinated time
7. Cache Timeout for specific pages
8. Enable/Disable cache option for mobile devices
9. Enable/Disable cache option for logged-in users
10. SSL support
11. CDN support - Effortlessly enhance website speed and performance with seamless CDN integration, supporting Bunny CDN, Cloudflare, and various other leading CDN providers. CDN integration modifies the URLs of static resources, enabling these assets to be served from your CDN service provider
12. Cloudflare support - Cloudflare integration triggers the clearing of the cache on Cloudflare through API when a cache purge is initiated. As a result, WP Fastest Cache and Cloudflare operate seamlessly in tandem
13. Preload Cache - Create the cache of all the site automatically
14. Exclude pages and user-agents
15. WP-CLI cache clearing
16. Proxy Cache - Varnish Cache Integration to clear proxy cached content automatically when the cache created by WP Fastest Cache is cleared

<h4>Performance Optimization</h4>

WP Fastest Cache is not only a wp cache plugin but also a speed optimization wordpress cache plugin. There are many features such as Minify Html, Minify Css, Enable Gzip Compression, Leverage Browser Caching, Add Expires Headers, Combine CSS, Combine JS, Disable Emoji.

1. Page Caching - Page caching feature generates and store static HTML files from your dynamic WordPress blog to reduce initial server response time, and improving page load times
2. Minify Html - Minify HTML is the process of reducing the size of page by removing unnecessary characters, spaces, and line breaks, optimizing it for faster webpage loading
3. Minify Css - Minify CSS is the process of reducing the size of CSS files by removing unnecessary characters, spaces, and comments to improve website loading performance
4. Enable Gzip Compression - Reduce the size of files sent from your server to increase the speed to which they are transferred to the browser
5. Leverage browser caching - Browser caching can help to reduce page load times by reducing the number of requests per page for repeat visitors
6. Combine CSS - Reduce number of HTTP round-trips by combining multiple CSS resources into one
7. Combine JS
8. Disable Emoji - You can remove the emoji inline css and wp-emoji-release.min.js

<h4>Premium Performance Optimization</h4>

The free version is enough to speed up your site but in the premium version there are extra features such as Mobile Cache, Widget Cache, Minify HTML Plus, Minify CSS Plus, Minify JS, Combine JS Plus, Defer Javascript, Optimize Images, Convert WebP, Database Cleanup, Google Fonts Async, Lazy Load and Delay JS for super fast load times.

1. Mobile Cache
2. Widget Cache
3. Minify HTML Plus
4. Minify CSS Plus
5. Minify Javascript - Minifying JavaScript files can reduce payload sizes and script parse time
6. Combine JS Plus
7. Defer Javascript - Eliminate render-blocking JavaScript resources. Consider delivering critical JS inline and deferring all non-critical JS
8. Optimize Images - Optimized images load faster and consume less cellular data. Looking for an easy image compressor? Our tool lets you compress images instantly, including Compress JPEG and Compress PNG options. Enjoy fast image compression to reduce image size without losing quality. Perfect for quick image optimization with a smart image optimizer designed for all your needs.
9. Convert WebP - Serve images in next-gen formats. Image formats like JPEG 2000, JPEG XR, and WebP often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. A fast and reliable WebP converter helps you convert to WebP in seconds. Whether you need a WebP convert tool, a JPG to WEBP Converter, PNG to WEBP Converter, or a simple image to WebP option, you can easily optimize your images. Quickly handle JPG to WEBP, PNG to WEBP, jpg convert to webp, and png convert to webp tasks to reduce file size and improve web performance.
10. Database Cleanup - To keep your system running smoothly, it’s important to clean database structures regularly and ensure you clean DB records that are no longer needed. A database cleaner is essential for effective database cleaning and long-term database optimization. By removing unused entries and organizing data efficiently, you can significantly improve database performance and speed up database operations. Modern db cleaner tools automate the entire db cleaning process, helping developers maintain fast, reliable, and scalable systems. The Database Cleanup feature clears out all of the garbage datas such as post revisions, trashed posts & pages, comments from trash & spam, trackbacks and pingbacks, transient options, orphaned post meta, comment meta, user meta, term meta, and term relationship etc.
11. Google Fonts Async
12. Lazy Load - Defer offscreen images. Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive
12. Delay JS - The Delay JavaScript feature helps reduce the 'Reduce unused JavaScript' warning in the Google PageSpeed Insights tool

<h4>Information</h4>

It is very inconvenient to use multiple caching plugins at the same time. That's why you need to disable plugins such as LiteSpeed Cache, WP-Optimize, W3 Total Cache, WP Super Cache, SiteGround Optimizer, Breeze while using WP Fastest Cache.

WP Fastest Cache is compatible with most popular plugins such as Contact Form 7, Yoast SEO, Elementor Website Builder, Classic Editor, Akismet Spam Protection, WooCommerce, Contact Form by WPForms, Really Simple SSL, All-in-One WP Migration, Yoast Duplicate Post, Wordfence Security – Firewall & Malware Scan, WordPress Importer, UpdraftPlus WordPress Backup Plugin, MonsterInsights, All in One SEO, WP Mail SMTP by WPForms.

<h4>Supported Languages</h4>

Although there are over 7000 languages spoken in the world today, we feel very lucky to support 30 languages for now.

However, localizing or adapting a plugin to another language or culture is time consuming and a demanding task. That's where the amazing Translation Contributors team of WordPress comes into play. These selfless people spent their precious time without expecting anything in return so that other people can use the add-ons more easily. We sincerely thank all of them.

Chinese Simplified (China), Chinese Traditional (Taiwan), Czech, Dutch (Belgium), Dutch (Netherlands), English (South Africa), English (UK), Finnish, French (France), Galician, German (Germany), Hungarian, Indonesian, Italian, Japanese, Korean (Korea), Persian, Russian, Slovak (Slovakia), Slovenian, Spanish (Argentina), Spanish (Chile), Spanish (Colombia), Spanish (Ecuador), Spanish (Mexico), Spanish (Spain), Spanish (Venezuela), Swedish, Turkish, Ukrainian

== Installation ==

1. Upload `wp-fastest-cache` to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Permission of .htacces must 644
4. Enable this plugin on option page

== Screenshots ==

1. Performance Comparison
2. Other Performance Comparison
3. Without Cache
4. With Cache
5. Main Settings Page
6. Preload
7. New Post
8. Update Cache
9. Delete Cache
10. All cached files are deleted at the determinated time
11. Block caching for post and pages (TinyMCE)
12. Clean cached files via admin toolbar easily
13. Exclude Page
14. CDN
15. Enter CDN Information
16. File Types
17. Specify Sources
18. Database Cleanup

== Changelog ==

= 1.4.3 =
* Tested and confirmed full compatibility with WordPress 6.9 to ensure smooth and reliable plugin performance

= 1.4.2 =
* <strong>[Improvement]</strong> Updated the function modifying for url() paths in CSS
* <strong>[Improvement]</strong> Enhanced the <pre> tag replacement logic for more accurate matching and reliable content updates

= 1.4.1 =
* Added display of orphaned post meta, comment meta, user meta, term meta, and term relationship counts 
* Added nonce verification and capability checks to the wpfc_db_fix AJAX action to prevent unauthorized database cleanup requests
* Added a validation to ensure Elementor’s CSS Print Method is set to “Internal Embedding,” displaying an error with a help link if misconfigured [<a target="_blank" href="https://www.wpfastestcache.com/tutorial/elementor-plugin-settings/">Details</a>]

= 1.4.0 =
* Fixed: support both old (elementor_experiment-e_element_cache) and new (elementor_element_cache_ttl) Elementor cache options for compatibility

= 1.3.9 =
* <strong>[Improvement]</strong> Replaced manual <script> output in print_my_inline_script() with wp_print_inline_script_tag() for better compatibility and cleaner code
* Fixed: RewriteCond syntax to correctly detect HTTPS connections

= 1.3.8 =
* Added a condition to exclude <script type="module"> tags from js combining 
* Fixed: Issue where the cache was not being cleared when a page was deleted
* Fixed: PHP fatal error caused by an undefined function current_datetime() in cache.php on line 1130
* Added support for fetching and processing multiple pages of Cloudflare zones to ensure all potential matches are considered

= 1.3.7 =
* <strong>[Improvement]</strong> Serve cached content via .htaccess rules instead of PHP when URLs include the fbclid query string
* <strong>[FEATURE]</strong> Added support for Spanish (Chile) and Ukrainian languages
* to update translation files
* to fix PHP Fatal error: Uncaught TypeError: method_exists(): Argument #1 ($object_or_class) must be of type object|string, array given in cdn.php:383
* <strong>[Improvement]</strong> Added specific handling for BunnyCDN 403 errors

= 1.3.6 =
* Prevented unnecessary cache deletion for pending comments marked as spam or moved to trash
* Updated caching behavior to serve URLs with Google Merchant Center query strings (e.g., /?srsltid) from the cache, improving performance

= 1.3.5 =
* Updated cache creation time display to follow WordPress date and time format settings
* Removed the 'Static CSS File Generation' warning when using the Divi theme.

= 1.3.4 =
* to fix PHP Fatal error: Class "VarnishWPFC" not found in preload.php
* to fix Undefined property: stdClass::$total in preload.php on line 753

= 1.3.3 =
* <strong>[Improvement]</strong> Toolbar style adjusted to align with WordPress standard for better consistency and user experience
* to change the cache path for the Polylang-Pro plugin
* <strong>[Improvement]</strong> Modified the toolbar menu of WP Fastest Cache plugin to improve usability and navigation
* <strong>[FEATURE]</strong> Added a filter that allows users to easily remove the WP Fastest Cache menu from the admin toolbar [<a target="_blank" href="https://www.wpfastestcache.com/features/clear-cache-link-on-the-toolbar/#wpft-method-1-using-filter">Details</a>]

= 1.3.2 =
* <strong>[Improvement]</strong> Added a new action to handle the addition of keyword items in the Preload Wizard
* Corrected typos in the Cloudflare CDN integration wizard and in the DB tab
* <strong>[FEATURE]</strong> Added a filter to define the token for preload functionality [<a target="_blank" href="https://www.wpfastestcache.com/features/clear-cache-via-url/#wpft-method-2-using-filter">Details</a>]

= 1.3.1 =
* <strong>[FEATURE]</strong> Added a filter that allows users to easily remove the cache creation comment from the footer [<a target="_blank" href="https://www.wpfastestcache.com/tutorial/how-to-remove-the-footer-comment/">Details</a>]
* <strong>[Improvement]</strong> Added a warning notification to alert users if the "Element Caching" option in the Elementor plugin is not inactive [<a target="_blank" href="https://www.wpfastestcache.com/tutorial/elementor-plugin-settings/">Details</a>]
* Refactored `remove_url_parameters()` for improved efficiency
* Fix issue: Logic to determine the $number variable based on the WPFC_PRELOAD_NUMBER constant for preload when a sitemap is used

= 1.3.0 =
* Prevent caching of 403 Forbidden error pages
* Fix issue: Exclude JS files with the "data-no-minify" attribute from the combining process
* Fixed PHP Notice: Undefined index: HTTP_HOST in wpFastestCache.php on line 489

= 1.2.9 =
* Refactored 'Clear Cache via URL' feature
* Added feature to clear post cache triggered via URL [<a target="_blank" href="https://www.wpfastestcache.com/features/clear-cache-via-url/">Details</a>]

= 1.2.8 =
* refactoring for CSS minification feature
* refactoring for Cloudflare Integration
* to update translation files

= 1.2.7 =
* to fix the issue of backslashes being removed in the &lt;pre&gt; tag after minifying HTML

= 1.2.6 =
* refactoring for getABSPATH()
* to prevent clearing cache after deleting coupon which was created by YITH WooCommerce Coupon Email System Premium
* to check the REDIRECT_QUERY_STRING for the gtranslate plugin

= 1.2.5 =
* to fix the creation of cache for URLs that end with .xml
* to use the native WordPress function current_time() instead of the date() function
* refactoring the purge_cache() function of Varnish Cache

= 1.2.4 =
* refactoring for getABSPATH()
* to fix PHP Deprecated:  Creation of dynamic property CssUtilities::$url is deprecated in css-utilities.php on line 348
* to fix PHP Deprecated:  Creation of dynamic property CssUtilities::$url_for_fix is deprecated in css-utilities.php on line 412
* to remove duplicate extensions in the <FilesMatch> directive for the browser caching feature

= 1.2.3 =
* Farewell, StackPath, and a warm welcome to BunnyCDN
* to update translation files
* to exclude script element from minification when data-no-minify attribute is set
* <strong>[FEATURE]</strong> to add Slovenian language
* refactroning of specificDeleteCache()

= 1.2.2 =
* Security Enhancements
* to update translation files

= 1.2.1 =
* refactroning of the condition that was added for Divi theme
* <strong>[FEATURE]</strong> Add a hook system for creating a post cache by id [<a target="_blank" href="https://www.wpfastestcache.com/tutorial/create-a-post-cache-by-id-using-the-function-hook/">Details</a>]
* to fix the issue of obtaining the latest version of the sitemap after a restart
* to check if the intl extension is available for Cloudflare integration
* to fix Warning: Undefined property: stdClass::$zone_id in cdn.php on line 227

= 1.2.0 =
* to make the Preload feature to be compatible with Sitemap Index
* to hide the premium tab for the premium users
* to show warning if the Static CSS File Generation option of Divi theme is enabled
* to update translation files
* to fix PHP Warning: Undefined array key "sitemaps" in preload.php on line 62
* to change the cache path for the Polylang-Pro plugin
* to check if the buffer has only one line (no line breaks)
* refactoring of checkHtml()
* to check that Cookie Notice & Compliance for GDPR / CCPA is active or not

= 1.1.9 =
* to add gear button for the preload feature
* to remove image urls for sitemap preload
* to fix PHP Deprecated: Required parameter in preload.php on line 576
* <strong>[FEATURE]</strong> Moving the menu item under the settings menu [<a target="_blank" href="https://www.wpfastestcache.com/tutorial/how-to-move-the-menu-item-under-the-setting-menu/">Details</a>]
* to fix Warning: Undefined array key "action" in wpFastestCache.php on line 378 and 395

= 1.1.8 =
* <strong>[FEATURE]</strong> to add Sitemap option for the preload feature [<a target="_blank" href="https://www.wpfastestcache.com/features/preload-settings/#methods">Details</a>]
* to update translation files
* to fix PHP Warning: Attempt to read property "term_taxonomy_id" on bool in wpFastestCache.php on line 1638

= 1.1.7 =
* to change the cache path for the Polylang plugin
* <strong>[FEATURE]</strong> to add Korean (Korea) language
* to update translation files
* refactoring of is_amp()
* to replace empty char which exist in the admin cookie with %20 for RewriteCond

= 1.1.6 =
* to update translation files
* to fix problem that the first js source is not able to be excluded
* refactoring of set_cache_file_path()
* refactoring of Buffer Callback Filter [<a target="_blank" href="https://www.wpfastestcache.com/tutorial/buffer-callback-filter/#how-to-remove-trailing-slash-on-void-elements">Details</a>]

= 1.1.5 =
* to replace wp_remote_get() with wp_safe_remote_get() in the check_url() function
* to update translation files
* to fix PHP Warning: Undefined array key "roles" in wpFastestCache.php on line 962
* to remove multiple slashes from url
* to fix PHP Warning: Attempt to read property “wpFastestCacheLanguage” on array in admin.php on line 23

= 1.1.4 =
* to check trailing slash for query string cache
* refactoring process of clearing homepage cache by cache timeout

= 1.1.3 =
* to change translation system [<a target="_blank" href="https://www.wpfastestcache.com/blog/is-wp-fastest-cache-available-in-other-languages/">Details</a>]
* refactoring of delete_author_page_cache()
* to add Czech, Dutch (Belgium), Galician, Hungarian, Indonesian, Japanese, Persian, Spanish (Colombia), Spanish (Ecuador), Spanish (Ecuador), Spanish (Venezuela), Spanish (Argentina), Spanish (Mexico) translations
* to enable the toolbar settings wizard for the Multisite installation [<a target="_blank" href="https://www.wpfastestcache.com/features/clear-cache-link-on-the-toolbar/">Details</a>]
* to fix low level vulnerability

= 1.1.2 =
* to clear cache of next/prev posts after updating or publishing a post
* to fix E_WARNING: file_get_contents(): No such file or directory in admin.php  on line 377
* <strong>[FEATURE]</strong> Added ability to disable hook system [<a target="_blank" href="https://www.wpfastestcache.com/features/how-to-disable-clear-cache-hook-system/">Details</a>]
* to fix PHP Deprecated:  trim(): Passing null to parameter #1 ($string) of type string is deprecated in preload.php on line 546
* to fix Notice:  Constant WPFC_CACHE_QUERYSTRING already defined

= 1.1.1 =
* <strong>[FEATURE]</strong> Varnish Cache Integration [<a target="_blank" href="https://www.wpfastestcache.com/features/using-varnish-cache-with-wp-fastest-cache/">Details</a>]
* to fix E_WARNING: unlink(): No such file or directory in wpFastestCache.php  on line 1530

= 1.1.0 =
* to show cache if the url contains a parameter of Yandex Click Identifier
* <strong>[FEATURE]</strong> Excluding Yandex Click Identifier [<a target="_blank" href="https://www.wpfastestcache.com/features/cache-url-with-yandex-click-id-parameters-querystring/">Details</a>]
* <strong>[FEATURE]</strong> Adding "Regular Expression" option for the Exclude Pages feature [<a target="_blank" href="https://www.wpfastestcache.com/features/using-regular-expression-to-exclude-a-page/">Details</a>]

= 1.0.9 =
* to improve the style of exclude feature wizard
* to fix hiding the toolbar when logged in
* to fix PHP Notice: Undefined offset: -1 in js-utilities.php on line 67
* to fix PHP Fatal error: Uncaught Error: Non-static method cannot be called statically in clearing-specific-pages.php on line 58

= 1.0.8 =
* to stop showing the "DONOTCACHEPAGE is defined as TRUE" comment in the footer for the ajax requests
* <strong>[FEATURE]</strong> Clearing Specific Pages [<a target="_blank" href="https://www.wpfastestcache.com/features/clear-cache-of-specific-urls-when-updating-or-posting/">Details</a>]
* to fix the site url on the exclude page
* to fix PHP Notice:  Function WP_User_Query::query was called incorrectly. User queries should not be run before the plugins_loaded hook

= 1.0.7 =
* <strong>[FEATURE]</strong> Clearing Specific Pages (BETA) [<a target="_blank" href="https://www.wpfastestcache.com/features/clear-cache-of-specific-urls-when-updating-or-posting/">Details</a>]
* to add last-modified header when cache is served via php

= 1.0.6 =
* to serve sources via cdn for excluded pages if cdn is enabled
* to fix PHP Notice: Undefined offset: -1 in js-utilities.php  on line 48

= 1.0.5 =
* to fix E_NOTICE: Undefined variable: path in wpFastestCache.php on line 2142
* to add excluding feature for Buffer Callback Filter [<a target="_blank" href="https://www.wpfastestcache.com/tutorial/buffer-callback-filter/#exclude">Details</a>]

= 1.0.4 =
* to add avif extensions for cdn
* to add WPFC_SERVE_ONLY_VIA_CACHE [<a target="_blank" href="https://www.wpfastestcache.com/tutorial/how-to-serve-cache-only-via-php/">Details</a>]

= 1.0.3 =
* Photon will no longer be supported [<a target="_blank" href="https://www.wpfastestcache.com/blog/photon-will-no-longer-be-supported/">Details</a>]
* to exclude category url for preload if any error occurs

= 1.0.2 =
* to add WP-CLI command for clearing cache of a post [<a target="_blank" href="https://www.wpfastestcache.com/features/wp-cli-commands/">Details</a>]
* to fix Warning scandir() at wpFastestCache.php:302
* to fix Warning file_put_contents(/cache/wpfc-minified/index.html) at cache.php:1090
* to fix Warning unlink(wp-cache-config.php) admin.php:885

= 1.0.1 =
* to clear only cache of post/page even if the "update post" option is disabled

= 1.0.0 =
* to define the save_settings() function of single preload feature as static function

EARLIER VERSIONS
For the changelog of earlier versions, please refer to [<a target="_blank" href="https://www.wpfastestcache.com/changelog/earlier-changelog-of-freemium-version/">the changelog on wpfastestcache.com</a>]


== Frequently Asked Questions ==

= How do I know my blog is being cached? =
You need to refresh a page twice. If a page is cached, at the bottom of the page there is a text like "&lt;!-- WP Fastest Cache file was created in 0.330816984177 seconds, on 08-01-14 9:01:35 --&gt;".

= Does it work with Nginx? =
Yes, it works with Nginx properly. Since Nginx doesn’t use an .htaccess file, you need to enable the Gzip compression and Browser Caching features manually. You can follow these tutorials: <a href="https://www.wpfastestcache.com/tutorial/how-to-enable-leverage-browser-caching-on-nginx/">How to Enable Leverage Browser Caching on Nginx</a> and <a href="https://www.wpfastestcache.com/tutorial/how-to-enable-gzip-compression-in-wordpress/#nginx">How to Enable Gzip on Nginx</a>

= Does it work with IIS (Windows Server) ? =
Yes, it works with IIS properly.

= Is this plugin compatible with Multisite? =
Yes, it is compatible with Multisite.

= Is this plugin compatible with Subdirectory Installation? =
Yes, it is compatible with Subdirectory Installation.

= Is this plugin compatible with Http Secure (https) ? =
Yes, it is compatible with Http Secure (https).

= Is this plugin compatible with Adsense? =
Yes, it is compatible with Adsense 100%.

= Is this plugin compatible with CloudFlare? =
Yes, it is but you need to read the details. <a href="https://www.wpfastestcache.com/tutorial/wp-fastest-cache-cloudflarecloudfront/">Click</a>

= Is this plugin compatible with qTranslate? =
Yes, it is compatible with qTranslate 100%.

= Is this plugin compatible with WP Hide & Security Enhancer? =
Yes, it is compatible with WP Hide & Security Enhancer.

= Is this plugin compatible with WP-PostViews? =
Yes, it is compatible with WP-PostViews. The current post views appear on the admin panel. The visitors cannot see the current post views. The developer of WP-PostViews needs to fix this issue.

= Is this plugin compatible with WooCommerce Themes? =
Yes, it is compatible with WooCommerce Themes 100%.


== Upgrade notice ==
....