Changelog
Version 2.1.0
August 17, 2026- Improved: Optimization results in the Warp cloud are managed separately for each site. Pages are optimized again as they are visited.
- Improved: Refined request handling between your site and the Warp cloud.
- Improved: Updated connection verification for communication with the Warp cloud.
- Fixed: Regenerating Used CSS for a page did not clear the last recorded failure, so the dashboard could continue showing an old error after a successful retry.
- Improved: Lazy render now uses additional confirmation before applying changes to an element, providing more reliable results across different visitors and networks.
- Improved (Cloud): Saved optimization results are now stored in a more compact format, allowing significantly more results to be retained before older ones are removed. This reduces how often pages need to be optimized again and applies to all sites, regardless of the plugin version they are running.
Version 2.0.2
August 8, 2026- Improved: Purge Everything now keeps minified stylesheets, scripts and downloaded fonts. Their names come from their contents, so rebuilding one produces the same file. Deleting them refreshed nothing and only risked breaking pages that were still pointing at them. Run
wp warp-performance purge-assetsif you ever need them rebuilt. - Improved: Minified stylesheets are rebuilt under new names in this release, so any browser still holding a broken copy from the problem below picks up a fresh one.
- Fixed: A page could lose its styling for up to a year with nothing wrong on the server. Updating the plugin deleted every minified stylesheet and script, and the Cloudflare rule Warp creates was set to hold files for a year without being told to leave errors alone. A visitor asking for a file in the moment it was missing caused Cloudflare to store that error and keep serving it long after the file was back, because the address of the file never changes. Updates no longer delete these files, and Cloudflare is no longer allowed to store errors for them.
- Fixed: Deactivating the plugin, which every update does, threw away every saved Used CSS result. Sites had to be optimized from scratch after each update. Only cached pages are cleared now.
Version 2.0.1 (internal)
August 2, 2026- New: Regenerate Used CSS. If a page renders with missing styles, use “Regenerate Used CSS for this page” in the toolbar. For the whole site, use “Purge Everything and Regenerate” under Settings. Pages are optimized again as they are visited, so no crawl is started.
- Improved: Testing the Cloudflare connection now also reports whether your cache rules are actually in place, and tells you if the API token cannot manage cache rules. Previously it only confirmed the zone could be reached, so it could report success while no rules existed at all.
- Improved: Pages are now held by your CDN for 30 days instead of a year. Cache purges are unaffected; this only limits how long an outdated copy can survive if a purge never reaches it. Images, CSS and JavaScript are unchanged and still cached for a year.
- Improved: Pages no longer stay out of your CDN indefinitely when Remove Unused CSS cannot finish. After repeated failures, or while the cloud is unreachable, they are cached without it.
- Improved: Page rendering no longer re-reads and re-hashes every stylesheet on each visit, cutting render time on sites with a lot of CSS.
- Improved: Changing the preload amount or delay no longer clears the cache and re-crawls the site.
- Improved: Cache purges are much faster on large sites. Warp keeps small helper files that let it skip repeated work while preparing CSS, and these were never cleaned up. On sites with tens of thousands of pages they built up into the hundreds of thousands and every purge had to read through all of them. They are now cleared automatically in the background.
- Improved (Cloud): Remove Unused CSS no longer gives up on a slow stylesheet after five seconds, so a busy site can still be optimized. A genuinely missing stylesheet still fails immediately.
- Fixed: A staging site sharing a Cloudflare zone with the live site could take over the live site’s cache rules and then delete them when Cloudflare was switched off on staging. The live site was left uncached at the edge with no warning. Rules are now matched to the site that created them, and a rule belonging to another install is never adopted or deleted.
- Fixed: Once Cloudflare cache rules went missing they could never come back. Warp kept updating rules that no longer existed without checking the result, and reported success every time. It now verifies the update and rebuilds any rule that has gone.
- Fixed: Activating the plugin could delete your Cloudflare cache rules when the integration was not fully configured.
- Fixed: Updating to 2.0 could push PHP workers to their limit and leave the site slow or unresponsive. The update cleared every saved Remove Unused CSS result and started a full site preload at the same time. Updates no longer do either.
- Fixed: Remove Unused CSS could leave a stylesheet out entirely and break layouts, most visibly on Bricks sites where containers ran past the edge of the screen on phones. Minified stylesheets are now written in a single step so nothing can read one half finished, and an empty cached stylesheet is rebuilt instead of used.
- Fixed: Preload could run up to twenty pages at once, double the limit of ten described in 1.2.7, because the limit applied to each batch rather than the total. The documented limit is now enforced. Default installs are unaffected; sites that raised the worker count with a filter will now stay within the same total.
- Fixed: A page could stay without its optimized CSS indefinitely. When the cloud’s copy of a result expired, Warp kept asking about a result that no longer existed instead of requesting a new one, and a page already sitting in the cache never re-rendered to trigger one. Warp now spots this and sends the page for optimization again on its own. Recovery is rate limited so a large site catches up gradually instead of all at once, and your CDN is left alone.
- Fixed (Cloud): A bad Used CSS result could never be replaced. The cloud kept its own copy and returned the same result however often the cache was purged.
- Fixed (Cloud): Remove Unused CSS now stops when a stylesheet is missing or incomplete instead of saving the result, so a brief glitch cannot be stored as a finished optimization.
- Fixed (Cloud): Font fallback metrics are generated again, so text no longer shifts when a web font finishes loading.
Version 2.0.0
July 30, 2026- New: Local image optimization. Convert your images to WebP or AVIF on your own server, served through a picture element so browsers without support still get the original. One format at a time, and off by default.
- New: Optional in-place compression of the original upload, with an automatic backup you can restore at any time. Works on the whole library or one image.
- New: Media Library integration: a Warp column with per-image Optimize and Restore, bulk actions, and keyword exclusions.
- New: Optional image width limit. Oversized sizes are dropped from the list browsers choose from, cutting page weight on image-heavy pages. Off by default.
- New: Delay JavaScript now has a safety net that stops any theme or plugin from leaving the page blank or blocking scrolling while scripts wait to load.
- New: Purge Object Cache from the WordPress toolbar, shown only when a persistent object cache is in use.
- Improved: Image optimization never deletes anything in your uploads folder. Generated files and backups live outside both the media library and the Warp cache.
- Improved: Images held by a media offload plugin, on S3 or elsewhere, are detected and skipped. In-place compression is disabled entirely while one is active.
- Improved: The preload for your largest above-the-fold image now points at the converted file and declares its format, so the browser no longer downloads both copies.
- Improved: Delayed scripts now have a guaranteed start deadline, and Warp replays the scroll and resize events browsers would have sent, so sliders and counters start without waiting for the visitor.
- Improved: Stale optimization cache files are cleared automatically on upgrade.
- Improved (Cloud): Remove Unused CSS now records why it could not finish instead of failing silently, and never serves an unparsed stylesheet as “optimized” CSS.
- Fixed: AVIF images could push the rest of the page down as they loaded, because the picture element Warp wraps them in took over the image’s layout box. WebP was never affected.
- Fixed: Bricks sites: Remove Unused CSS could stay stuck on “pending”, pages were re-sent for optimization on every load, entrance animations left the page blank with Delay JavaScript on, and the Bricks integration never activated at all.
- Fixed: Embedded forms and widgets that load through their own script, such as Tally, could stay permanently blank.
- Fixed: With Remove Unused CSS set to Interaction, deferred stylesheets and interaction-loaded videos loaded on their own even when the visitor never touched the page.
- Fixed: Scripts declared as “application/javascript” were skipped by Delay and Defer JavaScript, so third-party scripts kept loading at full speed.
- Fixed: Entrance animations for content already on screen no longer replay once delayed scripts load.
Version 1.2.7
July 20, 2026- New: Added Etch page builder support with automatic cache purging and preloading after design changes.
- Improved: Deferred Remove Unused CSS now loads only after real user interaction, improving PageSpeed Insights “Reduce unused CSS” results.
- Improved: Background preloading is now more efficient with lower PHP worker usage, automatic cloud CSS retries, and preload concurrency capped at 10 for better server stability.
- Improved: Cloudflare cache purges are now processed reliably without loopback requests or cron, preventing stale cached assets.
- Improved: Better responsive image handling, CDN image dimension detection, LiteSpeed cache mode detection, and broader server compatibility.
- Improved (Cloud): Remove Unused CSS now preserves interaction states (hover, focus, checked, disabled, etc.), fixing styling issues on modern themes and page builders.
- Fixed: Analytics (RUM) and lazy-render verification beacons now send reliably without CORS preflight failures.
- Fixed: Responsive LCP image preloads now prevent duplicate hero image downloads and always preload the correct image size.
- Fixed: Eager images now receive proper
sizesattributes, preventing oversized LCP image downloads. - Fixed: Remove Unused CSS exclusions now work correctly even when CSS minification is enabled.
- Fixed: Mobile cache detection now stays consistent across WordPress, Apache, Nginx, and LiteSpeed.
- Fixed: Duplicate image preloads, preload queue deadlocks, unnecessary cache configuration rewrites, PHP 8.1–8.5 deprecation notices, and various dashboard/configuration issues.
- Removed: Removed the obsolete Bricks CSS exclusion, as the cloud optimizer now handles it automatically.
Version 1.2.6
July 7, 2026- New: Added AI Assistant (MCP) support for Claude, ChatGPT, the WordPress AI Client, and other MCP-compatible assistants. Secure, read-only access is enabled by default, while write access is optional and credentials are never exposed. Requires WordPress 6.9 or later.
- New: Added Cache Mode selection with Auto, File-based, and Server-native (LiteSpeed) options for better compatibility across different hosting environments.
- New: Added Brotli compression for cached pages with automatic Gzip fallback when Brotli is unavailable.
- Improved: Background preload and cloud CSS optimization no longer rely on WP-Cron, making caching more reliable on hosts where WP-Cron is disabled or throttled.
- Improved: Reduced database load on large websites by removing unnecessary WordPress cron updates during cloud status checks and Cloudflare cache purges.
- Improved: Settings now save instantly while cache purge and preload continue in the background.
- Improved: Serve-stale cache revalidation now works without scheduled events, keeping cached pages fresh automatically.
- Improved: Preload verification now uses a dedicated database table instead of large WordPress options for better performance.
- Fixed: Resolved an issue where Separate Cache for Mobile on LiteSpeed and OpenLiteSpeed servers could create invalid rewrite rules that caused site-wide 404 errors.
- Fixed: Background cache purges on LiteSpeed and OpenLiteSpeed now reliably clear the server cache after CSS optimization.
- Fixed: The Save button no longer incorrectly shows unsaved changes immediately after opening the dashboard.
- Fixed: The preload queue no longer restarts from the beginning when settings are saved multiple times during a large preload.
- Fixed: Resolved a rare crash that could occur when two cache purges ran at the same time.
- Fixed: Cache Mode is now applied consistently, preventing duplicate page caching on LiteSpeed servers when File-based mode is selected.
Version 1.2.5
June 11, 2026- Security: The Warp Performance dashboard, admin toolbar, and cache actions are now limited to administrators by default. Other roles can be granted cache-management access — without exposing plugin settings — under Settings → Access Control
- Improved: Cloudflare edge cache now clears within seconds of publishing or updating a post, even on hosts where WP-Cron is unreliable — keeping news and frequently-updated sites fresh at the edge
- Improved: Smarter Cloudflare purging — rate-limit-aware automatic retries, self-recovery if a background purge is missed, and no more redundant or unnecessary per-device purges
- Improved: Per-device Cloudflare variants are only purged when Separate Mobile Cache is enabled, cutting purge volume on high-traffic sites
- Fixed: Publishing a post no longer fires 404 warming requests for paginated tag archives that only have a single page
- Fixed: Icons now display correctly on the Core Web Vitals cards
- New: Device-aware preloading — desktop and mobile cache variants are queued, warmed and verified separately when Mobile Cache is enabled
- New: Brotli compression option in Cache settings — serve cached pages with Brotli instead of Gzip when your server supports it
- New: Early Hints support — per-page preload headers for fonts and LCP images let browsers start fetching before the HTML arrives
- New: Metric-matched font fallbacks generated in the cloud — system fallback fonts now occupy the same space as your web fonts for near-zero layout shift
- New: Background hero images are now detected in the cloud and preloaded with high priority for faster LCP on builder sites
- Improved: UsedCSS is now minified in the cloud — up to 30% smaller inline CSS on every cached page
- Improved: Smarter image preloading — logos and icons no longer consume preload slots, and only the true LCP candidate gets high priority
- New: Warp Cloud now detects above-the-fold images automatically — featured and hero images are eager-loaded and preloaded without tuning “Exclude First X Images”
- New: Immutable browser caching for static assets eliminates revalidation requests on reload
- Improved: UsedCSS is now generated per device viewport — desktop and mobile pages each get their own optimized CSS
- Improved: Preload queue worker is now protected by signed internal tokens
- Improved: LiteSpeed/OpenLiteSpeed preloads now wait for UsedCSS readiness and respect server-side mobile cache variants
- Improved: One-off preloads (post update, comment, purge) now run through the queue with full device handling and verification
- Improved: Cached pages stay eligible for the browser back/forward cache for instant history navigation
- Improved: Content-Length and Vary: Accept-Encoding headers on cached responses for better proxy and connection handling
- Fixed: Separate Mobile Cache toggle now correctly writes and serves dedicated mobile cache files
- Fixed: Apache fast-path no longer lets CDNs cache pages before UsedCSS is ready
- Fixed: Queue retries no longer purge LiteSpeed cache indefinitely when the cloud is unreachable
- New: Serve-stale-while-revalidate — pages keep serving instantly while the cache refreshes in the background, avoiding origin load spikes after a purge
- New: “CDN Varies by Device” setting — safely cache desktop pages at the CDN edge when a separate mobile cache is active
- Improved: Preload now warms very large sites reliably in the background, without stalling, timeouts, or reliance on WP-Cron
- Fixed: Purging the cache on very large sites no longer fails with an out-of-memory error
- Fixed: Cloudflare now connects with the new API token format
- Fixed: Mobile and currency cache variants are no longer incorrectly served from the CDN edge
Version 1.2.4
June 3, 2026- Fixed: Cloudflare single-url not purging after page update
- Improved: UsedCSS generation for Elementor & Bricks Builder per URL
Version 1.2.3
May 24, 2026- Fixed: Cache not purging issues
- Fixed: Cloudflare cache purge issues
- Improved: Bunny DNS URL handling
- Compatibility: WordPress 7.0 support
Version 1.2.2
May 16, 2026- New: Introducing Preload Engine 2.0 for faster and more stable cache preloads
- Improved: Better UsedCSS handling during cache generation and preload
- Improved: Safer cache writes and deletions
- Improved: Atomic WP config updates using temporary file replacement
- Improved: Social crawlers excluded from page cache for accurate previews
- Improved: Better lazy-load processing for images, iframes, videos and lazy render elements
Version 1.2.1
April 30, 2026- Improved: Better handling of responsive srcset images
- New: Lazy loading support for Elementor video widgets with self-hosted thumbnails
- New: Request-level caching for lazy-load exclusions
- Improved: Regex early-exit optimizations
- Fixed: Global replacement issue in lazy-loaded tags
- Fixed: CSS selector regex matching issue
Version 1.2.0
April 24, 2026- Added: Easy Starter for fresh installations
- Fixed: Cache preload after plugin reactivation
- Fixed: Search bar input issue
Version 1.1.9
April 22, 2026- New: Lazy Render Elements
- Fixed: Vary Cookie delivery for Nginx
Version 1.1.8
April 17, 2026- Improved: Font Manager
- Fixed: Preloading of locally hosted Google Fonts
Version 1.1.7
April 14, 2026- Improved: Nginx cookie control
- Improved: Cloudflare cache control
Version 1.1.6
April 14, 2026- New: Staging support
- Fixed: Bunny DNS Proxy compatibility
Version 1.1.5
April 13, 2026- Improved: UsedCSS and Delay Script logic
- Improved: Cloudflare edge cache rule
Version 1.1.4
April 13, 2026- Improved: Bunny DNS caching
- Improved: Cloudflare HTML caching
- Improved: Native LS/OLS and Nginx cache strategy
Version 1.1.3
April 12, 2026- Fixed: Google Font self-hosting issue
- Fixed: GenerateBlocks CSS issue
- Fixed: PHP 8.5 issue
- Added: Google Fonts v2 support
Version 1.1.2
April 11, 2026- Fixed: 3rd party delay exclusion issue
Version 1.1.1
April 10, 2026- Fixed: UsedCSS API
- Added: License fix
Version 1.1.0
April 9, 2026- New: WooCommerce nonce reload
- Fixed: Database and browser cache fixes
Version 1.0.0
April 1, 2026🎉 Initial Release