Description
Cache Enabler is a simple, yet powerful WordPress caching plugin that is easy to use, needs minimal configuration, and best of all helps improve site performance for a faster load time. It creates static HTML files of frontend pages and stores them on the server’s disk. This allows the static HTML files to be delivered instead of generating pages on the fly, avoiding resource intensive backend processes from the WordPress core, plugins, and database.
Features
- Fast and efficient cache engine
- Automatic smart cache clearing
- Manual cache clearing
- WP-CLI cache clearing
- Cache expiry
- WebP support (convert images to WebP with Optimus)
- Mobile support
- Brotli and Gzip pre-compression support
- Minification of HTML excluding or including inline CSS and JavaScript
- Real-time cache size display in the WordPress dashboard
- Custom post type support
304 Not Modifiedsupport- Works perfectly with Autoptimize
How does the caching work?
Cache Enabler captures page contents and saves it as a static HTML file on the server’s disk. The static HTML file created can be one of several possible cache versions depending on the plugin settings and HTTP request. Accepted static HTML files are then delivered without any database queries or on the fly compression, allowing for a quicker page load.
Documentation
Want to help?
- Want to file a bug, contribute some code, or improve translations? Excellent! Check out our GitHub issues or translations.
Maintainer
Reviews
Contributors & Developers
“Cache Enabler” is open source software. The following people have contributed to this plugin.
Contributors“Cache Enabler” has been translated into 15 locales. Thank you to the translators for their contributions.
Translate “Cache Enabler” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.8.15
Support more (html4, xhtml1.0, xhtml1.1) doctypes (thanks @orlitzky)
Remove all chmod() calls (thanks @orlitzky)
1.8.14
- PHP 8.2 compatibility
- Content negotiation compatibility (thanks @futta)
- Improved path handling (thanks @orlitzky)
1.8.13
- WordPress 6.1 compatibility
1.8.12
- Update directory validation (@robwoodgate)
1.8.11
- Fix directory validation
1.8.10
- Fix recursive chmod issue (#317 @robwoodgate)
1.8.9
- Update sanitization
1.8.8
- Add server input sanitization
1.8.7
- Update plugin upgrade process for multisite networks (#303)
- Update
wp-config.phpfile handling (#302)
1.8.6
- Update requirements check notices (#300)
- Update
advanced-cache.phpdrop-in file handling (#297) - Add additional validation when creating cached files (#299)
- Add type casts to several filter hooks (#299)
- Add
cache_enabler_settings_before_validationfilter hook (#298)
1.8.5
- Update required WordPress version from 5.5 to 5.1 (#295)
- Fix plugin upgrade process when disk settings are outdated and a frontend page is requested (#295)
1.8.4
- Update
advanced-cache.phpdrop-in file handling (#292)
1.8.3
- Update index file handling (#289)
1.8.2
- Update cache size transient handling (#287)
1.8.1
- Fix requirements check (#285)
1.8.0
- Update
advanced-cache.phpdrop-in file handling to improve reliability and compatibility (#260 and #283) - Update settings file to be deleted before the
homeoption is updated to prevent a leftover settings file (#279) - Update
cache_enabler_bypass_cachefilter hook default value to allow a complete override (#277) - Update cache size transient to be in real time (#237 and #269)
- Update cache expiry time to always be a non-negative integer (#265)
- Update WP-CLI
clearsubcommand (#261) - Update required WordPress version from 5.1 to 5.5 (#260)
- Update plugin upgrade process to improve reliability and compatibility (#260)
- Update getting the cache file path to improve creating cache files (#256)
- Update HTML5 doctype check to be less strict (#254)
- Update permalink structure handling (#251 and #263)
- Update requirements check to improve notices shown (#249 and #260)
- Update cache clearing structure to enhance the automatic cache clearing actions (#247)
- Add WP-Cron event to clear the expired cache on an hourly basis (#237, #268, and #281)
- Add new cache clearing structure for option actions (#272 and #280)
- Add cache engine restart support (#271 and #278)
- Add
constants.phpfile to plugin directory to allow constant overrides (#260) - Add wildcard cache clearing support (#246)
- Add Brotli compression support (#243 @nlemoine)
- Add new cache clearing structure for term actions (#234 @davelit)
- Add cache iterator to improve cache object handling (#237)
- Fix WebP URL conversion edge case (#275)
- Deprecate
cache_enabler_clear_site_cache_by_blog_idandcache_enabler_clear_page_cache_by_post_idaction hooks in favor of replacements (#247 and #274)
1.7.2
- Update string to be translatable (#235 @timse201)
- Add
cache_enabler_mkdir_modefilter hook (#233)
1.7.1
- Fix directory creation handling (#221 @stevegrunwell)
1.7.0
- Update cache clearing for theme, plugin, post, and upgrade actions (#215 and #216)
- Update cache handling with cache keys (#211)
- Update settings file deletion handling (#205)
- Update output buffer handling (#203)
- Update removing CSS and JavaScript comments during HTML minification (#202)
- Update WebP URL conversion for installations in a subdirectory (#198)
- Add
CACHE_ENABLER_DIRas definable plugin directory constant (#195 @stevegrunwell) - Add explicit directory access permissions (#194 @stevegrunwell)
- Add exclusive lock when writing files (#191 @nawawi)
- Fix clear cache request handling (#212)
- Fix getting
wp-config.php(#210 @stevegrunwell)
1.6.2
- Fix removing CSS and JavaScript comments during HTML minification (#188)
1.6.1
- Update requirements check (#186)
- Update cache clearing behavior for comment actions (#185)
- Update HTML minification to remove CSS and JavaScript comments (#184)
- Update site cache clearing behavior for multisite networks to ensure cache cleared action hooks are fired when using WP-CLI or clear cache action hooks (#180)
- Add
cache_enabler_convert_webp_attributesandcache_enabler_convert_webp_ignore_query_stringsfilter hooks (#183) - Fix cache clearing behavior on WooCommerce stock update (#179)
1.6.0
- Update cache clearing behavior for multisite networks when permalink structure has changed to prevent unnecessary cache clearing (#170)
- Update cache clearing behavior for comment actions to prevent unnecessary cache clearing (#169)
- Update output buffer timing to start earlier on the
advanced-cache.phpdrop-in instead of theinithook (#168) - Update plugin upgrade handling (#166)
- Add
cache_enabler_clear_complete_cache,cache_enabler_clear_site_cache,cache_enabler_clear_site_cache_by_blog_id,cache_enabler_clear_page_cache_by_post_id,cache_enabler_clear_page_cache_by_url,cache_enabler_complete_cache_cleared,cache_enabler_site_cache_cleared, andcache_enabler_page_cache_clearedaction hooks (#170) - Add
cache_enabler_user_can_clear_cache,cache_enabler_exclude_search,cache_enabler_bypass_cache,cache_enabler_page_contents_before_store,cache_enabler_page_contents_after_webp_conversion,cache_enabler_minify_html_ignore_tagsfilter hooks (#170) - Add site cache clearing behavior (#167)
- Fix requirement notices being shown to all users (#170)
- Fix setting up new site in multisite network when new site is added outside of the admin interface (#170)
- Fix getting cache size for main site in subdirectory network (#164)
- Fix deleting cache size transient (#164)
- Fix cache clearing (#164 and #167)
- Fix clear cache request validation
- Deprecate
ce_clear_cache,ce_clear_post_cache,ce_action_cache_cleared, andce_action_cache_by_url_clearedaction hooks in favor of replacements (#170) - Deprecate
user_can_clear_cache,bypass_cache,cache_enabler_before_store,cache_enabler_disk_webp_converted_data, andcache_minify_ignore_tagsfilter hooks in favor of replacements (#170)
1.5.5
- Update advanced cache to prevent potential errors (#161)
- Update getting settings to create settings file if cache exists but settings file does not (#159)
- Fix getting settings file edge cases (#158)
- Fix cache expiry
1.5.4
- Update default query string exclusion (#155)


