We strive to improve WP-Optimize continuously, so please review the changes below to stay informed about the newest features and improvements. If you have any questions or need further assistance, don’t hesitate to reach out to our support team.
You can find more detail about each release and important changes in our blog.
Changes
- Fix: Page builders not working with Delay JS option enabled.
Changes
- Feature: Premium – Improve performance by caching Gravatar images locally.
- Fix: Premium – Unused images – Fixed warnings when moving non existing image to trash
Changes
- Fix: File system usage issue.
Changes
- Feature: Delay JavaScript execution.
- Fix: Cache – Fixed PHP warning “Cannot modify header information”.
- Fix: Minify – Unusual behavior occurs when the “Disable Google Fonts processing” option is enabled.
- Fix: Smush – Fixed image compression actions in Media Library.
- Refactor: Replacing jQuery Tablesorter with ‘sortable-tablesort’ package.
- Tweak: Cache – Enhance ActivityPub compatibility.
- Tweak: Fix PHP notice caused by Subscriben plugin advert.
- Tweak: Minimum requirements were updated to PHP version 7.2 and WordPress version 4.9.
- Tweak: Remove uses of unserialize without restriction of allowed_classes.
- Tweak: Recognise Independent Analytics Pro plugin tables in database optimization.
Changes
- Feature: Added a system status page
- Feature: Logs frequent and highly recurrent 404 requests; introduces a new Performance tab.
- Fix: Cache – Legacy Widgets visibility issue with WP-Optimize Cache enabled
- Fix: Cache – UI issue: Preload “Cancel” option is gone after reloading the WPO settings page instantly
- Fix: Database – optimizing any item also changes the status of other items
- Refactor: Minify – Removal of the
WPO_MINIFY_PHP_VERSION_MET
constant
- Tweak: Add a warning message before deleting post metadata or orphaned relationship data.
- Tweak: Bailout early if the minimum PHP version is not met
- Tweak: Introduced logging for cache purge operations, available under
uploads/wpo/logs/cache-*.log
- Tweak: Open CRON overdue guide in new tab
- Tweak: Persist Analytics Tab when minification is disabled
- Tweak: Premium – Unused Images – Improved detection of images not present in the Media Library, marking them as used
- Tweak: UI improvements in Analytics section
- Tweak: Wrapped checkboxes inside
label
tags in the confirmation popup that appears when clicking the “Remove” button on the Database > Tables tab.
Changes
- Tweak: Resolved a PHP notice caused by translation loading too early when caching is enabled, introduced in WordPress 6.7
Changes
- Feature: Added an option to automatically preload URLs immediately after cache content is purged
- Feature: Premium – Gather data about table usage by filtering
query
event
- Fix: Cache – Scheduled preloading wasn’t working
- Fix: Inconsistency in
smush_manager_send_command
function
- Refactor: Smush – Popup styles, remove unused code
- Tweak: Fix fatal implode error when updating to v3.5.0
- Tweak: Image compression – Issue with cancelling smush image compression
- Tweak: Improve module minification logic
- Tweak: Premium – Unused images – Fixed popup when moving images to or restoring images from the trash
- Tweak: Premium – Unused images – Placeholder images in unused images section
- Tweak: Added
security.md
file with information to report security issues
Changes
- Feature: Premium – Auto-detect images lacking dimension attributes and add them to improve CLS
- Fix: Fixed the issue that disabled WebP conversion due to checking all shell commands for WebP compression
- Fix: Premium – Unused Images – The unused image size deletion functionality does not work when images are not in the /yyyy/mm/ folder
- Refactor: Removed unnecessary static methods in WebP class
- Tweak: Image compression – Rolled back to using popup error notices as in versions prior to 3.4.0
- Tweak: Added a more descriptive error with resolution proposals for failed gzip compression and browser cache tests
- Tweak: Fix broken unused image list thumbnails and download as csv link in Multisite
- Tweak: Fix the singleton pattern in Heartbeat class
- Tweak: Image compression functionality added to the Media Library page
- Tweak: Premium – Cache – Added support for Aelia Currency Switcher plugin
- Tweak: Premium – Unused images – improve clarity in UI for images in post revisions
- Tweak: Added additional checks to the
implode()
function to mitigate the risk of fatal errors on certain instances
Changes
- Feature: Premium – Host Google and minimal analytics scripts locally
- Fix: Premium – Cache – Single page cache purge/preload feature isn’t working
- Tweak: Add logging for the WebP feature
- Tweak: Allow minification of script modules
- Tweak: Cache – Purge the cache when the site is migrated
- Tweak: Improvements to asset minification cache logic
- Tweak: Improvements to reSmushIt curl error message
- Tweak: Minify – Added an option to disable Google Fonts processing when it causes conflicts with other plugins
- Tweak: Move all WPO files from the
uploads
folder to uploads/wpo
- Tweak: Style improvement of the loading modals
Changes
- Fix: Removes unnecessary heartbeat calls for retrieving information about images
Changes
- Fix: Issue with bulk editing on the posts and pages edit screen
Changes
- Feature: Premium – Smush – Bulk compress / restore from media library
- Fix: Deactivate the form for minifying JS/CSS settings when the corresponding option is disabled
- Refactor: The functionality for the ‘Unused Images’ feature in ACF has been moved to a separate class
- Tweak: Add UpdraftCentral commands for the latest WP-Optimize features
- Tweak: Adjusted the scheduled preload time for improved performance
- Tweak: Auto-update
advanced-cache.php
settings during site migration
- Tweak: Cache – Human-readable file names for the cache directory
- Tweak: Caching related cron jobs are activated even though cache is disabled
- Tweak: Image compression – Updated message for restoring images action
- Tweak: Implement Heartbeat API for image compression progress updates
- Tweak: Improving vendor autoload
- Tweak: Introduces a hook (
wpo_force_webp_serve_using_altered_html
) for changing WebP serving method
- Tweak: Minify – Exclude .min files from minification
- Tweak: Minify – Improve list of processed files UI
- Tweak: Optimization of the
get_uncompressed_image
query
- Tweak: Persist script loading strategy when minifying JS files
- Tweak: Premium – Compatibility with Curcy WooCommerce multi currency plugin
- Tweak: Premium – Unused Images – Added an option to delete original images when scaled versions exist
Changes
- Fix: Ensure the admin bar is not cached when caching is enabled for both logged-in and guest users
- Refactor: Remove unused code
- Tweak: Cache – Prevent sitemaps being cached
- Tweak: Display a notice when static browser cache is enabled but not working
- Tweak: Premium – Added “Lost your password?” link on plugin’s page
- Tweak: Premium – Unused images – Detect Elementor’s ‘Video’ widget’s image
- Tweak: Recognise Rank Math plugin tables as used in database optimization
- Tweak: Reduce .htaccess file write operations when WebP is enabled
- Tweak: Seasonal notice content update for 2024
- Tweak: Unused Images – Unused tab displays multiple images for compressed images with WebP Conversion
- Tweak: Prevent multiple AJAX requests being generated by repeated clicks on the “Purge Cache” button
- Tweak: Call the
litespeed_finish_request()
function when attempting to close browser connection on LiteSpeed servers
Changes
- Fix: Cache – Compatibility issue with Jetpack’s infinity scroll feature
- Fix: Cache – Don’t cache activity stream (ActivityPub plugin compatibility)
- Fix: Cache – Page not cached comment is added to
robots.txt
- Tweak: Fix PHP warnings when server variables are not available
- Tweak: Fix Unexpected response alert and PHP warning when cache preloading is triggered manually
- Tweak: Migrate from setInterval to WP heartbeat API to refresh information about backend tasks
- Tweak: Optimization of the WebP Implementation
- Tweak: Update dashboard notice to include all of our plugins
- Tweak: Update the footer review prompt
Changes
- Feature: Premium – Ability to preload and purge caches from individual post/page
- Fix: Premium – Unused Images – Recognise Elementor’s Container, and Section widget background images
- Fix: Avoid having repeated minified scripts in the same bundle, it breaks the code in some specific cases
- Fix: Cache – TranslatePress compatibility – Post updates purges cache for all related translated languages
- Fix: Only try to parse canonical URLs if there is a path or querystring, needed for WPML with multi-domain compatibility
- Tweak: Add cron de-scheduling of all wpo_* events during plugin uninstall
- Tweak: Cache – Always add source code comment about page not being cached, but only add details when WP_DEBUG is ON
- Tweak: Cache – Fix issue with excluding encoded (non-latin) URLs
- Tweak: Do not attempt to close browser connection when the context is not an AJAX action
- Tweak: Minify – Logging more information about why minify static assets cache gets invalidated and regenerated
- Tweak: Revert to the original
matthiasmullie/minify
repository after confirming resolution of previous issues
- Tweak: Setup Cron job to clear failed smush tasks from DB
- Tweak: Using clear text user agent strings instead of regular expressions to identify web browsers for improved clarity
- Tweak: Updater library in the Premium version updated to the current release series
Changes
- Tweak: Cache – Show a notice in the admin if the config file is missing and caching is enabled
- Tweak: Added support for new emoji styles related hooks introduced in WordPress 6.4
- Tweak: Database – Fix “Optimize database tables” stuck loading state
- Tweak: Premium – Cache – Style improvement for the select2 box from advanced cache settings
- Tweak: Premium – Images – Fix issues with avif images in the unused images feature
- Refactor: Wrapping most of the external links in the WPO settings pages with the appropriate function
- Refactor: Remove unused code
Changes
- Fix: Prevent PHP fatal error when updating from older versions of WP-Optimize
Changes
- Fix: WebP – Performance issue because of possible infinite loop
- Fix: Cache purging occurred prior to the cache lifespan expiration
- Fix: Premium – Smush – Do not consider images in trashed posts as unused
- Tweak: – Remove extra slash from plugin asset urls and paths
- Tweak: Image – Add a tooltip next to the restore button on the edit media screen
- Tweak: Premium – Prevent PHP deprecated warning when generating variations from attributes for new WooCommerce variable products
- Tweak: Premium – Purge cache when the
Variation Swatches for WooCommerce
plugin settings get updated
- Tweak: Premium – Settings – Style improvement for the
Purge cache permissions
select2 box
- Tweak: Recognise LearnDash plugin tables in database optimization
- Tweak: Remove empty
uploads/.htaccess
file and remaining cron events
- Tweak: Smush – Disable server info in smush logs by default
- Tweak: Smush – Resolve double log entries when compressing a single image from the media library metabox
- Tweak: Prevent unwanted PHP notice upon update
Changes
- Fix: Cache – Relevant caches are now purged upon updating homepage display settings and posts per page settings
- Fix: Minify – Multiline content inside textareas break after exporting and importing settings
- Fix: Smush – Images are not compressed with default (image quality = 100) settings
- Fix: Premium – Cache – Caching stops working when WordPress salt keys contain backslash
()
character
- Fix: Premium – User per role cache not working when tables do not have
wp
prefix
- Fix: Premium – When lazy loading is enabled, the picture tag in initial viewport is not visible
- Tweak: Fixed date format and timezone in the cache last modification comment according to the site configuration
- Tweak: Fixed spelling errors in the repository
- Tweak: Minify – The process of purging cache for 3rd party caching solutions now works properly when multiple other solutions are present
- Tweak: Premium – Lazy load – Added Jetpack, Optimole, Rocket Lazy Load, and Smush (WPMU Dev) plugins to the incompatibility notice
- Tweak: Prevent PHP warning upon installing themes from the WordPress repository
- Tweak: Update the composer package yahnis-elsts/plugin-update-checker for PHP 8.2 compatibility
Changes
- Fix: A bug in the v3.2.17 release that caused certain database optimization buttons to be disabled has been fixed
- Tweak: Reset WebP serving method upon updating to version 3.2.18
Changes
- Fix: Automatically compress newly-added images feature now works on multisite in case of attachment ID is the same in both sites
- Fix: Minify – No separate try-catch blocks for same handle
- Fix: Premium – Unused Images – Recognise Elementor Carousel, Slides, Flip Box, and Site logo widget images
- Fix: Premium – Prevent memory exhausted PHP fatal error when using unused images feature with Elementor
- Tweak: External links will open in new tab/window
- Tweak: Remove
htaccess-capability-tester
dependency
- Tweak: Remove residue folders in
uploads/wpo
Changes
- Fix: HTML minify should not remove
title
tag added by AIOSEO
- Fix: Premium – Fetching unused images data is incorrect when previous task queue is not properly unlocked
- Fix: Premium – Unused Images – Recognise Elementor background images
- Tweak: Premium – Prevent conflicts between the minify feature and the
YITH Point of Sale for WooCommerce
plugin
- Tweak: Premium – Compatibility issue with Smart Slider 3
- Tweak: Suppress PHP warnings caused by WebP converter
- Tweak: Database optimization – Prevent duplicate AJAX requests, minor code improvements
- Tweak: Smush – Add a cron job to run pending image compressions, ensuring completion of the process even if bulk image compression encounters interruptions or failures
- Tweak: Clean up files on uninstall
- Tweak: Added compatibility for
Custom Permalinks
plugin
- Tweak: If minifying is enabled, then check that the purge cron event exists (not only upon plugin activation)
- Refactor: Premium – Unused Images – Separate classes for Beaver Builder, Estatik, and Yoast SEO plugins
- Fix: Premium – WP CLI commands permission issues solved
Changes
- Feature: Premium – Cache – Added compatibility with the “WooCommerce Multilingual & Multicurrency” plugin’s multi-currency feature
- Fix: Premium – Above the folder elements should not be loaded lazily
- Fix: Prevents minify cache invalidation when asset version is changed but content is same
- Fix: Prevent PHP 8 uncaught exception
TypeError
when using CloudFlare
- Fix: Add logging destination UI
- Fix: Premium – Cache – Prevents a PHP fatal error that occurs when user cache is enabled on sites running on MariaDB with a version prefix of ‘5.5.5-‘ and PHP versions prior to 8.0
- Fix: Serving WebP images only to supported browsers wasn’t working properly when page caching is enabled
- Fix: Minify –
inherit
Google fonts method is not working
- Tweak: Prevent PHP deprecation notice when purging minify cache
- Tweak: Cache – Prevent PHP warning when deleting cache
- Tweak: Suppress PHP notice when cannot write to .htaccess file
- Tweak: Add user capability check for smush task manager ajax handling method
- Tweak: Minify – Do not send cache control and last modified headers if already present
- Tweak: Smush – clean up log entries
- Tweak: Correctly handle XX and T1 country codes in Cloudflare’s IP country header
- Refactor: Separate classes for activation, deactivation and uninstall actions
Changes
- Fix: Compatibility with WordPress 6.2 when using PHP 8.x
- Fix: Divi builder’s edit mode when WebP serving is using the “alter HTML” method
- Fix: Premium – Unused images feature – improve compatibility with Beaver Builder and its addons
- Fix: Cache – Page caching wasn’t working on the IIS webserver
- Tweak: Update seasonal notices
- Tweak: Prevent deprecation notices in PHP 8.2+
Changes
- Feature: WebP – Ability to convert to webp format from media library
- Fix: Prevent PHP warning when minify-log files are missing or corrupted, also added appropriate error message
- Fix: Delete webp files and uncompressed file when media is deleted
- Fix: Polylang compatibility – now upon updating any post, caches for all translated languages are cleared
- Fix: Prevent adding unsupported media types to the smush task list
- Fix: WebP – Unsupported formats throws a fatal error
- Fix: Compress image UI for webp images
- Fix: Premium – WebP Images are marked as unused images
- Fix: Resolved an issue where Beaver Builder’s edit mode was not functioning properly when WebP conversion was enabled
- Fix: Prevent creating multiple cache directories for URLs that contain non-English characters
- Tweak: Preload allowed time difference is set to be the same as max execution time
- Tweak: Premium – Unused images feature – Add compatibility with Yoast SEO social images
- Tweak: Prevent jQuery deprecation notices
- Security: Fixed a non-persistent XSS vulnerability that could occur on certain servers when the WebP conversion option was enabled. This vulnerability could allow an attacker to execute arbitrary JavaScript code in the victim’s browser by tricking them into clicking on a specially crafted link. Thanks to Paolo Elia for reporting this.
Changelog
- Security: Today’s 3.2.11 release (free version only – there was no 3.2.11 Premium release) checked nonces incorrectly, opening up the possibility of an attacker tricking an admin into clicking links crafted to perform unauthorised actions on the WP Optimize configuration on his site.
Changelog
- Fix: Empty query string updates cache
- Fix: Cache – Purge cache after string translation update in WPML
- Fix: Cache – Preload stuck and fails to complete
- Fix: Prevent PHP warning when
.htaccess
files don’t have write permission
- Fix: Premium – Fixed compatibility issue with WP Hide plugin
- Fix: Minify – Less than 20KB stylesheets loading order
- Tweak: Add cron event only if clear backup images is enabled
- Tweak: Cache – Use WordPress GMT offset for cache comment
- Tweak: Only allow image types that can be compressed
- Tweak: Cached page is not served for sites that have own directory for WordPress files
Changes
- Fix: Prevent php warning and increase SendInBlue
mailin
plugin compatibility
- Fix: Avoid screen juggling while selecting optimizations from dropdown in scheduled clean up
- Fix: Prevent cache purge upon deactivation using filter
- Fix: Cache purge ability of all registered user
- Fix: Recognise WooCommerce product category images as used images
- Fix: Multisite support in
cached-file-log.php
template
- Tweak: Improve Optimization Schedule UI
- Tweak: Consolidated error notices by the use of a global WPO notice object.
- Tweak: Remove
Reset WebP serving method
button when there are no webp conversion tools
- Tweak: Remove query strings from scripts
- Tweak: Add
Restrict Content Pro
plugin slug to plugin.json
- Tweak: Add option to remove orphaned
user meta
data upon run optimization
- Tweak: Add
no-cache
headers when minify is enabled and page caching is not
- Tweak: Ability to remove
.htaccess
rules when gzip compression is not available
- Tweak: WebP: Avoid PHP warnings when using hot linked images (Alter HTML method)
- Tweak: WebP conversion is unavailable when php shell functions do not exist
- Tweak: Improved UI settings for asynchronous loading and page speed testing exclusion tools
- Tweak: Add a constant to enable/disable webp feature
- Tweak: Set a global context for
$wp_file_descriptions
context so that it gets assigned to correctly, preventing a subtle visual change in the theme editor
- Tweak: Prevent php warning from
webp-convert
library
- Tweak: Update currently-active installs number in thank you for installing notice.
- Tweak: Replaced deprecated use of
jQuery.change()
Changes
- Feature: Import and export settings
- Fix: Avoid infinite loop while using unused images export csv
- Fix: Scheduled cache preloading issue
- Fix: WebP testing making unnecessary background HTTP checks
- Fix: Google fonts compatibility with The7 theme
- Fix: Prevent console error for undefined
wp_optimize
for smush scripts
- Tweak: Avoid PHP warnings on cache cleanup
- Fix: Ability to disable webp serving while caching is on
- Tweak: Reset webp conversion method flags daily using cron job
- Tweak: Remove orphaned
wpo_weekly_cron_tasks
cron job upon uninstallation
Changes
- Fix: Build system error led to a missing file in 3.2.7 which could cause an error when using related functions
- Fix: Fix incorrect function name in admin class
Changes
- Feature: A CLI command for generating lists of unused images as a CSV file (Premium)
- Fix: The unused images CSV downloads have a few redundant images listed
- Fix: ACF block field images are listed as unused images
- Fix: Correctly recognize
inherit
in google fonts async loading
- Fix: Cache – Do not purge when
wp_update_nav_menu
is removed from wpo_purge_cache_hooks
array
- Tweak: Prevent PHP warnings when using
json_decode
result
- Tweak: Create cache config file if not present because of site migration
- Tweak: Update notice class
- Tweak: Recognize WooCommerce scheduled sales and cache accordingly
- Tweak: Prevent duplicate
wp-optimize
entry in tables optimization list
- Tweak: Test htaccess capability only when needed by webp feature
- Tweak: Increase compatibility with Aelia plugins
Changes
- Fix: Incorrect static method calling causes parse Error in PHP 5.6.36
- Fix: WebP – Trailing slash file creation issue in PHP 8
- Fix: PHP warning in cache rules file
- Fix: Asynchronous google fonts loaded twice
- Tweak: Conditional Tags anchor tag fix
Changes
- Fix: Fix a fatal error that could occur in 3.2.4 if settings had not been saved
Changes
- Feature: Create a cron job to delete expired cache files
- Feature: WebP image format can be used to serve images
- Fix: Incorrect record count after importing
- Fix: Image smushing issues
- Fix: Problem with Redirect – Trailing Slash on URLs
- Fix: Unused images issue with ACF
repeater
and nested fields
- Tweak: Added functionality for exclude caching based on conditional tags
- Tweak: Update last optimized time for scheduled optimizations
- Tweak: Cache – Prevent already header sent warnings while importing posts
- Tweak: Improved UI for
actionscheduler_
tables
- Tweak: Add filter to allow/disallow
gz
file generation
- Tweak: Show error message to user when WP_CACHE constant can’t be removed from wp-config.php due to file permission issue.
Changes
- Feature: Minify: Pre-generate assets
- Fix: Cache – ‘Purge cache permissions’ setting does not allow additional roles to access the purge cache tool
- Tweak: Make smush details button work in media modal window
- Tweak: Do not show overhead in red when the amount is small
- Tweak: Avoid PHP Notices caused by “
upgrader_process_complete
” action
- Tweak: Force monolog 2.3.* in order to avoid PHP 7.2+ dependency
Changes
- Feature: Cache – Allow debugging of which cache file is chosen
- Feature: Premium – Cache – Serve cached content for logged in users, per role
- Fix: Premium – Unused Images – Fixed trashed images listing
- Fix: Image selection issue in compressed and unused image is fixed.
- Fix: ACF plugin compatibility issue with select2 JS library
- Fix: Premium – Unused Images – Multibyte characters in filename are not recognised correctly
- Fix: Table optimization displays wrong information about WP All Import plugin tables
- Fix: Potential PHP fatal error – Call to undefined function
_wp_get_current_user()
- Fix: Minify – correctly minify multiple
calc
function in single property value
- Fix: SQL error when keeping post revisions and optimizing
- Fix: Cache – Prevent caching WordPress critical error page
- Fix: Minify – Google fonts merging issue when the same font is enqueued in both API V1 and V2
- Fix: Minify – Make
inherit
and inline
settings work with Google fonts
- Fix: Database error upon plugin activation
- Tweak: Minify – Show a notice if other minification plugins are installed and active
- Tweak: Remove unused bundled JavaScript from minify library to avoid irrelevant scan results
- Tweak: Image compression – Image compression stats include gains on image sizes
- Tweak: Make sure that messages from WP_Error objects in gzip compression are displayed to users.
- Tweak: Prevent PHP notice from WooCommerce deprecation
- Tweak: Create
task
tables upon activation, if needed.
- Tweak: Show error instead of success when table doesn’t exist
- Tweak: Update seasonal notices
- Tweak: Prevent PHP fatal error in media list view, when images are makred as compressed
- Tweak: Image edit window – Link does not go to image settings and more/less link not working
See changelog for all versions.