PluginProbe
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN / 1.0.6
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN v1.0.6
1.3.3 1.3.2 1.3.1 1.3.0 1.2.4 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 All 29 releases
xspeed / readme.txt

readme.txt in xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN 1.0.6, at readme.txt

472 lines 27.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 === xSpeed – AI Cache & Performance Optimizer ===
2 Contributors: asif2bd, wpdevteam, seakashdiu
3 Tags: caching, performance, speed, optimization, minify
4 Requires at least: 6.0
5 Tested up to: 7.0
6 Requires PHP: 7.4
7 Stable tag: 1.0.6
8 License: GPLv2 or later
9 License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
11 Ultra-fast WordPress caching & performance plugin. Page cache, minify, GZIP, lazy load, fonts, object cache, CDN — one switch, no bloat, no upsells.
12
13 == Description ==
14
15 Your visitors decide to stay or leave in under 3 seconds. **xSpeed** makes sure they stay.
16
17 Most caching plugins bury you in settings, charts, and upgrade popups. xSpeed does the opposite — install it, flip one switch, and your site loads faster. No bloat, no upsells nagging you, no PhD required.
18
19 Built by the team at **WPDeveloper** — trusted by over 7 million WordPress users worldwide.
20
21 = What Does xSpeed Do? =
22
23 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 — including an AI-powered audit that tells you exactly what's slowing your site down.
24
25 The result: pages that load in milliseconds, not seconds. Better Google PageSpeed scores. Happier visitors. Better SEO rankings.
26
27 = The Speed Advantage No Other Free Plugin Offers =
28
29 When xSpeed caches a page, it doesn't just save it — it serves it directly from the server, bypassing PHP entirely.
30
31 That means:
32
33 * **With xSpeed static cache:** 5–15ms response time
34 * **Without it (PHP-served cache):** ~85ms response time
35
36 That's up to **17× faster** page delivery on cache hits. No other free caching plugin does this across Apache, nginx, and LiteSpeed automatically.
37
38 = Features at a Glance =
39
40 **Page Caching**
41
42 Your pages are saved as static HTML files and served instantly to visitors — 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.
43
44 * Static-file rewrite path (bypasses PHP entirely — 5–15ms TTFB)
45 * Auto-purge on publish, update, comment, theme change
46 * One-click cache purge from the admin bar
47 * Exclude specific URLs (e.g. `/cart`, `/checkout`, `/my-account`)
48 * Set your own cache expiry (1–720 hours)
49 * Separate mobile cache for phone and tablet visitors
50 * Per-post cache rules — custom expiry or disable caching for individual posts
51
52 **Code Minification**
53
54 Strips all the unnecessary whitespace, comments, and characters from your HTML, CSS, and JavaScript without breaking anything.
55
56 * Minify HTML, CSS, and JavaScript
57 * Combine CSS and JS files to reduce HTTP requests
58 * Defer or delay JavaScript so it doesn't block page rendering
59 * Async CSS loading
60 * Removes `?ver=` query strings from asset URLs
61 * Safe-minify: automatically skips already-minified files and falls back if anything looks off
62
63 **GZIP Compression**
64
65 Makes every file your server sends smaller — so browsers download them faster.
66
67 * Auto-configures GZIP on Apache and LiteSpeed
68 * Shows a ready-to-paste config snippet for nginx and IIS
69 * Detects if your server already has GZIP active — no double-configuration
70
71 **Lazy Load**
72
73 Images, videos, and iframes load only when a visitor scrolls to them — not all at once on page load.
74
75 * Lazy load images, iframes, and videos
76 * Automatic CLS (Cumulative Layout Shift) fix so your layout doesn't jump
77
78 **Fonts Optimization**
79
80 Web fonts are one of the most common causes of slow-loading pages.
81
82 * Adds `font-display: swap` so text is visible immediately while fonts load
83 * Preloads above-the-fold font files for instant rendering
84 * Removes the blank-text flash caused by slow Google Fonts responses
85
86 **Browser Cache**
87
88 Tells browsers to remember your static files (images, CSS, JS) so returning visitors load your site even faster.
89
90 * Sets proper `Cache-Control` and `Expires` headers
91 * Works automatically — no manual configuration needed
92
93 **Cache Preloader**
94
95 Warms up your cache automatically so the very first visitor after a purge still gets a fast page.
96
97 * Sitemap-driven cache warmer
98 * Auto-warms cache when you publish or update content
99
100 **Object Cache (Redis / Memcached)**
101
102 Speed up database-heavy WordPress installs with server-side object caching.
103
104 * Connect Redis or Memcached in seconds
105 * View status and flush cache from the dashboard
106
107 **CDN Support**
108
109 Serve your static files from a CDN for faster global delivery.
110
111 * Pull-zone URL rewriting for any CDN provider
112 * Built-in Cloudflare integration: connect your zone, auto-purge on publish, toggle dev mode
113
114 **Database Optimization**
115
116 A bloated database slows down every page load. xSpeed keeps yours clean.
117
118 * Optimize database tables
119 * Remove post revisions, spam, trash, transients, and orphaned meta
120 * Schedule automatic cleanup so it runs on autopilot
121
122 **Disable Bloat**
123
124 Turn off WordPress features you don't use — each one is a request your server doesn't have to make.
125
126 * Disable dashicons on the frontend
127 * Remove oEmbed, RSS feeds, XML-RPC, jQuery Migrate, REST API authentication headers
128
129 **AI-Powered Site Audit (Pro)**
130
131 xSpeed Pro scans your specific site and tells you exactly which performance features will help the most — with severity ratings and concrete reasons, not generic advice.
132
133 = Smart Enough to Stay Out of Trouble =
134
135 xSpeed handles the edge cases other plugins miss:
136
137 * **Multisite ready** — each site in the network gets its own cache and settings.
138 * **LiteSpeed server?** — xSpeed detects LiteSpeed Cache's server module and steps back to avoid conflicts.
139 * **WooCommerce?** — logged-in customers and checkout pages are never cached.
140 * **WordPress Site Health** — xSpeed adds its own health check under Tools → Site Health so you always know your cache config is working correctly.
141 * **Works on any server** — Apache, nginx, LiteSpeed, IIS, and any standard PHP host.
142
143 = Designed for Everyone =
144
145 **Non-technical users:** A 3-step setup wizard walks you through first-time configuration in under 2 minutes. Settings auto-save — there's no Save button to forget.
146
147 **Developers:** REST API at `/wp-json/xspeed/v1/`, developer filters (`xspeed_skip_minify`, `xspeed_cache_skip_for_post`, `xspeed_cache_expiry_for_post`), `WP_DEBUG` awareness, and a React 18 + TypeScript admin UI under 80 KB gzipped.
148
149 **Agencies:** Use the `xspeed_branding` filter to white-label the dashboard for clients.
150
151 = Private By Default =
152
153 xSpeed never collects personal data, stores IP addresses, or uses tracking cookies. Every optimization runs locally on your server. By default it makes no calls to any third-party server — the only request is a quick check to your own site's home URL to confirm GZIP is active, rate-limited to once per hour.
154
155 xSpeed also includes **optional usage analytics**. The setup wizard shows a clearly-labeled consent control for it (enabled by default, untick to opt out), and nothing is sent until you confirm your choices in the wizard. When enabled, xSpeed shares anonymous, non-sensitive diagnostics — your WordPress & PHP version, active theme & plugins, server type, site language, and which xSpeed features you have switched on — so we know what to keep fast and compatible. No personal data and no page content are ever sent, and you can turn it off again at any time from your dashboard. (See "External services" below.)
156
157 = Backed By a Team You Trust =
158
159 xSpeed is developed by the trusted team at WPDeveloper, a leading WordPress marketplace used and loved by millions of users.
160
161 = Loved xSpeed? =
162
163 If xSpeed makes your site faster, please leave a review on WordPress.org — it really helps!
164
165 == Installation ==
166
167 1. Go to **Plugins → Add New** in your WordPress admin and search for **xSpeed**.
168 2. Click **Install Now**, then **Activate**.
169 3. Navigate to **xSpeed** in your sidebar.
170 4. The setup wizard will guide you through the rest — it takes about 2 minutes.
171
172 That's it. Your site is now faster.
173
174 == Frequently Asked Questions ==
175
176 = Will this break my site? =
177
178 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.
179
180 = Does it work with WooCommerce? =
181
182 Yes. Add `/cart`, `/checkout`, and `/my-account` to the Excluded URLs list and xSpeed will skip caching those pages. Logged-in customers are never served cached pages regardless.
183
184 = Does it work with my server? =
185
186 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.
187
188 = Does it support WordPress Multisite? =
189
190 Yes. Each site in the network has its own independent cache and settings.
191
192 = Will it conflict with LiteSpeed Cache? =
193
194 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.
195
196 = How do I exclude a page from being cached? =
197
198 Go to **xSpeed → Settings**, paste the URL path (e.g. `/cart`) into the Excluded URLs field — one path per line. Changes save automatically.
199
200 = How do I clear the cache? =
201
202 Click **Purge** in the xSpeed dashboard, or use **Purge xSpeed Cache** in your admin bar. The cache also clears itself automatically whenever you publish or update content.
203
204 = Can I use xSpeed alongside Cloudflare? =
205
206 Yes. The built-in Cloudflare module connects your zone and auto-purges Cloudflare's cache whenever xSpeed purges its own — so both caches stay in sync.
207
208 = Can I disable minification temporarily for debugging? =
209
210 Yes. Either toggle the option off in the admin UI, enable `WP_DEBUG` (xSpeed automatically skips HTML minification when debug is on), or use the `xspeed_skip_minify` filter.
211
212 == Screenshots ==
213
214 1. Cache panel — master toggle, status, and live stats (cached pages, cache size, last purge).
215 2. Minification — minify and combine HTML, CSS, and JavaScript with defer/delay options.
216 3. Lazy Load — defer images, iframes, and videos until they scroll into view, with CLS-fix.
217 4. Cache Preloader — sitemap-driven cache warmer that keeps the first visitor fast.
218 5. Object Cache — connect Redis or Memcached, view status, and flush from the dashboard.
219 6. CDN — pull-zone URL rewriting for faster global static-asset delivery.
220 7. Cloudflare — connect your zone, auto-purge on publish, and toggle development mode.
221 8. Custom Cache Rules — per-URL and per-post caching rules with custom expiry.
222 9. Disable Bloat — switch off unused WordPress features (dashicons, oEmbed, RSS, XML-RPC, and more).
223 10. Heartbeat Control — throttle the WordPress Heartbeat API to reduce admin-ajax load.
224 11. AI-Powered Site Audit (Pro) — site-specific recommendations with severity ratings and concrete reasons.
225
226 == External services ==
227
228 xSpeed contacts your own site (the gzip probe below) and, when usage analytics is enabled, one analytics service. The setup wizard shows a clearly-labeled consent control for analytics (enabled by default, untick to opt out), and nothing is sent until you confirm your choices there.
229
230 = Self-hosted gzip probe =
231
232 * **What it does:** Issues a single `GET` request to your site's home URL (`home_url('/')`) with an `Accept-Encoding: gzip` header to detect whether your web server is already serving gzipped responses. The response body is discarded; only the `Content-Encoding` header is read.
233 * **When it runs:** On demand when the admin dashboard loads server status, throttled to once per hour via a transient (`xspeed_gzip_active`).
234 * **Where the request goes:** Your own site (`home_url()`). This request goes only to your own server.
235 * **What is sent:** No personal data, no site identifiers, no payload — just a standard HTTP `GET` from your server back to your server.
236
237 = Usage analytics (opt-in, off by default) =
238
239 * **What it does:** When usage analytics is enabled, xSpeed periodically sends anonymous, non-sensitive diagnostics to help us keep the plugin fast and compatible with real-world WordPress environments. Data sent: site URL, site name, WordPress version, PHP version, site language & charset, multisite flag, server software, your list of active & inactive plugins, active theme & version, text direction, and your xSpeed feature usage (which optimization features you have switched on and their numeric settings — e.g. cache lifetime, minification, lazy-load). This is feature-usage data only: it tells us which features are actually used so we can focus on what matters. **We never send any values you enter** — no API keys, tokens, passwords, license keys, email addresses, URLs, brand names, or logos — and **no page content, no visitor data, and no personal data** (your email is never collected in the free plugin).
240 * **When it runs:** It runs at most once per day via WP-Cron, only after you confirm your choices in the setup wizard. Untick the consent control (or disable it later from the dashboard) and nothing is ever sent.
241 * **Where the request goes:** WP Insights, WPDeveloper's usage-analytics service — `https://send.wpinsight.com/process-plugin-data`. ([Privacy Policy](https://wpdeveloper.com/privacy-policy))
242 * **How to turn it off:** Untick the consent control in the wizard, or disable it later from the xSpeed dashboard. Opting out stops all data collection and clears the scheduled task.
243
244 == Third-party libraries ==
245
246 This plugin bundles the following GPL-compatible third-party libraries:
247
248 = matthiasmullie/minify =
249
250 Used for CSS and JavaScript minification.
251
252 * Source: https://github.com/matthiasmullie/minify
253 * License: MIT
254
255 = matthiasmullie/path-converter =
256
257 Dependency of `matthiasmullie/minify`.
258
259 * Source: https://github.com/matthiasmullie/path-converter
260 * License: MIT
261
262 = React / React DOM / Scheduler =
263
264 Used for the xSpeed admin interface bundle.
265
266 * Source: https://github.com/facebook/react
267 * License: MIT
268
269 = lucide-react =
270
271 Used for admin interface icons.
272
273 * Source: https://github.com/lucide-icons/lucide
274 * License: ISC
275
276 == Changelog ==
277
278 = [1.0.6] – 2026-06-25 =
279
280 **New caching capabilities, smarter settings, Pro cache warming, and major reliability improvements.**
281
282 Caching:
283 - New: REST API response caching with per-route TTL.
284 - New: Feed, search results, and 404 page caching.
285 - New: `xspeed_should_cache` filter for advanced cache control.
286 - New: Maintenance-aware cache serving to prevent stale maintenance pages.
287 - Improved: Feed handling with conditional GET (304 Not Modified) support.
288 - Fixed: Cache metadata handling for feeds, 404 pages, and content types.
289 - Fixed: Automatic cache purging for user and taxonomy changes.
290 - Fixed: Versioned cache drop-in to ensure updates are applied correctly.
291
292 Settings:
293 - New: Conditional settings with dependency support (AND/OR logic).
294 - Fixed: Preserved custom option keys during schema-driven saves.
295 - Fixed: Image URL validation for media fields.
296
297 White Label:
298 - Fixed: Footer credit and Help & Support link controls.
299 - Fixed: Fallback to the default logo when a custom brand logo is unavailable.
300
301 Migration:
302 - New: One-Click Profiles and Save & Share with an improved import experience.
303 - Fixed: Import now counts and migrates only enabled source settings.
304
305 Reliability:
306 - Fixed: Improved REST API error handling to prevent broken JSON responses.
307
308 Admin UX:
309 - New: Opt-in usage analytics (WP Insights).
310 - Improved: Sidebar navigation, conditional Pro settings, and submenu behavior.
311 - Improved: Pro upgrade links now point directly to the pricing page.
312
313 Pro (requires xSpeed Pro):
314 - New: Predictive Cache Warming and Scheduled Cache Prewarming.
315 - New: Brotli compression support with GZIP fallback.
316
317 = [1.0.5] – 2026-06-18 =
318
319 **Migration into Free, LiteSpeed cache ownership & accurate hit counting.**
320
321 Migration:
322 - 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.
323
324 LiteSpeed:
325 - 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.
326 - 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.
327
328 Cache hit counting & stats:
329 - 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%.
330 - Fixed: Cache MISSes are now recorded inline so the hit-ratio stat reflects reality instead of being pinned at 100%.
331 - Fixed: PHP-served cache HITs are counted correctly and the drop-in device-bucket desync is resolved.
332 - 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).
333
334 Nginx:
335 - 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`.
336 - 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.
337
338 Admin UX:
339 - New: Collapsible sidebar groups for cleaner navigation.
340 - Improved: Renamed the "Cache" module label to "Page Cache" for clarity.
341 - Improved: Sidebar group icons and chevrons brighten correctly on hover (white in dark mode).
342
343 Module fixes:
344 - Fixed: Lazy Load — four correctness bugs resolved.
345 - Fixed: Heartbeat — editor-context detection, CLI set support, and honest frontend copy.
346 - Fixed: Database cleaner — expired-transient cleanup gaps and a count mismatch.
347 - Fixed: Google Fonts — no longer double-appends `display=swap` on entity-encoded hrefs.
348 - Fixed: Settings now strictly validate boolean fields instead of casting, preventing bad values from silently becoming `true`/`false`.
349 - Fixed: Object Cache — core option groups marked non-persistent so the drop-in can always be deactivated; degraded backends detected honestly.
350 - Improved: Static-rewrite SSL probe verifies the certificate and no longer blocks admin page loads.
351
352 = [1.0.4] – 2026-06-14 =
353
354 **One-click object cache, parity exclusions & admin polish.**
355
356 Object Cache:
357 - 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.
358 - Improved: Dashboard now reports a degraded object cache honestly when the drop-in can't reach its backend, instead of implying caching is healthy.
359
360 Admin UX:
361 - New: WP admin submenu now mirrors the in-dashboard navigation, so the menu and dashboard tabs stay in sync.
362 - Improved: Settings changes apply live across dashboard navigation — no full page reload needed.
363 - Improved: Menu icon now recolors to the active accent state correctly.
364 - Improved: Success notifications are anchored to a single consistent position (bottom-center).
365 - Fixed: Long panel titles no longer push the subtitle off-screen.
366 - Fixed: Number-input spinners render consistently across browsers (Firefox no longer clips the value).
367
368 Cache exclusions:
369 - 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.
370 - New: Exclusion rules now support regex via a `~` prefix (e.g. `~utm_[a-zA-Z0-9_-]+`), alongside glob and substring, with ReDoS guards.
371
372 Bug fixes:
373 - 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).
374
375 License:
376 - Fixed: Activating a Pro license now unlocks the Pro panels immediately — no full page reload needed.
377
378 = [1.0.3] – 2026-06-07 =
379
380 **Topology-aware UX, nginx HIT counting, admin polish.**
381
382 Cache topology & UX:
383 - New: Topology-aware rewrite banner — the dashboard now detects containerized hosts (xclude, 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.
384 - New: Unified nginx server-block snippet — one consolidated, copy-pasteable snippet (collapsible in the UI) replaces the previous fragmented sections.
385 - 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.
386 - 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.
387 - Improved: Browser Cache notice is topology-aware and renders its snippet in a proper code block.
388
389 Admin UX:
390 - 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.
391 - New: Aligned sticky title-bar across the sidebar and content panels for a cleaner scroll experience.
392 - Improved: Browser Cache + GZIP notices probe-gate themselves — once the underlying issue is resolved, the notice dismisses on its own instead of lingering.
393
394 Benchmark:
395 - 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.
396
397 = [1.0.2] – 2026-06-02 =
398
399 **Static-rewrite cache, Site Health & Fonts.**
400
401 Static-rewrite cache + Site Health:
402 - 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).
403 - 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.
404 - 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.
405 - New: LiteSpeed LSCache coexistence — xSpeed detects LSCache's server-level module and steps back instead of double-caching.
406 - New: Active rewrite probe — Health module pings the cache directory and confirms the rewrite is actually serving static bytes (not just present in .htaccess).
407 - New: WordPress Site Health integration — Tools → Site Health now lists an xSpeed check covering static-rewrite status + nginx config requirements.
408 - New: Persistent banner — Cache panel warns the admin when caching is on but the static-rewrite block isn't engaged (slow fallback path).
409 - New: Copy-to-clipboard button on every config-snippet panel (nginx, GZIP, object-cache).
410
411 Fonts:
412 - 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.
413 - New: FontsModule tests covering the swap rewrite + preload `<link>` emission.
414
415 Improvements & fixes:
416 - Improved: Server-type detection is cached so CLI / cron contexts see the same server type as web requests.
417 - 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.
418 - Improved: Plugin Check pass — i18n textdomains, WP_Filesystem coverage, SQL preparation, sanitization, and plugin/readme headers all cleaned up for WordPress.org review.
419 - Fixed: nginx snippet rewritten to avoid the try_files trap that broke pretty permalinks.
420 - Fixed: Rewrite condition normalized for trailing-slash + non-trailing-slash URLs.
421 - Fixed: WP-Rocket-style canonical pattern — server-level conditional rewrite.
422 - Fixed: Minify tag-rewrite filters bail in non-frontend contexts (REST / admin / cron).
423 - Fixed: wp.org release zip now ships `vendor/` — resolves the 1.0.1 activation fatal.
424 - Improved: Release pipeline rebuilt — `.distignore`-driven dist build, CI verify step, version-named artifact on every run.
425 - Improved: Plugin version read from the PHP header — single source of truth.
426
427 = [1.0.1] – 2026-06-01 =
428
429 **Foundation release — full feature set + Pro hooks.**
430
431 Module architecture + LiteSpeed parity floor:
432 - 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).
433 - New: Health module — 24-hour hit/miss counter + activity log.
434 - New: Preloader module — sitemap-driven cache warmer with content-publish auto-warm.
435 - New: Cache exclusion intelligence — glob URL patterns, cookie patterns, User-Agent bypass, ignored query parameters.
436 - New: Per-device cache (mobile-separate).
437 - New: Per-post cache rules — don't-cache + custom expiry meta box.
438 - New: Minification — CSS / JS / HTML minify, combine, defer JS, delay JS, async CSS, remove ?ver= query strings.
439 - New: Lazy Load module — images / iframes / videos + auto CLS-fix.
440 - New: Disable Bloat module — 6 ergonomic toggles (dashicons, oEmbed, RSS, XML-RPC, jQuery Migrate, REST auth).
441 - New: Database module — optimize tables, scheduled cleanup, autoload analysis.
442 - New: CDN module — pull-zone URL rewriting.
443 - New: Cloudflare module — zone connect, auto-purge, dev-mode toggle.
444 - New: Object Cache module — Redis / Memcached config + status + flush.
445 - New: Browser Cache module — Cache-Control + Expires headers.
446 - New: Settings search across the entire dashboard with keyword highlighting.
447 - New: 3-step setup wizard on first activation with preset chooser and benchmark.
448 - New: Sidebar grouping under domain headers (Cache / Performance / Network / Insights / Tools).
449 - New: Sidebar tooltips + search shortcut in the collapsed rail.
450 - New: xspeed_branding filter — agencies can rebrand the dashboard.
451 - New: xspeed_cache_skip_for_post + xspeed_cache_expiry_for_post filters.
452
453 Pro-essentials (everything xSpeed Pro depends on, bundled here so any Pro release works against this single Free version):
454 - New: xspeed_module_descriptor filter — Pro hooks this to swap its panels to LicenseLockedPanel when license is invalid.
455 - New: AI Privacy module — GDPR off-switch + xspeed_ai_can_collect_data filter that Pro AI features must consult before recording visitor data.
456 - New: Pro upsell teasers — in-context inline cards on Cache, Minify, Lazy Load, Browser Cache and Disable Bloat panels.
457 - New: Locked Pro module rows in the sidebar — shows what Pro offers with a clear upgrade prompt.
458 - 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).
459 - New: Sidebar slot for the license module (appears when xSpeed Pro is installed).
460 - New: Global 36px form-control height baseline across the dashboard.
461 - New: filemtime() cache busting on admin asset URLs.
462
463 Improvements & fixes:
464 - Improved: React panel registry — modules auto-render in the dashboard.
465 - Improved: Portal-based save indicator — zero layout shift.
466 - Improved: Distribution zip prunes dev dependencies (composer install --no-dev).
467 - Fixed: 5 duplicate module icons + regression test.
468
469
470 = [1.0.0] – 2026-05-27 =
471 - Initial release.
472