Cache Enabler: An Easy-to-Set-Up WordPress Caching Plugin

Affiliate disclosure v3.1
Affiliate disclosure v3.2 (mobile)
Test environment CloudwaysDebian 12Nginx + ApacheCache Enabler 1.8.17Checked 2026-10-18

With Cache Enabler installed on WordPress on a Cloudways server and activated with the settings screen's default values, the median time to first byte for logged-out requests dropped from 220.9ms to 55.1ms.

Once a WordPress site's plugin count passes a certain point, slowdowns can set in. It is not easy to find plugins that satisfy both features and performance, and speed problems can lead to visitors leaving, and penalties in technical SEO.

That is why caching plugins have become a must rather than an option.

Among them, Cache Enabler from KeyCDN is a free caching plugin that is easy to set up, and one of the plugins many website owners choose when they first start with WordPress.

Cache Enabler is a proven caching plugin with more than 100,000 active installations and a rating of 4.3 out of 5. Its settings fit on a single page, so even beginners can use it easily, and it offers only the core features, such as HTML minification and WebP support.

✅ Installing Cache Enabler

In the WordPress admin, go to [Add New Plugin], search for Cache Enabler and install the plugin.

🧭 Cache Enabler installation and settings simulator
Caching pluginPath simulator
📍Plugins›Add Plugin
Install the plugin
Type Cache Enabler in the search box, click [Install Now], and when the installation finishes, click [Activate].
📍Settings›Cache Enabler›Cache Behavior
Cache behavior
Check [Cached pages expire] and enter an expiry time; an interval of 8–10 hours is recommended.
📍Settings›Cache Enabler›Cache Exclusions
Cache exclusions
These fields take the post IDs, page paths, query strings, and cookies to exclude from the cache; when you're done, click [Save Changes].
example.com/wp-admin/plugin-install.php
Add Plugins Upload Plugin
Plugins extend and expand the functionality of WordPress. You may install plugins from the WordPress Plugin Directory right on this page, or upload a plugin in .zip format by clicking the button above.
Search ResultsFeaturedPopularRecommendedFavorites
Search PluginsKeyword
162 items
Cache Enabler
Installing...ActiveMore Details
A lightweight caching plugin for WordPress that makes your website faster by generating static HTML files.
By KeyCDN
★★★★★ (139)
Last Updated: 3 weeks ago
100,000+ Active Installations
✓ Compatible with your version of WordPress
example.com/wp-admin/options-general.php?page=cache-enabler
Clear Site Cache
Cache Enabler Settings
Combine Cache Enabler with KeyCDN for even better WordPress performance and achieve the next level of caching with a CDN.
Cache Behavior
Expiration
Cached pages expirehours after being created.
Clearing
Clear the site cache if any post type has been published, updated, or trashed (instead of the post cache).
Clear the site cache if a comment has been posted, updated, spammed, or trashed (instead of the comment cache).
Clear the site cache if a term has been added, updated, or deleted (instead of the term cache).
Clear the site cache if a user has been added, updated, or deleted (instead of the user cache).
Clear the site cache if a plugin has been activated or deactivated.
Versions
Create a cached version for WebP support. Convert your images to WebP with Optimus.
Create a cached version for mobile devices.
Create a cached version pre-compressed with Gzip.
Minification
Minify HTML in cached pages excluding inline CSS and JavaScript.
Cache Exclusions
Post IDs
 
Post IDs separated by a , that should bypass the cache.
Example: 2,43,65
Page Paths
 
A regex matching page paths that should bypass the cache.
Example: /^(\/|\/forums\/)$/
Query Strings
 
A regex matching query strings that should bypass the cache.
Example: /^nocache$/
Default if unset: /^(?!(fbclid|ref|mc_(cid|eid)|utm_(source|medium|campaign|term|content|expid)|gclid|fb_(action_ids|action_types|source)|age-verified|usqp|cn-reloaded|_ga|_ke)).+$/
Cookies
 
A regex matching cookies that should bypass the cache.
Example: /^(comment_author|woocommerce_items_in_cart|wp_woocommerce_session)_?/
Default if unset: /^(wp-postpass|wordpress_logged_in|comment_author)_/
Save Changes and Clear Site Cache
Click an enabled item in the left menu or a button on the screen.

✅ Cache Enabler Settings

🔲 Cache Behavior

◻️ Expiration

  • ⌛Cached pages expire 0 hours after being created (0 = no expiry)
  • ↳ An expiry interval of 8–10 hours is recommended.
  • ↳ Why:
  • ➝ Even if content rarely changes, the theme, widgets and external resources (JS/CSS) can still change
  • ➝ Keeps the server load low while regular cache refreshes keep pages up to date
  • ➝ If the cache is kept for a long time, refreshes are missed and outdated pages may be shown

◻️Clearing

  • 🗑️ Automatically clears the entire site cache when any of the following events occurs.
  • ↳ Post types
  • ➝ On post publishing, editing, moving to the trash (not just the post's own cache, but the entire site cache is cleared)
  • ↳ Comments
  • ➝ On comment writing, editing, marking as spam, or deletion (trash)
  • ↳ Terms
  • ➝ When terms such as categories or tags are added, edited or deleted.
  • ↳ Users
  • ➝ When users are added, edited or deleted.
  • ↳ Plugins
  • ➝ When a plugin is activated or deactivated.

◻️Versions

  • 🗂️ Creates different cache versions depending on the environment.
  • ↳ Create a WebP version
  • ➝ Creates a separate cache for WebP image support
  • ※ With the Optimus plugin, images can be converted to WebP automatically
  • ↳ Create a mobile cache version
  • ➝ A page cache just for mobile devices is created separately
  •  (useful when the HTML differs between PC and mobile)
  • ↳ Create a Gzip-compressed cache
  • ➝ For faster server responses, Gzip pre-compressed cache creation

◻️Minification

  • 🧾 Minifies inline code (CSS and JavaScript) in the HTML to reduce file size.
  • ↳ Compresses HTML and inline CSS and JS, removing unnecessary spaces and line breaks
  • ➝ Helps pages load faster
  • ➝ External CSS/JS files are not included (the plugin only processes code inside the HTML)

When CSS and JavaScript files are minified, some tables or slider features may break or not appear at all, depending on the plugins you use.

This is because script dependencies or the DOM loading order get distorted, and block-based or page builder plugins such as Genesis Blocks, Spectra, Elementor, Beaver Builder, and WPBakery may end up with broken layouts or faulty interactive features.

Whichever caching plugin you use, errors that make things work incorrectly can occur depending on your blocks or page builder, so testing after inline code compression is a must whenever you use a caching plugin.

🔲 Cache Exclusions

  • 🚫 You can set it to bypass the cache when certain conditions are met.
  • ↳ Post IDs
  • ➝ Enter the IDs of the posts to exclude from the cache separated by commas (e.g. 2,43,65)
  • ↳ Page Paths
  • ➝ Bypasses the cache by URL path, with regular expressions (RegEx) in use
  • Example: /^(\/|\/forums\/)$/
  • ↳ Query Strings
  • ➝ Bypasses the cache when specific URL parameters are present
  • ↳ Cookies
  • → Excludes the cache in cases such as comment authors or WooCommerce carts

✅ Speed Test

We installed Cache Enabler 1.8.17 on WordPress on a Cloudways test server and measured speed by the time to first byte (TTFB) of the home page. For each state — no caching plugin, Cache Enabler defaults, and the settings screen values in this post — we sent logged-out requests in two rounds of 10 and compared the medians.

📊Time to first byte before and after Cache EnablerMedian · 20 requests
No caching pluginCache Enabler enabled
Home page time to first byte (TTFB)
Median of 20 logged-out requests per state, sent in two rounds of 10. The requests included the same Accept header a browser sends.
060120180240ms
No cache220.9msNo caching plugin
Default55.1msCached responses 20/20
Settings screen values49.8msCached responses 20/20
Figures measured on a Cloudways test server on October 18, 2026.

The time to first byte, 220.9ms without a caching plugin, dropped to 55.1ms and 49.8ms once Cache Enabler was enabled. In both states, all 20 requests were answered from the cache file, and since the settings screen values in this post are the defaults with every option disabled, the third state uses the same settings as the defaults.

The time to first byte is read from curl's [time_starttransfer] value. The first request right after clearing the cache was excluded because it is the one that creates the cache file, and 10 requests were sent at 1-second intervals with the same Accept header a browser sends.

for i in $(seq 1 10); do curl -o /dev/null -s -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' -w '%{time_starttransfer} dns=%{time_namelookup} connect=%{time_connect} tls=%{time_appconnect} code=%{http_code} size=%{size_download}\n' https://example.com/; sleep 1; done
0.044486 dns=0.000822 connect=0.003370 tls=0.020494 code=200 size=69959
0.071422 dns=0.000931 connect=0.003773 tls=0.031606 code=200 size=69959
0.070819 dns=0.001895 connect=0.004429 tls=0.031945 code=200 size=69959
0.071406 dns=0.000864 connect=0.003669 tls=0.032210 code=200 size=69959
0.069090 dns=0.000730 connect=0.003313 tls=0.033588 code=200 size=69959
0.054738 dns=0.001762 connect=0.004164 tls=0.023497 code=200 size=69959
0.060193 dns=0.000968 connect=0.003666 tls=0.031874 code=200 size=69959
0.057628 dns=0.000701 connect=0.003082 tls=0.030156 code=200 size=69959
0.061533 dns=0.000578 connect=0.003010 tls=0.025478 code=200 size=69959
0.079976 dns=0.000556 connect=0.003346 tls=0.029491 code=200 size=69959

The output above is the second round with Cache Enabler at its defaults. Each request opens a new connection, so the time up to the TLS connection in the [tls] column is also included in the time to first byte.

If the time to first byte measured with curl doesn't drop, that doesn't mean Cache Enabler isn't working. Cache Enabler neither creates nor serves cache files for requests whose Accept header lacks [text/html].

for i in $(seq 1 10); do curl -o /dev/null -s -w '%{time_starttransfer} dns=%{time_namelookup} connect=%{time_connect} tls=%{time_appconnect} code=%{http_code} size=%{size_download}\n' https://example.com/; sleep 1; done
0.251081 dns=0.005972 connect=0.009569 tls=0.042509 code=200 size=69876
0.205716 dns=0.000560 connect=0.003334 tls=0.022671 code=200 size=69876
0.229798 dns=0.000759 connect=0.003258 tls=0.031652 code=200 size=69876
0.230230 dns=0.001500 connect=0.004246 tls=0.032241 code=200 size=69876
0.189573 dns=0.000645 connect=0.003234 tls=0.030598 code=200 size=69876
0.227845 dns=0.000759 connect=0.003265 tls=0.030934 code=200 size=69876
0.208334 dns=0.001538 connect=0.003971 tls=0.021570 code=200 size=69876
0.229638 dns=0.000571 connect=0.002924 tls=0.020581 code=200 size=69876
0.214610 dns=0.000575 connect=0.003165 tls=0.020606 code=200 size=69876
0.217078 dns=0.000610 connect=0.003252 tls=0.022737 code=200 size=69876

Without the Accept header, curl sends its default [Accept: */*], and even in the same default state the time to first byte was 0.19–0.25 seconds. The response size was also 69,876 bytes, without the one-line Cache Enabler comment.

curl -s -o /dev/null -D - -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' https://example.com/
HTTP/2 200
server: nginx
date: Sat, 17 Oct 2026 23:32:11 GMT
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
vary: Accept-Encoding
x-cache-handler: cache-enabler-engine

Browsers include [text/html] in the Accept header when they open a page, so logged-out visitors get the cache file. Requests answered from the cache file get an added [x-cache-handler: cache-enabler-engine] header.

Cache Enabler only handles GET requests, so if you send a HEAD request as with [curl -I], this header won't appear even when a cache file exists.

✅ Overall Assessment

MetricNo caching pluginCache Enabler defaultsNotes
Median time to first byte220.9ms55.1msAbout 75% shorter
Share under 150 ms0% (0/20)100% (20/20)Max 123.1ms after
Cache file responses0/2020/20Response header [x-cache-handler]
Median for curl's default request203.3ms222.5ms[Accept: */*] · cache file responses 0/20

Simply activating Cache Enabler, with the 16 options on its settings screen left at their defaults, was enough for it to answer logged-out visitors' page requests from cache files. The time to first byte was in the 50ms range, about a quarter of what it was without a caching plugin.

The Cache Enabler settings screen has no option for minifying external CSS and JavaScript files, so the next step is setting up an optimization plugin.

🔢 FAQ & Recommended Content

[Clear Site Cache] in the admin bar deletes the cache for the whole site, and [Clear Page Cache], shown while a page is open on the front end, deletes the cache for that page only. On a server, use the WP-CLI command [wp cache-enabler clear]. On the Cloudways test server, it printed [Success: Site cache cleared.] and the cache folder was deleted.

Deactivating it deletes [wp-content/advanced-cache.php], the settings file, and the cache files, and also removes the [WP_CACHE] definition from [wp-config.php]. It was the same on the Cloudways test server, while the database option [cache_enabler] that holds the settings remained. According to the official documentation, this option is deleted when you delete the plugin.

Cache Enabler doesn't serve cache files to requests that carry the login cookie (wordpress_logged_in). The comment author (comment_author) and password-protected post (wp-postpass) cookies are on the same default exclusion list. The official documentation also advises checking caching while logged out, via the Cache Enabler comment at the end of the page source.

🧭 Related caching plugin posts 15 posts
🗂️ Caching plugins
📝 Cache and optimization plugins 📝 W3 Total Cache 📝 WP Super Cache 📄 Cache Enabler 📝 WP Fastest Cache 📄 WP Rocket settings guide 📝 WP OPcache plugin
📄 WP Rocket speed test 📝 W3 Total Cache speed test
📄 Perfmatters guide 📝 Autoptimize 📝 Clearfy Cache 📄 IMAGIFY settings
📋 Cache: definition and all fields 📄 Website cache & server-side cache
No search results.

ℹ️ Affiliate Disclosure
This site's content contains affiliate links. When a visitor buys a product or service through one of them, the site receives a commission from the seller. The amount the buyer pays(it goes down during event discounts ↓)does not go up. Posted prices, discounts, and stock reflect the time of writing and may differ, so confirm with the seller before buying. Products are chosen and reviewed by our own standards, and commissions do not affect the order or content of reviews.

Leave a Reply

Your email address will not be published. Required fields are marked *

Prove your humanity: 0   +   5   =