Description
Speed Without the Bloat
Most caching plugins ship with hundreds of options, dashboards full of charts, and constant upsell prompts. xSpeed takes the opposite approach: a single-page admin UI, a master toggle, and the optimizations that move the needle. Activate, flip the switch, done.
xSpeed delivers full-page caching, HTML/CSS/JS minification, and GZIP compression in a clean React-powered admin built for developers and site owners who want speed without the noise.
Key Features
Page Caching
- Full-page static HTML caching for non-logged-in visitors.
- Drop-in (
advanced-cache.php) serves cached responses before WordPress fully boots — minimal PHP overhead per request. - Automatic cache invalidation on post publish/update, comment activity, theme switch, and plugin activation/deactivation.
- Honors the
DONOTCACHEPAGEconstant. - Bypasses cache for admin, AJAX, REST, cron, POST requests, and logged-in users.
- Configurable cache expiry (1–720 hours, default 24).
- URL-based exclusions (one path per line — useful for
/cart,/checkout,/my-account). - One-click purge from the admin bar or settings page.
Code Minification
- HTML minification — strips whitespace and comments while preserving
<pre>,<textarea>,<script>, and<style>content. - CSS minification — local enqueued stylesheets are minified once, cached on disk, and the loader URL is rewritten transparently.
- JavaScript minification — same flow as CSS; safely skips already-minified bundles and validates output to prevent breakage.
- Powered by
matthiasmullie/minifyfor production-grade compression. xspeed_skip_minifyfilter for fine-grained control.
GZIP Compression
- Apache and LiteSpeed: auto-configures
.htaccesswithmod_deflaterules. - Nginx, IIS, or other servers: surfaces a copy-pasteable snippet for the user’s server config.
- Detects whether the server already serves gzipped responses and shows an “Active on server” indicator.
Built for Developers
- Single-page admin UI built with React 18 + TypeScript + Tailwind CSS.
- Light and dark mode with persistent preference (defaults to light).
- Collapsible sidebar that remembers state across sessions.
- Auto-save settings — no Save button.
- REST API at
/wp-json/xspeed/v1/for programmatic control. - Initial settings bootstrapped into the page — zero loading state on first render.
- Bundle size under 80 KB gzipped.
Cross-Server
- Works on Apache, nginx, LiteSpeed, IIS, and any PHP-capable host.
- Server-specific behavior (where applicable) is handled gracefully — no silent failures.
Perfect For
- Content-heavy blogs and news outlets.
- Small-to-mid WooCommerce stores.
- Business and portfolio sites.
- Developers who want a clean, no-noise caching plugin.
Privacy
xSpeed is designed with privacy in mind. The plugin does not collect personal user data, store IP addresses, use tracking cookies, or contact any third-party servers. All optimizations happen locally on your server. The only HTTP request xSpeed ever makes is to your own site’s home URL (see “External services” below) to confirm whether your server is serving gzipped responses.
Backed By a Team You Trust
xSpeed is developed by the trusted team at WPDeveloper, a leading WordPress marketplace used and loved by over 5 million users.
Loved xSpeed?
If xSpeed makes your site faster, please rate it on WordPress.org — it really helps.
External services
xSpeed contacts exactly one external endpoint, and only your own site:
Self-hosted gzip probe
- What it does: Issues a single
GETrequest to your site’s home URL (home_url('/')) with anAccept-Encoding: gzipheader to detect whether your web server is already serving gzipped responses. The response body is discarded; only theContent-Encodingheader is read. - When it runs: On demand when the admin dashboard loads server status, throttled to once per hour via a transient (
xspeed_gzip_active). - Where the request goes: Your own site (
home_url()). xSpeed does not contact any third-party server, analytics endpoint, license server, or telemetry collector. - What is sent: No personal data, no site identifiers, no payload — just a standard HTTP
GETfrom your server back to your server.
Third-party libraries
This plugin bundles the following GPL-compatible third-party libraries:
matthiasmullie/minify
Used for CSS and JavaScript minification.
- Source: https://github.com/matthiasmullie/minify
- License: MIT
matthiasmullie/path-converter
Dependency of matthiasmullie/minify.
- Source: https://github.com/matthiasmullie/path-converter
- License: MIT
React / React DOM / Scheduler
Used for the xSpeed admin interface bundle.
- Source: https://github.com/facebook/react
- License: MIT
lucide-react
Used for admin interface icons.
- Source: https://github.com/lucide-icons/lucide
- License: ISC
Screenshots

Cache panel — master toggle, status, and live stats (cached pages, cache size, last purge). 
Performance panel — minify HTML, CSS, JS, and GZIP toggles with server-aware hints. 
Settings panel — cache expiry and URL exclusions with auto-save. 
Cache panel in dark mode — same controls and stats with the dark theme applied.
Installation
- Upload the
xspeedfolder to the/wp-content/plugins/directory, or install through the WordPress plugins screen directly. - Activate the plugin through the Plugins screen in WordPress.
- Navigate to xSpeed in your WordPress admin sidebar.
- Toggle Enable Cache — that’s it. xSpeed ships with sensible defaults that work out of the box.
FAQ
-
Which servers does xSpeed support?
-
xSpeed works on Apache, nginx, LiteSpeed, IIS, and any standard PHP-capable host. Page caching and minification are server-agnostic. GZIP auto-configuration is supported on Apache and LiteSpeed (via
.htaccess); on nginx and IIS, xSpeed surfaces a copy-pasteable config snippet for you to add manually. -
Does xSpeed support WordPress Multisite?
-
Yes. Each site in the network maintains its own cache and settings.
-
Will xSpeed conflict with other caching plugins?
-
Only run one page-cache plugin at a time. Deactivate any other caching plugin before activating xSpeed.
-
Does caching affect my website content?
-
No. Caching stores a temporary copy of the rendered HTML to serve faster — your content stays exactly as you wrote it.
-
How do I exclude a page from caching?
-
Open xSpeed Settings, paste the URL path (e.g.,
/cart) into the Excluded URLs textarea (one per line), and changes save automatically. -
How do I purge the cache?
-
Click Purge on the Cache panel, or use the Purge xSpeed Cache entry in the admin bar (visible site-wide for administrators). The cache also auto-purges on content changes.
-
Will minification break my site?
-
xSpeed includes safety checks: it skips files already minified, refuses to ship minified output that fails a syntactic-balance check, and falls back to the original asset whenever anything looks off. If you ever spot a problem, simply toggle the relevant minify option off in Performance.
-
Can I disable minification temporarily for debugging?
-
Yes. Either toggle the option off in the admin UI, or as a developer enable
WP_DEBUG(xSpeed automatically skips HTML minification when debug is on), or use thexspeed_skip_minifyfilter. -
Is xSpeed compatible with WooCommerce?
-
Yes. Pages like
/cart,/checkout, and/my-accountare common cache exclusions — add them to Excluded URLs and xSpeed will bypass caching for those paths. Logged-in users (including customers in their account area) are never served cached pages.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“xSpeed” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “xSpeed” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
[1.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.
[1.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 (everything xSpeed Pro depends on, bundled here so any Pro release works against this single Free version):
– 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.
[1.0.0] – 2026-05-27
- Initial release.
