{"id":292268,"date":"2026-05-27T11:34:52","date_gmt":"2026-05-27T11:34:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/speedpress\/"},"modified":"2026-06-09T06:20:13","modified_gmt":"2026-06-09T06:20:13","slug":"xspeed","status":"publish","type":"plugin","link":"https:\/\/sna.wordpress.org\/plugins\/xspeed\/","author":15786956,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"xSpeed","header_author":"WPDeveloper","header_description":"Minimal, ultra-fast caching plugin for WordPress.","assets_banners_color":"dcd6fa","last_updated":"2026-06-09 06:20:13","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/wpdeveloper.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":179,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"wpdevteam","date":"2026-05-27 11:31:36"},"1.0.1":{"tag":"1.0.1","author":"wpdevteam","date":"2026-06-01 17:33:21"},"1.0.2":{"tag":"1.0.2","author":"wpdevteam","date":"2026-06-02 05:31:36"},"1.0.3":{"tag":"1.0.3","author":"wpdevteam","date":"2026-06-09 06:20:13"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3550552,"resolution":"128x128","location":"assets","locale":"","width":126,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3550552,"resolution":"256x256","location":"assets","locale":"","width":252,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3550552,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3550552,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3565511,"resolution":"1","location":"assets","locale":"","width":1200,"height":800},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3565511,"resolution":"10","location":"assets","locale":"","width":1200,"height":800},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3565511,"resolution":"11","location":"assets","locale":"","width":1200,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3565511,"resolution":"2","location":"assets","locale":"","width":1200,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3565511,"resolution":"3","location":"assets","locale":"","width":1200,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3565511,"resolution":"4","location":"assets","locale":"","width":1200,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3565511,"resolution":"5","location":"assets","locale":"","width":1200,"height":800},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3565511,"resolution":"6","location":"assets","locale":"","width":1200,"height":800},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3565511,"resolution":"7","location":"assets","locale":"","width":1200,"height":800},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3565511,"resolution":"8","location":"assets","locale":"","width":1200,"height":800},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3565511,"resolution":"9","location":"assets","locale":"","width":1200,"height":800}},"screenshots":{"1":"Cache panel \u2014 master toggle, status, and live stats (cached pages, cache size, last purge).","2":"Minification \u2014 minify and combine HTML, CSS, and JavaScript with defer\/delay options.","3":"Lazy Load \u2014 defer images, iframes, and videos until they scroll into view, with CLS-fix.","4":"Cache Preloader \u2014 sitemap-driven cache warmer that keeps the first visitor fast.","5":"Object Cache \u2014 connect Redis or Memcached, view status, and flush from the dashboard.","6":"CDN \u2014 pull-zone URL rewriting for faster global static-asset delivery.","7":"Cloudflare \u2014 connect your zone, auto-purge on publish, and toggle development mode.","8":"Custom Cache Rules \u2014 per-URL and per-post caching rules with custom expiry.","9":"Disable Bloat \u2014 switch off unused WordPress features (dashicons, oEmbed, RSS, XML-RPC, and more).","10":"Heartbeat Control \u2014 throttle the WordPress Heartbeat API to reduce admin-ajax load.","11":"AI-Powered Site Audit (Pro) \u2014 site-specific recommendations with severity ratings and concrete reasons."}},"plugin_section":[],"plugin_tags":[144,1736,187,247,794],"plugin_category":[52,54],"plugin_contributors":[80044,212095,149406],"plugin_business_model":[],"class_list":["post-292268","plugin","type-plugin","status-publish","hentry","plugin_tags-caching","plugin_tags-minify","plugin_tags-optimization","plugin_tags-performance","plugin_tags-speed","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-asif2bd","plugin_contributors-seakashdiu","plugin_contributors-wpdevteam","plugin_committers-wpdevteam"],"banners":{"banner":"https:\/\/ps.w.org\/xspeed\/assets\/banner-772x250.png?rev=3550552","banner_2x":"https:\/\/ps.w.org\/xspeed\/assets\/banner-1544x500.png?rev=3550552","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/xspeed\/assets\/icon-128x128.png?rev=3550552","icon_2x":"https:\/\/ps.w.org\/xspeed\/assets\/icon-256x256.png?rev=3550552","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/xspeed\/assets\/screenshot-1.png?rev=3565511","caption":"Cache panel \u2014 master toggle, status, and live stats (cached pages, cache size, last purge)."},{"src":"https:\/\/ps.w.org\/xspeed\/assets\/screenshot-2.png?rev=3565511","caption":"Minification \u2014 minify and combine HTML, CSS, and JavaScript with defer\/delay options."},{"src":"https:\/\/ps.w.org\/xspeed\/assets\/screenshot-3.png?rev=3565511","caption":"Lazy Load \u2014 defer images, iframes, and videos until they scroll into view, with CLS-fix."},{"src":"https:\/\/ps.w.org\/xspeed\/assets\/screenshot-4.png?rev=3565511","caption":"Cache Preloader \u2014 sitemap-driven cache warmer that keeps the first visitor fast."},{"src":"https:\/\/ps.w.org\/xspeed\/assets\/screenshot-5.png?rev=3565511","caption":"Object Cache \u2014 connect Redis or Memcached, view status, and flush from the dashboard."},{"src":"https:\/\/ps.w.org\/xspeed\/assets\/screenshot-6.png?rev=3565511","caption":"CDN \u2014 pull-zone URL rewriting for faster global static-asset delivery."},{"src":"https:\/\/ps.w.org\/xspeed\/assets\/screenshot-7.png?rev=3565511","caption":"Cloudflare \u2014 connect your zone, auto-purge on publish, and toggle development mode."},{"src":"https:\/\/ps.w.org\/xspeed\/assets\/screenshot-8.png?rev=3565511","caption":"Custom Cache Rules \u2014 per-URL and per-post caching rules with custom expiry."},{"src":"https:\/\/ps.w.org\/xspeed\/assets\/screenshot-9.png?rev=3565511","caption":"Disable Bloat \u2014 switch off unused WordPress features (dashicons, oEmbed, RSS, XML-RPC, and more)."},{"src":"https:\/\/ps.w.org\/xspeed\/assets\/screenshot-10.png?rev=3565511","caption":"Heartbeat Control \u2014 throttle the WordPress Heartbeat API to reduce admin-ajax load."},{"src":"https:\/\/ps.w.org\/xspeed\/assets\/screenshot-11.png?rev=3565511","caption":"AI-Powered Site Audit (Pro) \u2014 site-specific recommendations with severity ratings and concrete reasons."}],"raw_content":"<!--section=description-->\n<p>Your visitors decide to stay or leave in under 3 seconds. <strong>xSpeed<\/strong> makes sure they stay.<\/p>\n\n<p>Most caching plugins bury you in settings, charts, and upgrade popups. xSpeed does the opposite \u2014 install it, flip one switch, and your site loads faster. No bloat, no upsells nagging you, no PhD required.<\/p>\n\n<p>Built by the team at <strong>WPDeveloper<\/strong> \u2014 trusted by over 7 million WordPress users worldwide.<\/p>\n\n<h4>What Does xSpeed Do?<\/h4>\n\n<p>xSpeed is a full-site performance plugin. It caches your pages, shrinks your code, compresses your files, and serves everything as fast as your server physically can \u2014 including an AI-powered audit that tells you exactly what's slowing your site down.<\/p>\n\n<p>The result: pages that load in milliseconds, not seconds. Better Google PageSpeed scores. Happier visitors. Better SEO rankings.<\/p>\n\n<h4>The Speed Advantage No Other Free Plugin Offers<\/h4>\n\n<p>When xSpeed caches a page, it doesn't just save it \u2014 it serves it directly from the server, bypassing PHP entirely.<\/p>\n\n<p>That means:<\/p>\n\n<ul>\n<li><strong>With xSpeed static cache:<\/strong> 5\u201315ms response time<\/li>\n<li><strong>Without it (PHP-served cache):<\/strong> ~85ms response time<\/li>\n<\/ul>\n\n<p>That's up to <strong>17\u00d7 faster<\/strong> page delivery on cache hits. No other free caching plugin does this across Apache, nginx, and LiteSpeed automatically.<\/p>\n\n<h4>Features at a Glance<\/h4>\n\n<p><strong>Page Caching<\/strong><\/p>\n\n<p>Your pages are saved as static HTML files and served instantly to visitors \u2014 before WordPress even loads. The cache rebuilds itself automatically whenever you publish a post, switch themes, or update a plugin. You never have to think about it.<\/p>\n\n<ul>\n<li>Static-file rewrite path (bypasses PHP entirely \u2014 5\u201315ms TTFB)<\/li>\n<li>Auto-purge on publish, update, comment, theme change<\/li>\n<li>One-click cache purge from the admin bar<\/li>\n<li>Exclude specific URLs (e.g. <code>\/cart<\/code>, <code>\/checkout<\/code>, <code>\/my-account<\/code>)<\/li>\n<li>Set your own cache expiry (1\u2013720 hours)<\/li>\n<li>Separate mobile cache for phone and tablet visitors<\/li>\n<li>Per-post cache rules \u2014 custom expiry or disable caching for individual posts<\/li>\n<\/ul>\n\n<p><strong>Code Minification<\/strong><\/p>\n\n<p>Strips all the unnecessary whitespace, comments, and characters from your HTML, CSS, and JavaScript without breaking anything.<\/p>\n\n<ul>\n<li>Minify HTML, CSS, and JavaScript<\/li>\n<li>Combine CSS and JS files to reduce HTTP requests<\/li>\n<li>Defer or delay JavaScript so it doesn't block page rendering<\/li>\n<li>Async CSS loading<\/li>\n<li>Removes <code>?ver=<\/code> query strings from asset URLs<\/li>\n<li>Safe-minify: automatically skips already-minified files and falls back if anything looks off<\/li>\n<\/ul>\n\n<p><strong>GZIP Compression<\/strong><\/p>\n\n<p>Makes every file your server sends smaller \u2014 so browsers download them faster.<\/p>\n\n<ul>\n<li>Auto-configures GZIP on Apache and LiteSpeed<\/li>\n<li>Shows a ready-to-paste config snippet for nginx and IIS<\/li>\n<li>Detects if your server already has GZIP active \u2014 no double-configuration<\/li>\n<\/ul>\n\n<p><strong>Lazy Load<\/strong><\/p>\n\n<p>Images, videos, and iframes load only when a visitor scrolls to them \u2014 not all at once on page load.<\/p>\n\n<ul>\n<li>Lazy load images, iframes, and videos<\/li>\n<li>Automatic CLS (Cumulative Layout Shift) fix so your layout doesn't jump<\/li>\n<\/ul>\n\n<p><strong>Fonts Optimization<\/strong><\/p>\n\n<p>Web fonts are one of the most common causes of slow-loading pages.<\/p>\n\n<ul>\n<li>Adds <code>font-display: swap<\/code> so text is visible immediately while fonts load<\/li>\n<li>Preloads above-the-fold font files for instant rendering<\/li>\n<li>Removes the blank-text flash caused by slow Google Fonts responses<\/li>\n<\/ul>\n\n<p><strong>Browser Cache<\/strong><\/p>\n\n<p>Tells browsers to remember your static files (images, CSS, JS) so returning visitors load your site even faster.<\/p>\n\n<ul>\n<li>Sets proper <code>Cache-Control<\/code> and <code>Expires<\/code> headers<\/li>\n<li>Works automatically \u2014 no manual configuration needed<\/li>\n<\/ul>\n\n<p><strong>Cache Preloader<\/strong><\/p>\n\n<p>Warms up your cache automatically so the very first visitor after a purge still gets a fast page.<\/p>\n\n<ul>\n<li>Sitemap-driven cache warmer<\/li>\n<li>Auto-warms cache when you publish or update content<\/li>\n<\/ul>\n\n<p><strong>Object Cache (Redis \/ Memcached)<\/strong><\/p>\n\n<p>Speed up database-heavy WordPress installs with server-side object caching.<\/p>\n\n<ul>\n<li>Connect Redis or Memcached in seconds<\/li>\n<li>View status and flush cache from the dashboard<\/li>\n<\/ul>\n\n<p><strong>CDN Support<\/strong><\/p>\n\n<p>Serve your static files from a CDN for faster global delivery.<\/p>\n\n<ul>\n<li>Pull-zone URL rewriting for any CDN provider<\/li>\n<li>Built-in Cloudflare integration: connect your zone, auto-purge on publish, toggle dev mode<\/li>\n<\/ul>\n\n<p><strong>Database Optimization<\/strong><\/p>\n\n<p>A bloated database slows down every page load. xSpeed keeps yours clean.<\/p>\n\n<ul>\n<li>Optimize database tables<\/li>\n<li>Remove post revisions, spam, trash, transients, and orphaned meta<\/li>\n<li>Schedule automatic cleanup so it runs on autopilot<\/li>\n<\/ul>\n\n<p><strong>Disable Bloat<\/strong><\/p>\n\n<p>Turn off WordPress features you don't use \u2014 each one is a request your server doesn't have to make.<\/p>\n\n<ul>\n<li>Disable dashicons on the frontend<\/li>\n<li>Remove oEmbed, RSS feeds, XML-RPC, jQuery Migrate, REST API authentication headers<\/li>\n<\/ul>\n\n<p><strong>AI-Powered Site Audit (Pro)<\/strong><\/p>\n\n<p>xSpeed Pro scans your specific site and tells you exactly which performance features will help the most \u2014 with severity ratings and concrete reasons, not generic advice.<\/p>\n\n<h4>Smart Enough to Stay Out of Trouble<\/h4>\n\n<p>xSpeed handles the edge cases other plugins miss:<\/p>\n\n<ul>\n<li><strong>Multisite ready<\/strong> \u2014 each site in the network gets its own cache and settings.<\/li>\n<li><strong>LiteSpeed server?<\/strong> \u2014 xSpeed detects LiteSpeed Cache's server module and steps back to avoid conflicts.<\/li>\n<li><strong>WooCommerce?<\/strong> \u2014 logged-in customers and checkout pages are never cached.<\/li>\n<li><strong>WordPress Site Health<\/strong> \u2014 xSpeed adds its own health check under Tools \u2192 Site Health so you always know your cache config is working correctly.<\/li>\n<li><strong>Works on any server<\/strong> \u2014 Apache, nginx, LiteSpeed, IIS, and any standard PHP host.<\/li>\n<\/ul>\n\n<h4>Designed for Everyone<\/h4>\n\n<p><strong>Non-technical users:<\/strong> A 3-step setup wizard walks you through first-time configuration in under 2 minutes. Settings auto-save \u2014 there's no Save button to forget.<\/p>\n\n<p><strong>Developers:<\/strong> REST API at <code>\/wp-json\/xspeed\/v1\/<\/code>, developer filters (<code>xspeed_skip_minify<\/code>, <code>xspeed_cache_skip_for_post<\/code>, <code>xspeed_cache_expiry_for_post<\/code>), <code>WP_DEBUG<\/code> awareness, and a React 18 + TypeScript admin UI under 80 KB gzipped.<\/p>\n\n<p><strong>Agencies:<\/strong> Use the <code>xspeed_branding<\/code> filter to white-label the dashboard for clients.<\/p>\n\n<h4>Completely Private<\/h4>\n\n<p>xSpeed never collects personal data, stores IP addresses, uses tracking cookies, or contacts any third-party server. Every optimization runs locally on your server. The only external request it makes is a quick check to your own site's home URL to confirm GZIP is active \u2014 and even that is rate-limited to once per hour. (See \"External services\" below.)<\/p>\n\n<h4>Backed By a Team You Trust<\/h4>\n\n<p>xSpeed is developed by the trusted team at WPDeveloper, a leading WordPress marketplace used and loved by millions of users.<\/p>\n\n<h4>Loved xSpeed?<\/h4>\n\n<p>If xSpeed makes your site faster, please leave a review on WordPress.org \u2014 it really helps!<\/p>\n\n<h3>External services<\/h3>\n\n<p>xSpeed contacts exactly one external endpoint, and only your own site:<\/p>\n\n<h4>Self-hosted gzip probe<\/h4>\n\n<ul>\n<li><strong>What it does:<\/strong> Issues a single <code>GET<\/code> request to your site's home URL (<code>home_url('\/')<\/code>) with an <code>Accept-Encoding: gzip<\/code> header to detect whether your web server is already serving gzipped responses. The response body is discarded; only the <code>Content-Encoding<\/code> header is read.<\/li>\n<li><strong>When it runs:<\/strong> On demand when the admin dashboard loads server status, throttled to once per hour via a transient (<code>xspeed_gzip_active<\/code>).<\/li>\n<li><strong>Where the request goes:<\/strong> Your own site (<code>home_url()<\/code>). xSpeed does not contact any third-party server, analytics endpoint, license server, or telemetry collector.<\/li>\n<li><strong>What is sent:<\/strong> No personal data, no site identifiers, no payload \u2014 just a standard HTTP <code>GET<\/code> from your server back to your server.<\/li>\n<\/ul>\n\n<h3>Third-party libraries<\/h3>\n\n<p>This plugin bundles the following GPL-compatible third-party libraries:<\/p>\n\n<h4>matthiasmullie\/minify<\/h4>\n\n<p>Used for CSS and JavaScript minification.<\/p>\n\n<ul>\n<li>Source: https:\/\/github.com\/matthiasmullie\/minify<\/li>\n<li>License: MIT<\/li>\n<\/ul>\n\n<h4>matthiasmullie\/path-converter<\/h4>\n\n<p>Dependency of <code>matthiasmullie\/minify<\/code>.<\/p>\n\n<ul>\n<li>Source: https:\/\/github.com\/matthiasmullie\/path-converter<\/li>\n<li>License: MIT<\/li>\n<\/ul>\n\n<h4>React \/ React DOM \/ Scheduler<\/h4>\n\n<p>Used for the xSpeed admin interface bundle.<\/p>\n\n<ul>\n<li>Source: https:\/\/github.com\/facebook\/react<\/li>\n<li>License: MIT<\/li>\n<\/ul>\n\n<h4>lucide-react<\/h4>\n\n<p>Used for admin interface icons.<\/p>\n\n<ul>\n<li>Source: https:\/\/github.com\/lucide-icons\/lucide<\/li>\n<li>License: ISC<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong> in your WordPress admin and search for <strong>xSpeed<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Navigate to <strong>xSpeed<\/strong> in your sidebar.<\/li>\n<li>The setup wizard will guide you through the rest \u2014 it takes about 2 minutes.<\/li>\n<\/ol>\n\n<p>That's it. Your site is now faster.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20break%20my%20site%3F\"><h3>Will this break my site?<\/h3><\/dt>\n<dd><p>Very unlikely. xSpeed includes safety checks for every optimization: minification falls back to the original if anything looks off, and the cache bypasses logged-in users, admin pages, AJAX, and REST requests automatically. If something ever looks wrong, you can toggle any feature off individually.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Add <code>\/cart<\/code>, <code>\/checkout<\/code>, and <code>\/my-account<\/code> to the Excluded URLs list and xSpeed will skip caching those pages. Logged-in customers are never served cached pages regardless.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20server%3F\"><h3>Does it work with my server?<\/h3><\/dt>\n<dd><p>xSpeed works on Apache, nginx, LiteSpeed, IIS, and any standard PHP host. Static-cache rewriting and GZIP auto-configuration work out of the box on Apache and LiteSpeed. For nginx and IIS, xSpeed shows you a ready-to-paste config snippet.<\/p><\/dd>\n<dt id=\"does%20it%20support%20wordpress%20multisite%3F\"><h3>Does it support WordPress Multisite?<\/h3><\/dt>\n<dd><p>Yes. Each site in the network has its own independent cache and settings.<\/p><\/dd>\n<dt id=\"will%20it%20conflict%20with%20litespeed%20cache%3F\"><h3>Will it conflict with LiteSpeed Cache?<\/h3><\/dt>\n<dd><p>No. xSpeed detects LiteSpeed's server-level caching module and steps back automatically to avoid double-caching. Otherwise, only run one page-cache plugin at a time.<\/p><\/dd>\n<dt id=\"how%20do%20i%20exclude%20a%20page%20from%20being%20cached%3F\"><h3>How do I exclude a page from being cached?<\/h3><\/dt>\n<dd><p>Go to <strong>xSpeed \u2192 Settings<\/strong>, paste the URL path (e.g. <code>\/cart<\/code>) into the Excluded URLs field \u2014 one path per line. Changes save automatically.<\/p><\/dd>\n<dt id=\"how%20do%20i%20clear%20the%20cache%3F\"><h3>How do I clear the cache?<\/h3><\/dt>\n<dd><p>Click <strong>Purge<\/strong> in the xSpeed dashboard, or use <strong>Purge xSpeed Cache<\/strong> in your admin bar. The cache also clears itself automatically whenever you publish or update content.<\/p><\/dd>\n<dt id=\"can%20i%20use%20xspeed%20alongside%20cloudflare%3F\"><h3>Can I use xSpeed alongside Cloudflare?<\/h3><\/dt>\n<dd><p>Yes. The built-in Cloudflare module connects your zone and auto-purges Cloudflare's cache whenever xSpeed purges its own \u2014 so both caches stay in sync.<\/p><\/dd>\n<dt id=\"can%20i%20disable%20minification%20temporarily%20for%20debugging%3F\"><h3>Can I disable minification temporarily for debugging?<\/h3><\/dt>\n<dd><p>Yes. Either toggle the option off in the admin UI, enable <code>WP_DEBUG<\/code> (xSpeed automatically skips HTML minification when debug is on), or use the <code>xspeed_skip_minify<\/code> filter.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>[1.0.3] \u2013 2026-06-09<\/h4>\n\n<p><strong>Topology-aware UX, nginx HIT counting, admin polish.<\/strong><\/p>\n\n<p>Cache topology &amp; UX:\n- New: Topology-aware rewrite banner \u2014 the dashboard now detects containerized hosts (xclude, Kinsta, RunCloud Atomic, etc.) where the <code>$document_root<\/code> assumption doesn't hold, and tells the user exactly what to expect on their stack instead of silently failing.\n- New: Unified nginx server-block snippet \u2014 one consolidated, copy-pasteable snippet (collapsible in the UI) replaces the previous fragmented sections.\n- New: Nginx-served HITs are now counted \u2014 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.\n- New: <code>X-XSpeed-Cache<\/code> response header \u2014 cache hits are now visible in the response headers, with a distinct value per serve layer (<code>HIT (nginx)<\/code> for the fast static path, <code>HIT (php)<\/code> for the drop-in fallback) so you can confirm a page was cached and tell exactly which layer served it.\n- Improved: Browser Cache notice is topology-aware and renders its snippet in a proper code block.<\/p>\n\n<p>Admin UX:\n- New: Third-party admin notices are suppressed on xSpeed admin screens (<code>page=xspeed*<\/code> only) \u2014 other plugins' \"rate us\" \/ promo notices no longer crowd the xSpeed dashboard.\n- New: Aligned sticky title-bar across the sidebar and content panels for a cleaner scroll experience.\n- Improved: Browser Cache + GZIP notices probe-gate themselves \u2014 once the underlying issue is resolved, the notice dismisses on its own instead of lingering.<\/p>\n\n<p>Benchmark:\n- 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.<\/p>\n\n<h4>[1.0.2] \u2013 2026-06-02<\/h4>\n\n<p><strong>Static-rewrite cache, Site Health &amp; Fonts.<\/strong><\/p>\n\n<p>Static-rewrite cache + Site Health:\n- New: Static-file rewrite path \u2014 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).\n- New: .htaccess static-cache block \u2014 installed automatically on cache enable, removed cleanly on disable. Block precedes WordPress's own rules so static files match first.\n- New: nginx config snippet \u2014 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.\n- New: LiteSpeed LSCache coexistence \u2014 xSpeed detects LSCache's server-level module and steps back instead of double-caching.\n- New: Active rewrite probe \u2014 Health module pings the cache directory and confirms the rewrite is actually serving static bytes (not just present in .htaccess).\n- New: WordPress Site Health integration \u2014 Tools \u2192 Site Health now lists an xSpeed check covering static-rewrite status + nginx config requirements.\n- New: Persistent banner \u2014 Cache panel warns the admin when caching is on but the static-rewrite block isn't engaged (slow fallback path).\n- New: Copy-to-clipboard button on every config-snippet panel (nginx, GZIP, object-cache).<\/p>\n\n<p>Fonts:\n- New: Fonts module \u2014 adds <code>font-display: swap<\/code> 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.\n- New: FontsModule tests covering the swap rewrite + preload <code>&lt;link&gt;<\/code> emission.<\/p>\n\n<p>Improvements &amp; fixes:\n- Improved: Server-type detection is cached so CLI \/ cron contexts see the same server type as web requests.\n- 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.\n- Improved: Plugin Check pass \u2014 i18n textdomains, WP_Filesystem coverage, SQL preparation, sanitization, and plugin\/readme headers all cleaned up for WordPress.org review.\n- Fixed: nginx snippet rewritten to avoid the try_files trap that broke pretty permalinks.\n- Fixed: Rewrite condition normalized for trailing-slash + non-trailing-slash URLs.\n- Fixed: WP-Rocket-style canonical pattern \u2014 server-level conditional rewrite.\n- Fixed: Minify tag-rewrite filters bail in non-frontend contexts (REST \/ admin \/ cron).\n- Fixed: wp.org release zip now ships <code>vendor\/<\/code> \u2014 resolves the 1.0.1 activation fatal.\n- Improved: Release pipeline rebuilt \u2014 <code>.distignore<\/code>-driven dist build, CI verify step, version-named artifact on every run.\n- Improved: Plugin version read from the PHP header \u2014 single source of truth.<\/p>\n\n<h4>[1.0.1] \u2013 2026-06-01<\/h4>\n\n<p><strong>Foundation release \u2014 full feature set + Pro hooks.<\/strong><\/p>\n\n<p>Module architecture + LiteSpeed parity floor:\n- New: Module architecture \u2014 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).\n- New: Health module \u2014 24-hour hit\/miss counter + activity log.\n- New: Preloader module \u2014 sitemap-driven cache warmer with content-publish auto-warm.\n- New: Cache exclusion intelligence \u2014 glob URL patterns, cookie patterns, User-Agent bypass, ignored query parameters.\n- New: Per-device cache (mobile-separate).\n- New: Per-post cache rules \u2014 don't-cache + custom expiry meta box.\n- New: Minification \u2014 CSS \/ JS \/ HTML minify, combine, defer JS, delay JS, async CSS, remove ?ver= query strings.\n- New: Lazy Load module \u2014 images \/ iframes \/ videos + auto CLS-fix.\n- New: Disable Bloat module \u2014 6 ergonomic toggles (dashicons, oEmbed, RSS, XML-RPC, jQuery Migrate, REST auth).\n- New: Database module \u2014 optimize tables, scheduled cleanup, autoload analysis.\n- New: CDN module \u2014 pull-zone URL rewriting.\n- New: Cloudflare module \u2014 zone connect, auto-purge, dev-mode toggle.\n- New: Object Cache module \u2014 Redis \/ Memcached config + status + flush.\n- New: Browser Cache module \u2014 Cache-Control + Expires headers.\n- New: Settings search across the entire dashboard with keyword highlighting.\n- New: 3-step setup wizard on first activation with preset chooser and benchmark.\n- New: Sidebar grouping under domain headers (Cache \/ Performance \/ Network \/ Insights \/ Tools).\n- New: Sidebar tooltips + search shortcut in the collapsed rail.\n- New: xspeed_branding filter \u2014 agencies can rebrand the dashboard.\n- New: xspeed_cache_skip_for_post + xspeed_cache_expiry_for_post filters.<\/p>\n\n<p>Pro-essentials (everything xSpeed Pro depends on, bundled here so any Pro release works against this single Free version):\n- New: xspeed_module_descriptor filter \u2014 Pro hooks this to swap its panels to LicenseLockedPanel when license is invalid.\n- New: AI Privacy module \u2014 GDPR off-switch + xspeed_ai_can_collect_data filter that Pro AI features must consult before recording visitor data.\n- New: Pro upsell teasers \u2014 in-context inline cards on Cache, Minify, Lazy Load, Browser Cache and Disable Bloat panels.\n- New: Locked Pro module rows in the sidebar \u2014 shows what Pro offers with a clear upgrade prompt.\n- New: Pro Audit on the Cache panel \u2014 site-specific scan listing the top Pro features that would help THIS site, with severity chips and concrete reasons (not generic marketing copy).\n- New: Sidebar slot for the license module (appears when xSpeed Pro is installed).\n- New: Global 36px form-control height baseline across the dashboard.\n- New: filemtime() cache busting on admin asset URLs.<\/p>\n\n<p>Improvements &amp; fixes:\n- Improved: React panel registry \u2014 modules auto-render in the dashboard.\n- Improved: Portal-based save indicator \u2014 zero layout shift.\n- Improved: Distribution zip prunes dev dependencies (composer install --no-dev).\n- Fixed: 5 duplicate module icons + regression test.<\/p>\n\n<h4>[1.0.0] \u2013 2026-05-27<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Ultra-fast WordPress caching &amp; performance plugin. Page cache, minify, GZIP, lazy load, fonts, object cache, CDN \u2014 one switch, no bloat, no upsells.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sna.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/292268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sna.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sna.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sna.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=292268"}],"author":[{"embeddable":true,"href":"https:\/\/sna.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpdevteam"}],"wp:attachment":[{"href":"https:\/\/sna.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=292268"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sna.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=292268"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sna.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=292268"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sna.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=292268"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sna.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=292268"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sna.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=292268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}