Title: Flexa Cache
Author: FlexaTech
Published: <strong>12. juuli 2026</strong>
Last modified: 13. aug 2026

---

Search plugins

![](https://ps.w.org/flexa-cache/assets/banner-772x250.png?rev=3604442)

![](https://ps.w.org/flexa-cache/assets/icon-256x256.png?rev=3604442)

# Flexa Cache

 By [FlexaTech](https://profiles.wordpress.org/flexatech/)

[Download](https://downloads.wordpress.org/plugin/flexa-cache.1.1.1.zip)

 * [Details](https://et.wordpress.org/plugins/flexa-cache/#description)
 * [Reviews](https://et.wordpress.org/plugins/flexa-cache/#reviews)
 *  [Installation](https://et.wordpress.org/plugins/flexa-cache/#installation)
 * [Development](https://et.wordpress.org/plugins/flexa-cache/#developers)

 [Support](https://wordpress.org/support/plugin/flexa-cache/)

## Description

Flexa Cache is a full-featured WordPress page-cache and front-end optimization plugin.
It installs a self-contained `advanced-cache.php` drop-in that serves compressed
static HTML files before WordPress even loads — the same technique used by WP Fastest
Cache and W3 Total Cache — giving you maximum TTFB improvement on both Apache and
nginx hosts.

**Page Cache**

 * Static HTML cache served by a pre-WordPress drop-in (no PHP/MySQL on cache hits)
 * Gzip pre-compressed `.gz` files served natively
 * Separate mobile cache variant (`index-mobile.html`) when Mobile Theme is enabled
 * Smart invalidation: purge on new post, updated post, comments, theme/menu/widget
   changes, and WooCommerce product/stock updates
 * Per-URL cache purge from the admin UI, WP-CLI, or REST API
 * Cache preloader via Action Scheduler (or WP-Cron fallback) with start/cancel/
   status controls
 * Widget output cache with O(1) versioned-key invalidation

**Front-End Optimization**

 * Minify HTML (whitespace collapse) and Minify HTML Plus (inline CSS/JS trim)
 * Minify CSS and Minify CSS Plus (deeper punctuation squeeze)
 * Combine CSS — adjacency-only buffer fusion preserving cascade order
 * Combine JS / Combine JS Plus — concatenate header and footer scripts
 * Gzip — mod_deflate `.htaccess` block for dynamic (non-cached) responses
 * Browser Caching — Expires/Cache-Control `.htaccess` block
 * Disable Emojis — remove WordPress emoji scripts, styles, and DNS prefetch
 * Lazy Load — native `loading="lazy"` + `decoding="async"` on images and iframes
 * Render Blocking JS — add `defer` to render-blocking scripts
 * Google Fonts Async — rewrite Google Fonts `<link>` to preload + `onload` swap
   with `<noscript>` fallback
 * Delay JS — neutralise non-critical external scripts until first user interaction
   or 7-second idle fallback

**Developer-Friendly**

 * WP-CLI: `wp flexa-cache clear [--url=<url>]`, `wp flexa-cache status`, `wp flexa-
   cache preload [start|status|cancel]`
 * REST API: `/flexa-cache/v1/cache/purge`, `/cache/stats`, `/cache/preload`
 * Filterable hooks: `flexa_cache/engine/is_cacheable`, `flexa_cache/engine/buffer`,`
   flexa_cache/store/dir`, `flexa_cache/purged`, `flexa_cache/settings/languages`,
   and more
 * Kill switch: `?flexa_cache_optimize=0` disables optimization for a single admin
   request
 * Exclusion lists for URLs, cookies, user agents, CSS handles, and JS handles

**Object Cache (Redis)**

 * Persistent Redis object cache: caches WordPress options, transients, and post/
   term/user meta and query results across requests, cutting database load
 * Installs a self-contained `object-cache.php` drop-in with an in-memory L1 + Redis
   L2 layout
 * One-click enable/disable and a “Test & save connection” form that writes the 
   config to `wp-config.php` (secrets never touch the database)
 * Crash-safe by design: if Redis becomes unreachable the site keeps running (degrades
   to in-memory) with an admin notice and a circuit breaker — never a white screen
 * Serializers (PHP, igbinary, JSON, msgpack) and compression (LZ4, Zstd, LZF), 
   key prefetch, and alloptions splitting
 * Live analytics: hit-ratio / operations / memory charts, a per-group key table,
   Query Monitor panel, and WP-CLI (`analytics`, `watch`, `groups`, `slowlog`)
 * Multisite aware, with per-site and network flush scopes
 * Advanced Redis topologies — Cluster, Sentinel, Replicated (master/replica), and
   the Relay/Predis clients — are available through the separate **Flexa Cache Pro**
   add-on

**Source code for compiled JavaScript and CSS**

The plugin ships a compiled admin UI in `assets/dist/`. The human-readable
 source(`
apps/admin/src`) and the build tooling are publicly available at:

https://github.com/flexatech/flexa-cache

The admin UI is built with npm and Vite:

 1. `npm install`
 2. `npm run build` (or `npm run dev` for a watched dev build with HMR)

## Installation

 1. Upload the plugin files to `/wp-content/plugins/flexa-cache`, or install through
    the WordPress **Plugins** screen.
 2. Activate the plugin through the **Plugins** screen.
 3. Open **Flexa Cache** from the admin sidebar (located below Settings).
 4. Enable the **Cache System** toggle and click **Save Settings**.

**After a plugin update:** deactivate and reactivate Flexa Cache once so the `advanced-
cache.php` drop-in is refreshed. This step is only needed after an update that changes
the drop-in — the release notes will say so when it applies.

## FAQ

### How does the page cache work?

On activation, Flexa Cache installs an `advanced-cache.php` drop-in into `wp-content/`
and adds `define('WP_CACHE', true)` to `wp-config.php`. On the next uncached request,
the plugin generates a static HTML file. Every subsequent request for that URL is
served directly from the file — no PHP execution, no database query.

### Does Flexa Cache work with WooCommerce?

Yes. Cart, checkout, and account pages are automatically excluded from the cache.
The cache is also purged when a product’s stock level or price changes.

### Does it work on nginx?

The static file cache works on any server (the drop-in uses PHP `readfile()`). The
Gzip and Browser Caching toggles write Apache `.htaccess` rules; the plugin’s class
docblocks include the nginx equivalent snippets for hosts that need them.

### How do I clear the cache?

Click **Delete Cache** in the Flexa Cache settings page, use `wp flexa-cache clear`
from the command line, or call `POST /wp-json/flexa-cache/v1/cache/purge`. To clear
a single URL, use the per-URL input in the Cache Stats panel or `wp flexa-cache 
clear --url=https://example.com/page/`.

### What does “Minify JS” do?

The Minify JS toggle is a documented safe no-op when used alone. JavaScript is only
ever concatenated (via Combine JS), never minified in isolation — the plugin ships
no JS parser. If you want JS minification, enable Combine JS together with Minify
JS.

### Will it conflict with other caching plugins?

Flexa Cache checks for a foreign `advanced-cache.php` on activation and refuses 
to overwrite it. If you already have a caching plugin installed, deactivate it and
remove its drop-in before activating Flexa Cache.

### Where are the plugin settings?

In the WordPress admin sidebar, click **Flexa Cache** (located below Settings). 
Settings are organised into five sections: Cache, Invalidation, Performance, Exclusions,
and Danger Zone.

### What is the Object Cache and do I need Redis?

The Object Cache is a persistent store for WordPress’s internal data (options, transients,
meta, query results) that normally lives in the database. Backing it with Redis 
means those lookups are served from memory across requests, which reduces database
load — especially on WooCommerce and other dynamic sites. It requires a reachable
Redis server and the PHP `redis` extension. It is independent of the page cache;
you can run either or both.

### What happens if Redis goes down?

Nothing breaks. Flexa Cache detects the failure mid-request, serves from its in-
memory layer for the rest of the request, and opens a short-lived circuit breaker
so the next requests do not stampede a dead server. An admin notice and a Site Health
warning appear, and the cache recovers automatically once Redis is back.

### Does enabling the Object Cache store my Redis password in the database?

No. The connection settings (including the password) are written to a marked block
in `wp-config.php`, never to the options table, and the password is masked in every
diagnostic, REST, and CLI output.

### Can I use Redis Cluster, Sentinel, or Relay?

Those advanced topologies (Cluster, Sentinel, Replicated master/replica, and the
Relay/Predis clients) ship in the separate **Flexa Cache Pro** add-on. The free 
plugin covers a single Redis server, which suits the large majority of sites.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Flexa Cache” is open source software. The following people have contributed to 
this plugin.

Contributors

 *   [ FlexaTech ](https://profiles.wordpress.org/flexatech/)

[Translate “Flexa Cache” into your language.](https://translate.wordpress.org/projects/wp-plugins/flexa-cache)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/flexa-cache/), check
out the [SVN repository](https://plugins.svn.wordpress.org/flexa-cache/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/flexa-cache/) by
[RSS](https://plugins.trac.wordpress.org/log/flexa-cache/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.1

 * Fix: Delay JS / Render-Blocking JS / Combine JS no longer break scripts that 
   carry inline code. A script with `wp_add_inline_script()` before/after data (
   most visibly WordPress core’s `wp-i18n`, whose after-script calls `wp.i18n.setLocaleData()`)
   is now left un-delayed, un-deferred, and un-combined, because that inline companion
   runs at parse time and would otherwise throw “wp is not defined”. The Combine
   JS path recovers the handle from the tag’s `id` attribute so it can protect the
   same scripts even though it operates on the rendered buffer. This also resolves
   knock-on breakage of scripts that depend on those globals.
 * Fix: the admin-bar “Flexa Cache” submenu no longer stays hidden on hover when
   JS optimization is enabled. The WordPress toolbar script depends on `hoverintent-
   js`; Combine JS / Delay JS / Render-Blocking now auto-exclude it alongside `admin-
   bar` (it was previously left in), so the submenu opens reliably.
 * Compatibility: tested and confirmed working with WordPress 7.1. No other code
   changes were required — the admin app loads only on the plugin’s own settings
   screen (not the iframed block editor) and uses no `@wordpress/components`, jQuery
   UI, or block-editor assets affected by 7.1.

#### 1.1.0

 * New: **Object Cache (Redis)** module — a persistent object cache installed as
   an `object-cache.php` drop-in (in-memory L1 + Redis L2). Caches options, transients,
   and meta/query data across requests.
 * New: admin Object Cache tab — status banner, “Test & save connection” (writes`
   wp-config.php`, secrets never in the database), metrics, groups table, and flush
   controls.
 * New: crash-safe resilience — in-request degrade to in-memory, cross-request circuit
   breaker with cooldown, `on_error` policy, and a Site Health check. Redis outages
   never cause a white screen.
 * New: serializers (PHP/igbinary/JSON/msgpack) and compression (LZ4/Zstd/LZF), 
   key prefetch, alloptions splitting, and per-`*-queries` TTL.
 * New: observability — hit-ratio/ops/memory analytics, per-group key table, Query
   Monitor panel, request footnote, and a vendor-neutral `flexa_cache/object_cache/
   trace` hook.
 * New: WP-CLI `wp flexa-cache oc` (`enable`, `disable`, `status`, `flush`, `diagnostics`,`
   analytics`, `watch`, `groups`, `slowlog`, `cli`, `reset`), and REST endpoints
   under `/flexa-cache/v1/object-cache`.
 * New: multisite support with per-site and network flush scopes; TLS, unix socket,
   and ACL (username) connections.
 * Note: advanced Redis topologies (Cluster, Sentinel, Replicated, Relay/Predis)
   are provided by the separate **Flexa Cache Pro** add-on.

#### 1.0.3

 * Cleanup: removed the unused `/ping` starter REST endpoint left over from the 
   plugin scaffold.
 * Docs: the readme source-code section now documents the build tooling (`npm install``
   npm run build`) alongside the public repository link.

#### 1.0.2

 * Fix: CSS minify (aggressive HTML minify and CSS combine) no longer strips whitespace
   around `:`, which previously fused descendant combinators into compound selectors
   before a pseudo-class (`:root :where(…)`  `:root:where(…)`) and silently dropped
   WordPress global-styles rules — most visibly Gutenberg button styles. Whitespace
   around `{ } ; ,` is still collapsed.

#### 1.0.1

 * Security: cache purge, stats, and preload REST endpoints now require the `manage_options`
   capability instead of `upload_files`, so only administrators can trigger site-
   wide cache operations.
 * Hardening: cached widget output is now passed through `wp_kses_post()` before
   it is echoed.
 * Cleanup: removed a dead pre-WordPress-5.7 raw `<script>` fallback in the delay-
   JS loader; the core `wp_print_inline_script_tag()` helper is now always used.
 * CSS/JS combine and minify now rewrite the URL of the stylesheet/script tag WordPress
   already enqueued and printed, instead of emitting a freshly-built tag — preserving
   the original tag attributes.

#### 1.0.0

 * Initial release: page cache drop-in, 23 optimization toggles, WP-CLI, REST API,
   cache preloader, widget cache, mobile theme cache, i18n-ready.

## Meta

 *  Version **1.1.1**
 *  Last updated **3 tundi ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.9 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.2 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/flexa-cache/)
 * Tags
 * [cache](https://et.wordpress.org/plugins/tags/cache/)[object cache](https://et.wordpress.org/plugins/tags/object-cache/)
   [page cache](https://et.wordpress.org/plugins/tags/page-cache/)[performance](https://et.wordpress.org/plugins/tags/performance/)
   [redis](https://et.wordpress.org/plugins/tags/redis/)
 *  [Advanced View](https://et.wordpress.org/plugins/flexa-cache/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/flexa-cache/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/flexa-cache/reviews/)

## Contributors

 *   [ FlexaTech ](https://profiles.wordpress.org/flexatech/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/flexa-cache/)