Features Pricing Reviews FAQ
Get Plugin

What's new in xSpeed

Every release, every fix, every improvement — tracked in one place.

xSpeed Free

v1.0.7

2026-07-02

Improved reliability, granular cache management, Redis compatibility, and asset optimization fixes.

Caching

New Granular cache purge options for Page/Static, CSS/JS, Object Cache, and REST Cache.
Fixed Improved compatibility with previously installed caching plugins.
Fixed Purge All now properly clears optimized assets, object cache, and triggers CDN/edge purges.

Object Cache

Fixed Redis 6+ ACL compatibility for managed hosting environments.
Improved Object cache write verification for better reliability.
Improved Site-specific object cache flushing for shared Redis environments.
Improved Persistent object cache group flushing.

Asset Optimization

Fixed Combined CSS now preserves inline styles and stylesheet order.
Fixed Combined CSS files are regenerated correctly after cache purge.
Fixed Relative asset paths are preserved in optimized CSS.

Dashboard & Admin UX

Fixed Dashboard layout issue with large WordPress admin menus.
Fixed Admin menu and toolbar overlay issues.
Fixed Pro sidebar item ordering.

Migration

Fixed Mobile cache migration compatibility for NGINX static cache.

v1.0.6

2026-06-25

New caching surfaces, conditional settings, Pro warming features, and a large round of QA fixes.

Caching

New REST response cache layer with per-route TTL — repeated REST reads are served from cache instead of re-running the handler.
New Feed, 404, and search-results caching seams — feeds replay their content-type, cacheable 404s share one per-host entry, and search pages cache per normalized term (opt-in).
New xspeed_should_cache write-side filter so add-ons can opt requests in or out of the cache.
New Maintenance-aware serving — the cache stands down (via a drop-in sentinel) while the site is in maintenance, so visitors never get a stale "we'll be right back" page cached.
Improved Query-form feeds (/?feed=rss2) and conditional GET now return 304 Not Modified for unchanged responses, saving bandwidth for aggregators.
Fixed The PHP serve path and drop-in now honor the per-entry .meta (status, content-type, TTL) on every fast path, so cached 404s/feeds serve correctly.
Fixed The cache drop-in is version-stamped, so serve-logic changes reach existing sites on update instead of running stale.
Fixed Cache is purged when a user or term changes, not just on post edits.

Settings

New Conditional fields — settings can declare dependsOn (with AND/OR groups) so dependent options only show/enable when their parent is on.
Fixed Out-of-schema option keys (e.g. a module's stored entries) are preserved across schema-driven saves, preventing silent data loss.
Fixed media fields validate that the value is an image URL, so a non-image/malformed URL can't be stored and render as a broken image.

White-label

Fixed The "footer credit" and "hide help links" controls now actually take effect (on the Help & Support panel) instead of being inert.
Fixed A deleted/404 brand-logo image falls back to the built-in mark instead of showing a broken image.

Migration

New One-Click Profiles and Save & Share surfaced in the Migration panel, with a friendlier import/preview UX.
Fixed Only enabled source-plugin settings are counted and imported.

Reliability

Fixed Module REST callbacks can no longer leak a database error, stray output, or an uncaught exception into a JSON response (which previously broke a panel with "Unexpected token '<'"); errors are contained and logged, and the response stays valid JSON.

Admin UX

New Opt-in usage analytics (WP Insights) — nothing is sent without explicit consent; helps prioritize what to build next.
Improved Sidebar grouping cleanup, conditional Pro ordering, and deep-link/scroll behavior for submenu navigation.
Improved Pro upgrade links now point to the pricing page.

Pro (requires xSpeed Pro)

New Predictive Cache Warming and Scheduled Cache Prewarming are wired into the dashboard — warm your hottest or about-to-be-popular URLs on a schedule.
New Brotli compression (served where supported, GZIP fallback) via the new compression extension seam.

v1.0.5

2026-06-18

Migration into Free, white-label onboarding, LiteSpeed cache ownership & accurate hit counting.

Migration

New One-click migration from other caching plugins (LiteSpeed Cache, WP Rocket, W3 Total Cache, etc.) is now part of the Free plugin — import your existing exclusions and settings on activation instead of starting from scratch.

LiteSpeed

Fixed On LiteSpeed/OpenLiteSpeed, xSpeed now tells LSCache to stand down (X-LiteSpeed-Cache-Control: no-cache) and owns the cache itself, so the X-XSpeed-Cache header is emitted, hits are counted, and the dashboard no longer falsely reports a PHP fallback.
Fixed LiteSpeed cache hits route through the drop-in (which both tags and counts them) since OpenLiteSpeed's .htaccess can't tag or log a static hit — giving consistent ~1ms hits and an accurate hit ratio.

Cache hit counting & stats

Fixed Hit/miss counters moved off transients onto a persistent option, so they no longer evaporate when a non-persistent object cache (e.g. an unreachable Redis) is active — the hit ratio was getting stuck at a fake 0%/100%.
Fixed Cache MISSes are now recorded inline so the hit-ratio stat reflects reality instead of being pinned at 100%.
Fixed PHP-served cache HITs are counted correctly and the drop-in device-bucket desync is resolved.
Fixed Homepage now caches via the static rewrite (the rule used a pattern that required a non-empty path, so / fell through to PHP while inner pages were rewritten).

Nginx

Fixed A nginx access_log directive in the generated snippet could take down the whole server when its log file was missing; the path is now resolved lazily so a deleted hits.log can't fail nginx -t.
Fixed The dashboard's nginx server-block snippet now updates optimistically when you toggle cache, instead of showing the pre-toggle state, and the wizard's Done step shows the post-apply block.

Admin UX

New Collapsible sidebar groups for cleaner navigation.
Improved Renamed the "Cache" module label to "Page Cache" for clarity.
Improved Sidebar group icons and chevrons brighten correctly on hover (white in dark mode).

Module fixes

Fixed Lazy Load — four correctness bugs resolved.
Fixed Heartbeat — editor-context detection, CLI set support, and honest frontend copy.
Fixed Database cleaner — expired-transient cleanup gaps and a count mismatch.
Fixed Google Fonts — no longer double-appends display=swap on entity-encoded hrefs.
Fixed Settings now strictly validate boolean fields instead of casting, preventing bad values from silently becoming true/false.
Fixed Object Cache — core option groups marked non-persistent so the drop-in can always be deactivated; degraded backends detected honestly.
Improved Static-rewrite SSL probe verifies the certificate and no longer blocks admin page loads.

v1.0.4

2026-06-14

One-click object cache, parity exclusions & admin polish.

Object Cache

New One-click Object Cache setup for Redis and Memcached — tests the connection, installs its own drop-in, and writes the wp-config constants (fully reversible). No drop-in plugin or PHP extension required.
Improved Dashboard now reports a degraded object cache honestly when the drop-in can't reach its backend, instead of implying caching is healthy.

Admin UX

New WP admin submenu now mirrors the in-dashboard navigation, so the menu and dashboard tabs stay in sync.
Improved Settings changes apply live across dashboard navigation — no full page reload needed.
Improved Menu icon now recolors to the active accent state correctly.
Improved Success notifications are anchored to a single consistent position (bottom-center).
Fixed Long panel titles no longer push the subtitle off-screen.
Fixed Number-input spinners render consistently across browsers (Firefox no longer clips the value).

Cache exclusions

New Exclusion lists now ship pre-populated with LiteSpeed / WP Rocket-parity defaults (16 URLs, 20 cookies, 28 query params), so a fresh install caches correctly out of the box.
New Exclusion rules now support regex via a ~ prefix (e.g. ~utm_[a-zA-Z0-9_-]+), alongside glob and substring, with ReDoS guards.

Bug fixes

Fixed Browser Cache no longer emits an "Array to string conversion" warning on multi-valued Cache-Control headers (also clears a false "nginx config required" notice).

License

Fixed Activating a Pro license now unlocks the Pro panels immediately — no full page reload needed.

v1.0.3

2026-06-07

Topology-aware UX, nginx HIT counting, admin polish.

Cache topology & UX

New Topology-aware rewrite banner — the dashboard now detects containerized hosts (xCloud, Kinsta, RunCloud Atomic, etc.) where the $document_root assumption doesn't hold, and tells the user exactly what to expect on their stack instead of silently failing.
New Unified nginx server-block snippet — one consolidated, copy-pasteable snippet (collapsible in the UI) replaces the previous fragmented sections.
New Nginx-served HITs are now counted — a dedicated access_log captures cache hits served directly by nginx (no PHP), so the dashboard "HITs in last 24h" stat is accurate on nginx setups.
New X-XSpeed-Cache response header — cache hits are now visible in the response headers, with a distinct value per serve layer (HIT (nginx) for the fast static path, HIT (php) for the drop-in fallback) so you can confirm a page was cached and tell exactly which layer served it.
Improved Browser Cache notice is topology-aware and renders its snippet in a proper code block.

Admin UX

New Third-party admin notices are suppressed on xSpeed admin screens (page=xspeed* only) — other plugins' "rate us" / promo notices no longer crowd the xSpeed dashboard.
New Aligned sticky title-bar across the sidebar and content panels for a cleaner scroll experience.
Improved Browser Cache + GZIP notices probe-gate themselves — once the underlying issue is resolved, the notice dismisses on its own instead of lingering.

Benchmark

Fixed "Without cache" leg of the dashboard speed test now appends a cache-buster query string. Previously it was hitting the cache and reporting an artificially-fast baseline, making the speedup number look small.

v1.0.2

2026-06-02

Static-rewrite cache, Site Health & Fonts.

Static-rewrite cache + Site Health

New Static-file rewrite path — cached HTML is served directly by Apache / nginx / LiteSpeed, bypassing PHP entirely on cache hits (5-15ms TTFB vs ~85ms via the PHP drop-in).
New .htaccess static-cache block — installed automatically on cache enable, removed cleanly on disable. Block precedes WordPress's own rules so static files match first.
New nginx config snippet — copy-pasteable server { } block surfaced in the dashboard when nginx is detected (PHP can't write nginx config). Avoids the "if is evil" pitfall via a named-location fallback.
New LiteSpeed LSCache coexistence — xSpeed detects LSCache's server-level module and steps back instead of double-caching.
New Active rewrite probe — Health module pings the cache directory and confirms the rewrite is actually serving static bytes (not just present in .htaccess).
New WordPress Site Health integration — Tools → Site Health now lists an xSpeed check covering static-rewrite status + nginx config requirements.
New Persistent banner — Cache panel warns the admin when caching is on but the static-rewrite block isn't engaged (slow fallback path).
New Copy-to-clipboard button on every config-snippet panel (nginx, GZIP, object-cache).

Fonts

New Fonts module — adds font-display: swap to enqueued web fonts so visible text doesn't wait on a slow Google Fonts response, and exposes a preload list for above-the-fold font files.
New FontsModule tests covering the swap rewrite + preload <link> emission.

Improvements & fixes

Improved Server-type detection is cached so CLI / cron contexts see the same server type as web requests.
Improved Drop-in (advanced-cache.php) and WP_CACHE constant are preserved across plugin upgrades; auto-heal hook tightened to admin_init to avoid REST/cron noise.
Improved Plugin Check pass — i18n textdomains, WP_Filesystem coverage, SQL preparation, sanitization, and plugin/readme headers all cleaned up for WordPress.org review.
Fixed nginx snippet rewritten to avoid the try_files trap that broke pretty permalinks.
Fixed Rewrite condition normalized for trailing-slash + non-trailing-slash URLs.
Fixed WP-Rocket-style canonical pattern — server-level conditional rewrite.
Fixed Minify tag-rewrite filters bail in non-frontend contexts (REST / admin / cron).
Fixed wp.org release zip now ships vendor/ — resolves the 1.0.1 activation fatal.
Improved Release pipeline rebuilt — .distignore-driven dist build, CI verify step, version-named artifact on every run.
Improved Plugin version read from the PHP header — single source of truth.

v1.0.1

2026-06-01

Foundation release — full feature set + Pro hooks.

Module architecture + LiteSpeed parity floor

New Module architecture — every feature now ships as a self-contained Module (Cache, Health, Preloader, Heartbeat, Minify, GZIP, Lazy Load, Disable Bloat, Database, CDN, Cloudflare, Object Cache, Browser Cache).
New Health module — 24-hour hit/miss counter + activity log.
New Preloader module — sitemap-driven cache warmer with content-publish auto-warm.
New Cache exclusion intelligence — glob URL patterns, cookie patterns, User-Agent bypass, ignored query parameters.
New Per-device cache (mobile-separate).
New Per-post cache rules — don't-cache + custom expiry meta box.
New Minification — CSS / JS / HTML minify, combine, defer JS, delay JS, async CSS, remove ?ver= query strings.
New Lazy Load module — images / iframes / videos + auto CLS-fix.
New Disable Bloat module — 6 ergonomic toggles (dashicons, oEmbed, RSS, XML-RPC, jQuery Migrate, REST auth).
New Database module — optimize tables, scheduled cleanup, autoload analysis.
New CDN module — pull-zone URL rewriting.
New Cloudflare module — zone connect, auto-purge, dev-mode toggle.
New Object Cache module — Redis / Memcached config + status + flush.
New Browser Cache module — Cache-Control + Expires headers.
New Settings search across the entire dashboard with keyword highlighting.
New 3-step setup wizard on first activation with preset chooser and benchmark.
New Sidebar grouping under domain headers (Cache / Performance / Network / Insights / Tools).
New Sidebar tooltips + search shortcut in the collapsed rail.
New xspeed_branding filter — agencies can rebrand the dashboard.
New xspeed_cache_skip_for_post + xspeed_cache_expiry_for_post filters.

Pro-essentials

New xspeed_module_descriptor filter — Pro hooks this to swap its panels to LicenseLockedPanel when license is invalid.
New AI Privacy module — GDPR off-switch + xspeed_ai_can_collect_data filter that Pro AI features must consult before recording visitor data.
New Pro upsell teasers — in-context inline cards on Cache, Minify, Lazy Load, Browser Cache and Disable Bloat panels.
New Locked Pro module rows in the sidebar — shows what Pro offers with a clear upgrade prompt.
New Pro Audit on the Cache panel — site-specific scan listing the top Pro features that would help THIS site, with severity chips and concrete reasons (not generic marketing copy).
New Sidebar slot for the license module (appears when xSpeed Pro is installed).
New Global 36px form-control height baseline across the dashboard.
New filemtime() cache busting on admin asset URLs.

Improvements & fixes

Improved React panel registry — modules auto-render in the dashboard.
Improved Portal-based save indicator — zero layout shift.
Improved Distribution zip prunes dev dependencies (composer install --no-dev).
Fixed 5 duplicate module icons + regression test.

v1.0.0

2026-05-27

Initial release.

xSpeed Pro

v1.0.1

2026-07-02

Maintenance release with image delivery, cache purge, and migration improvements.

Image Optimization

Fixed Improved WebP and AVIF delivery, including support for CSS background images.

Caching

Fixed CSS optimization cache is now properly cleared during cache purges.

Migration

Fixed W3 Total Cache importer now supports Redis ACL credentials.

v1.0.0

2026-06-25

Initial release of xSpeed Pro. Built as an add-on for xSpeed Free — installs alongside Free and layers 25+ Pro modules into the same dashboard, gated by a single license.

Caching

New REST API Cache — cache read-only REST responses with a TTL you set per route; built for headless / app back-ends.
New Feed Caching — cache RSS / Atom / comment feeds (with correct content-type) so aggregators polling your feed skip a full render.
New 404 Caching — serve a single cached 404 page so bot/scanner floods on nonexistent URLs don't hammer PHP.
New Search Caching — cache internal search-results pages (/?s=…) so popular repeated searches skip a full query.
New Custom Cache Rules — bypass cache or override expiry by URL, post type, category, tag, or author, with priority ordering.
New Maintenance-aware caching — skip caching while the site is in maintenance / coming-soon mode and auto-purge when it goes live.

Performance

New Critical CSS — inline above-the-fold CSS and defer the rest, per template.
New Unused CSS — inline a pruned per-URL stylesheet and strip the originals; pairs with Critical CSS.
New Image Optimization — convert new JPEG/PNG uploads to WebP and AVIF and serve them to capable browsers.
New Smart Image — AI-recommended format + quality settings based on your media library.
New Adaptive Cache — AI-tuned cache TTL based on 24-hour traffic patterns.
New Predictive Cache Warming — proactively warm the hottest URLs, ranked by real traffic, recency, and content, on a schedule.
New Scheduled Cache Prewarming — warm target URLs ahead of scheduled moments (a post going live, a sale, a campaign) so the spike hits a warm cache.
New Smart Predict — predict the next page a visitor is likely to open and prefetch it.

Edge & Network

New Brotli Compression — serve Brotli-compressed responses where the browser and server support it, with automatic GZIP fallback.
New Cloudflare APO — toggle Automatic Platform Optimization, edge cache level, and TTL on your connected Cloudflare zone.

Insights & monitoring

New Real-User Monitoring (RUM) — sample Core Web Vitals (LCP, FCP, CLS, INP, TTFB) from real visitors, charted per page and per device.
New Performance Health — Core Web Vitals health score with AI anomaly detection, reading the data RUM collects.
New PageSpeed — on-demand Google PageSpeed Insights audits; scores + top issues cached for 24 hours.
New Analytics — hit-ratio trends, slowest URLs (from RUM), and recent activity in one view.
New Recommendations — site-specific configuration advice grounded in the active modules, with one-click apply.

AI

New Pluggable AI provider — choose OpenAI, Anthropic, or OpenRouter; powers Adaptive Cache, Smart Image, Smart Predict, Performance Health, and Recommendations.

Operations

New Migration — one-click importers from WP Rocket, W3 Total Cache, and WP Super Cache.
New Advanced Migration — host-tuned profiles, bulk/multisite import, and shareable Save & Share profiles.
New Multisite — network-wide cache control with per-subsite overrides and a network admin panel.
New White Label — rebrand the dashboard chrome (name, logo, footer credit, hide help links) for agencies.
New License — activate xSpeed Pro via the WPDeveloper store with periodic revalidation and a license-locked panel fallback when invalid.

Integration with xSpeed Free

New Layers onto Free's module registry — Pro modules reuse Free's schema-driven panels, stat cards, and form controls for one consistent dashboard.
New Pro REST routes return 404 from the outside when the license is invalid; the dashboard renders a license-locked panel in their place.

Make your site load in milliseconds.

One switch. Zero bloat. Always free to start.