WordPress plugin intelligence profile

Flexa Cache

Page cache, Redis object cache, and front-end optimization: static HTML before WordPress boots plus a persistent object cache, zero configuration.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.3.2
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 5.9 · PHP 8.2
Directory statusactive
Last directory update28 Sept 20261mo ago
Active installationsNewAdoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records Flexa Cache version 1.3.2 as active, updated 1mo ago and tested up to WordPress 7.1.

Overview

About this plugin

com has the full user guide, technical reference and benchmark.

Flexa Cache is a WordPress page cache and front-end optimization plugin, with an optional Redis object cache. php drop-in serves that file before WordPress loads, so a cache hit runs no theme, plugin or database code. WP Fastest Cache and W3 Total Cache use the same technique.

It works on Apache and nginx.

What the page cache stores, and what it skips

Only anonymous GET requests for normal front-end pages are cached. These are always served live and never stored:

  • Logged-in users (always, whatever the settings say), and visitors with a comment-author or post-password cookie
  • WooCommerce cart, checkout and account pages, and any visitor with items in the cart or a WooCommerce session
  • URLs with a query string, and any request that is not GET (form posts, for example)
  • wp-admin, admin-ajax.php, the REST API ( /wp-json/ ), WP-Cron, feeds, search results, previews, 404 pages and password-protected posts
  • Pages that define DONOTCACHEPAGE
  • Anything on your own exclusion lists: URLs, cookies and user agents. A new install starts with /cart, /checkout and /my-account in the URL list.

Cached files have no expiry time. They are replaced when one of the events below clears them.

When the cache is cleared

  • Publishing, updating, trashing, unpublishing or deleting a post clears that post’s page, the home page, the post type archive, its category, tag and other term archives, its author archive and its date archives, including their paginated pages. When a slug changes, the old address is cleared too.
  • Adding or removing a category or tag on a published post clears both the old and the new term archive.
  • A new, edited or re-moderated comment clears its post.
  • Saving a WooCommerce product or changing its stock clears the product page.
  • Switching theme, saving the Customizer, editing a menu or moving widgets clears everything.
  • Saving settings with a changed exclusion list, or turning the page cache or the master switch off and on, clears everything.
  • Updating Flexa Cache clears everything once, so pages built by the old version are not kept.
  • You can clear one URL or everything from the admin screen, WP-CLI or the REST API. If “Preload” is on, a full clear is followed by a crawl that rebuilds the cache.

Turning things off

Every feature has its own switch. “Enable page cache” only controls the page cache: with it off, the optimizations, widget cache and object cache you turned on keep running. To stop everything at once, turn off Enable Flexa Cache, the master switch at the top of General Settings.

htaccess rules and the object cache drop-in, and nothing is cached or optimized. Your other settings stay saved, so turning the master switch back on restores them as they were.

Host and CDN caches

Flexa Cache only manages its own files. It does not purge Cloudflare, Varnish, LiteSpeed, Nginx FastCGI cache or a managed host’s server cache. It does detect them (along with other caching plugins) and shows a warning on the Cache screen and in Site Health.

If another layer caches your HTML, either turn one of them off or clear that layer after you publish changes; otherwise it can keep serving pages Flexa Cache has already cleared.

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/allowed_hosts, 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

External services

Caching and optimization run entirely on your own server. The plugin connects to one external service, and only in the admin, for the reason below.

Deactivation feedback (Flexa Product Intelligence)

When you go to deactivate Flexa Cache on the Plugins screen, a short optional survey asks why. com. php, never on the front end, and never blocks or delays deactivation.

  • What is sent, and when: on opening the Plugins screen, a request to /api/v1/config (the product slug and tier) loads the survey configuration, cached for 6 hours. When you deactivate or interact with the survey, the reason you pick and any optional message you type are sent to /api/v1/deactivations, /api/v1/events, /api/v1/feedback, /api/v1/feature-requests, and /api/v1/recovery-events. If you later reactivate the plugin, a single /api/v1/recovery-events request records the reactivation and how long the plugin was inactive.
  • What is included: an anonymous per-site identifier (a random UUID), the plugin version and tier, and by default your WordPress/PHP version and locale. No email, site domain, user identity, or raw IP is collected.
  • Opt out: turn the environment data off with add_filter( 'flexa_cache/deactivation_survey/config', fn( $c ) => array( 'collect_environment' => false ) + $c );, or disable the whole survey with add_filter( 'flexa_cache/deactivation_survey/enabled', '__return_false' );.

com/pages/privacy

WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • object cache
  • page cache
  • performance
  • redis
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 5.9 · PHP 8.2
Update activity28 Sept 20261mo ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

Version1.3.11.3.2
Version1.3.01.3.1
WordPress compatibility7.1.17.1.2
Version1.2.01.3.0
WordPress compatibility7.17.1.1
Version1.1.21.2.0
Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.