LWS Optimize · Version history
LWS Optimize changelog and version history
- Latest version
- 4.1.7
- Oct 14, 2026 (26 days ago)
- Releases
- 100
- since 2022
- In the last year
- 17
- about one every 21 days
- Tested up to
- WordPress 7.1.4
- PHP 7.4 or later
Releases each year
- 20225 releases
- 20237 releases
- 202440 releases
- 202533 releases
- 202615 releases
202615 releases
LWS Optimize 4.1.7Latest
- Pages no longer wait for the LWS Critical CSS and unused CSS services: both now run in the background, one page at a time, and the cached page is refreshed once its result is ready. An uncached page could keep two PHP workers busy for a minute or more
- Critical CSS is only generated the way chosen in the settings (it also called the LWS service in local and manual modes), and a page whose generation fails is no longer retried in a loop
- Unused CSS removal no longer mixes up pages that share a stylesheet (styles could disappear from one of them) and leaves logged-in users’ pages alone
- The LWS CSS services are left alone for 15 minutes after an error or a timeout
- The local Critical CSS generator now finds the stylesheets of pages minified by the plugin: it never produced anything when HTML minification was on
- Critical CSS over 50 KB is no longer inlined: the local generator often kept over 100 KB of CSS, added to the HTML of every page. The LWS service is now the recommended and default Critical CSS mode, the “full” preset included
- The preload skips the pages that are never cached (cart, checkout, account, pages excluded by the user) instead of rendering them and logging a failure
- Preload URLs (?nocache=…) replayed by bots now redirect to the page itself: each one was a new URL for the server cache (Varnish), so every hit went through PHP. On the preload’s own requests the parameter is removed before WordPress reads the request, so links in cached pages can no longer carry it
- On sites using Memcached or Redis, a cache purge no longer wipes the Critical CSS of every page, nor the CSS jobs’ retry delays and service pause
LWS Optimize 4.1.6.5
- Fixed bug where wp_rand() would be called before pluggable.php, resulting in a Fatal Error
LWS Optimize 4.1.6
- Fixed forms and AJAX actions breaking on cached pages (Blocksy login/registration, REST-based forms, …): Tokens generated for visitors who are not logged in now stay valid for as long as the cached page carrying them is served
- Pages containing a SureForms form stay excluded from the cache: SureForms 2.6+ signs submissions with its own token, which expires after 48 hours whatever the cache does
- Fixed the plugin starting twice on every request: every hook was registered twice, so a single save purged the same page several times and filled the log with “URL purge debounced” lines
- Excluding the homepage (“/”) from the automatic purge now works: the homepage was still emptied by every automatic purge
- A site-wide purge (edge cache, opcache, object cache) delayed by the 30-second rule is now replayed once the window has elapsed, instead of being lost
- Cloudflare APO no longer purges on revisions and autosaves (the homepage was purged at the edge on every autosave), respects the URLs excluded from the automatic purge, and purges the commented post when a comment is posted (it purged an unrelated one)
- Cached pages are now served directly by Apache when the site lives in a sub-folder of the server’s document root (LWS subdomains, for instance): every cache hit went through PHP there
- The PHP intermediary script is restored automatically after a full cache purge
- Fixed a fatal error when WordPress cannot write files directly (WP-CLI run as root, some shared hostings)
- Values saved in the exclusion windows are now escaped when displayed
- The X-LWSOP-Cache header now says MISS, not BYPASS, on the request that creates the cache file, and HIT on pages served directly by Apache (it was missing there)
LWS Optimize 4.1.5
- AutoPurge no longer purges the same URL over and over: repeated events on one page (bulk edits, WooCommerce orders, comment bursts) are now collapsed into a single purge per 30-second window, per URL. A purge that arrives during that window is never dropped, only replayed once the window has elapsed
- Fixed the 30-second coalescing of site-wide purge side effects (edge cache purge, opcache reset, object cache flush), which had no effect at all on sites using a persistent object cache (Redis/Memcached): the lock it relied on was being erased by the very cache flush it was meant to throttle
- New option to exclude URLs from the automatic purge: those pages keep their cache when content changes, and are still cleared by a manual purge or when the cache expires. Supports the same “*” wildcards as the cache exclusions
- Fixed Cloudflare APO targeted purging, which sent a malformed request to the Cloudflare API on every automatic purge (failing, and leaving the page cached at the edge) instead of purging the URL that changed
- Cloudflare APO no longer sends two purge requests for the same URL when a post is saved
LWS Optimize 4.1.4
- AutoPurge now purge cache when WooCommerce stock changes
- Publishing a page now autopurge cache (refresh home, categories, …)
- Better WooCommerce cache exclusion, can catch customized permalinks
LWS Optimize 4.1.3
- GZIP/Brotli compression now also applies to cached pages served directly by Apache (without PHP), on servers where mod_deflate/mod_brotli are not loaded
- Apache compression detection is no longer fooled by the plugin’s own compression, so the PHP fallback is not disabled by mistake
- Cache purge no longer trigger on attachments
- Taxonomies no longer fully purged each time, now only purge relevant taxonomies to the purged page
- Improved image optimisation to consume less resources and correctly update image list (missing image, new image added, converted image missing, …)
- Listing array now include PATH + link to see the image instead of just name
- WooCommerce cart/checkout/my-account exclusion from the cache now also works with translated or customized page slugs (was only matching the default English slugs)
- WooCommerce AJAX requests (cart fragments, add-to-cart, …) are no longer cached
- Cache is now also cleared when a product’s stock changes (order completion, manual restock, …), not just when the product itself is edited
LWS Optimize 4.1.2
- Added AMP compatibility for the RUM Dashboard
- New option to choose where to fetch URLs to preload (either from the sitemap or the database)
- Fixed a bug where the optimization process (combine/minify/defer/delay) could run twice on the same page load on some setups (multisite, some translation/preview plugins)
- While using WooCommerce, WP EasyCart and Easy Digital Downloads, pages containing words like ‘cart’ of ‘checkout’ no longer get excluded from the cache
- The plugin’s own combined/minified CSS/JS files are no longer at risk of being combined/minified again
- Sitemap fetching no longer disables SSL certificate verification
- Reduced the amount and size of debug.log files from 15 files/5Go to 6 files/3Go
- Cache directory is now created before the first page is cached (instead of at the same time), with added logging, to better detected permissions issues (directory not created, cannot write)
- Fixed security issue with the RUM dashboard that could allow malicious individuals to inject JS code on the page (discovered by Artus KG)
LWS Optimize 4.1.1
LWS Optimize 4.1
- Improved RUM dashboard
- Bugfixes, notably data not correctly saved or with wrong values
- Switch to using dedicated table instead of wp_options
- Better UI
- More QoL options, like filtering and ordering stats, more presets for data deletion, detailed data instead of just the average
- Fixed “undefined variable” bug in JS, breaking the plugin options
- Improved CF APO, fixing minor issues + “400 Bad Request” error
- Fixed incompatibilities with SureForms, where forms would fail to be submitted once their nonce, cached, expired (until cache expiration)
- CSS/JS files processed by the plugin now gets Cache header and are cached correctly
- Preload auto-deactivation on finish removed, only deactivated manually
- New alternative cache serve file now has correct set of headers
- Clean up after DelayJS, instead of leaving dead code in the HTML
- Changed cron to stop after preloading exactly the amount of pages set in the preload, preventing rate-limit issues on some hostings
- Lots of minor bugfixes and diverses ameliorations, improving general stability
LWS Optimize 4.0
- New RUM stats + Dashboard, measuring performance+speed of visitors
- Auto-preload of Google Fonts added
- Improvement on DelayJS option, fixing exclusions not triggering and files wrongly defered
- Dashboard improved: better cache stats (+ actions), hit/miss stats, memcached stats
- Cloudflare APO added
- Widget LWSOptimize on WordPress dashboard added, to follow cache stats easily
- Global optimisations of caching actions
- New fallback for the preloading if sitemaps are unavailable
- Brotli now correctly supported instead of defaulting to GZIP
- Security improvements and bugfixes
- Improved object-cache.php file
- Better Memcached management, especially with other object-cache plugins activated
- New options for Critical CSS, allowing manuel input or using the server PHP instead of external URL
LWS Optimize 3.4.1
- Fixed issue where activating Memcached could result in an error 500 depending on server configuration
- Improved CSS/JS optimisation, avoiding regenerating files if not modified
LWS Optimize 3.4
- Stricter admin access for Optimize functions
- Fix issue with CriticalCSS that could result in E500
- Improved stability of optimization, reducing errors
- Improved Lazy-loading, fixing issue with above-the-fold images not loading correctly
LWS Optimize 3.3.21
- Fixed broken link in plugin topbar
LWS Optimize 3.3.20
- Changed way external URLs are managed by the minification/combinaison to fix issues where CSS would get deleted
- Added warning if LWSCache is activated
- Added a new URL parameter, “?do_not_cache_lwsoptimize=1”, that bypass Optimize cache
- Fix security issue where it was possible to use the generated cache for arbitrary file-read
LWS Optimize 3.3.19
- Fixed issue where DataTable would not be loaded for the “Image” tab and cause JS errors
- Changed Preload UserAgent to allow HTTP/2 and simplify it
202533 releases
LWS Optimize 3.3.18
- Fixed issue with Cloudflare on rare cases
- Fixed issue with the checksums of the plugin not matching with SVN (which causes issues with wp verify-checksums, notably)
LWS Optimize 3.3.17
- Only options in “Front-End” now clear cache when changed (instead of all options)
- Cache is emptied less often now (removed on update, on preload start and on temporary deactivation cleaning)
- Updated sitemap fetching to prevent issues when WordPress can’t find the original sitemap (due to plugins) ; will now check sitemap_index.xml and wp-sitemap.xml more reliably Fixed issue with the cache-cleaning cron that would be executed too soon and too often, preventing cache creation
LWS Optimize 3.3.16
- Fixed issues where directories/files could not be created during page caching, resulting in CSS/JS not being loaded and white page appearing
LWS Optimize 3.3.15
- If an image cannot be converted, then it is now removed from the queue, fixing issues where cron would run forever
LWS Optimize 3.3.14
- Fixed “Warning : Deprecated” showing when WP_DEBUG is active
- Fixed incompatibilities when using JS Minifier/Combine
- Added FluentBooking “app.js” file to the exclusions
- CSS and JS Combine and Minify are now completely separate (Combining does not Minify by default unless selected)
LWS Optimize 3.3.13
- Updated logs to add a refresh button
- Fixed missing translations
- Added a Feedback button
LWS Optimize 3.3.12
- Fixed an issue with the preload, where the cron would go over and over without stopping, repeating the same urls indefinitely
LWS Optimize 3.3.11
LWS Optimize 3.3.10.5
- Very minor update to get rid of the “load_textdomain” warning
LWS Optimize 3.3.10
- Fixed Fatal Error on comment purge
- Fixed comment purge not actually purging anything
- Removed HTML Minification from default configuration due to too many issues
- HTML Minification now not recommended and with warning
LWS Optimize 3.3.9
- Clear cache after any changes have been made in the “Customize” page
- Added back a filter to clear all cache : lws_optimize_clear_all_filebased_cache
- In the same vein, the filter lws_optimize_clear_filebased_cache, taking an url as argument, clear the cache of said url
- Changed image conversion to prevent cron from failling to start, forcing users to start it multiple times
- Fixed bug where deactivating/activating plugin would fail with a 403 at the end
- Fixed issue where files already minified (i.e. : .min.js | .min.css) would get re-minified, causing potential issues
- Changed Min/Combine files from .css|.js to .min.css|.min.css
- Minor changes to the HTML Minification
LWS Optimize 3.3.8
- Dynamic Cache now removed when deactivating plugin
- Fixed issue where “Clear all” button would not empty dynamic cache
- Fixed typos
- Image warnings (if librairy is too old) now moved to the modale
- Autopurge will now purge related pages (like /blog, tags and categories pages)
LWS Optimize 3.3.7
LWS Optimize 3.3.6
LWS Optimize 3.3.5
LWS Optimize 3.3.4
LWS Optimize 3.3.3.1
LWS Optimize 3.3.3
LWS Optimize 3.3.2.5
LWS Optimize 3.3.2.1
LWS Optimize 3.3.2
LWS Optimize 3.3.1.1
LWS Optimize 3.3.1
LWS Optimize 3.3
LWS Optimize 3.2.4.3
LWS Optimize 3.2.4.2
LWS Optimize 3.2.4.1
LWS Optimize 3.2.4
LWS Optimize 3.2.3
LWS Optimize 3.2.2.3
LWS Optimize 3.2.2.2
LWS Optimize 3.2.2.1
LWS Optimize 3.2.2.0
202440 releases
LWS Optimize 3.2.1.5
LWS Optimize 3.2.1.4
LWS Optimize 3.2.1.3
LWS Optimize 3.2.1.2
LWS Optimize 3.2.1.1
LWS Optimize 3.2.1
LWS Optimize 3.2.0.7
LWS Optimize 3.2.0.6
LWS Optimize 3.2.0.5
LWS Optimize 3.2.0.4
LWS Optimize 3.2.0.3
LWS Optimize 3.2.0.2
LWS Optimize 3.2.0.1
LWS Optimize 3.2
LWS Optimize 3.1.7.6
LWS Optimize 3.1.7.5
LWS Optimize 3.1.7.4
LWS Optimize 3.1.7.3
LWS Optimize 3.1.7.2
LWS Optimize 3.1.7.1
LWS Optimize 3.1.7
LWS Optimize 3.1.6.5
LWS Optimize 3.1.6.4
LWS Optimize 3.1.6.3
LWS Optimize 3.1.6.2
LWS Optimize 3.1.6.1
LWS Optimize 3.1.6
LWS Optimize 3.1.5
LWS Optimize 3.1.4
LWS Optimize 3.0.2
LWS Optimize 3.1.3
LWS Optimize 3.1.2
LWS Optimize 3.1.1
LWS Optimize 2.1.2
LWS Optimize 3.1.0
LWS Optimize 3.0.1
LWS Optimize 3.0
LWS Optimize 2.1.1
LWS Optimize 2.1
LWS Optimize 2.0
20237 releases
LWS Optimize 1.9.1
LWS Optimize 1.9
LWS Optimize 1.8.6
LWS Optimize 1.8.5
LWS Optimize 1.8
LWS Optimize 1.7
LWS Optimize 1.6.5
20225 releases
LWS Optimize 1.6
LWS Optimize 1.5
LWS Optimize 1.2
LWS Optimize 1.1
LWS Optimize 1.0
Questions about LWS Optimize’s releases
What is the latest version of LWS Optimize?
4.1.7, released on Oct 14, 2026 (3 weeks ago). It’s tested up to WordPress 7.1.4 and needs PHP 7.4 or later.
How often is LWS Optimize updated?
17 releases in the last year, about one every 21 days. Its first release on WordPress.org dates from November 2022.
Know when your rivals ship
Track your plugin and its rivals: TrackWP sees each new release in the nightly snapshot and alerts you, with what it did to their rank.
Start freeRelease dates come from the day each version’s folder was made in LWS Optimize’s WordPress.org SVN repository; the notes from its readme’s changelog, as its authors wrote it.