[New Feature] DNS prefetch options to add preconnect and dns-prefetch hints for external resources
[New Feature] HTML minification. Page HTML & script content (application/ld+json, application/json, application/speculationrules, importmap) is now minified when HTML minification is enabled
Fixed JS error when clicking Clear OS&S Cache in the admin bar on non-settings admin pages
Before and after inline scripts (localized data, wp_add_inline_script) are now minified when the minify JavaScript setting is enabled, for both cached and non-cached output
Relaxed the “already minified” heuristic that was skipping valid pages (previously required 10+ newlines; now only skips when HTML is clearly pre-minified)
Improved internationalization for admin UI strings (settings page, DNS prefetch controls, localized JavaScript messages for cache clearing, main Optimization admin screen)
Diagnostic logging (including cache clears and file/cache errors) only when both WP_DEBUG and WP_DEBUG_LOG are enabled, via a shared helper
1.9.6
SECURITY FIX: Fixed critical directory traversal vulnerability in CSS import processing and script path handling
Added comprehensive path validation to prevent directory traversal attacks
Enhanced security checks for file operations to ensure paths are within WordPress directory structure
Improved input sanitization for import paths and script URLs
1.9.5
PHP 8.3 compatibility
Updated minify package to 1.3.73
Added better recursion for JavaScript dependencies
Added better handling of localized scripts before & after javascript
Added handling for async and defer scripts, retaining their intended load strategy
Code refactoring
1.9.4
PHP 8.2 compatibility
Updated minify package to 1.3.71
Fixed a bug with stylesheet dependencies
1.9.3
Added recursive stylesheet dependency inclusion
Better code comments
1.9.2
Fixed an issue with the HTML5 text/css feature inadvertently converting link tags to script tags
1.9.1
[New Feature] Added an option to enable/disable caching. Turn caching off to process scripts on every page load in order to debug potential script or style conflicts.
[New Feature] Added a cache lifespan option. If your site doesn’t change often, it would be beneficial to choose the Manually Refresh option.
[New Feature] Added the ability to output script info on the front end of the site. Make sure to disable this for production environments.
Fixed a bug with the optimization behavior select not having a previous value
Verified compatibility up to WordPress 5.5
1.9.0
[New Feature] Added an option to minify OR concatenate only. This could be helpful when trying to track down any issues sites may have due to optimization.
Updated minification library to the latest version. Fixes a few bugs.
1.8.9
Fixed an unset variable error for remove_script_type and remove_style_type
Verified WordPress 5.0/Gutenberg compatibility. Optimize Scripts & Styles will work along-side the Gutenberg blocks scripts, but the Gutenberg blocks handle their own enqueue, concatenation and minification.
1.8.8
Tweaked localized script output to only remove the type=’text/javscript’ if that option is set in the admin
Added location (header or footer) to the cached files description
The plugin no longer initializes on AJAX requests
Added a hash to the script handles to allow them be unique. This fixed a problem with Gravity Forms using AJAX
1.8.7
[New Feature] Added an option to remove type=’text/javscript’ from script tags so that HTML5 sites can be W3C compliant (other optimizations may be needed)
[New Feature] Added an option to remove type=’text/css’ from style tags so that HTML5 sites can be W3C compliant (other optimizations may be needed)
[New Feature] Added an option to REMOVE scripts and/or styles. Add script or style handles to the list and they will no longer load for the site
Modified the Clear Optimize Scripts action to better handle a variety of existing query string formats
Removed the type=’text/javscript’ that SPOS scripts output for localized data
Cosmetic udpates to the admin area
Added a Refresh button to the cached files area for easier testing
1.8.6
Fixed a bug with the Clear Optimized Scripts button in the admin bar not having the correct link when viewing the admin via SSL but having a non-SSL front-end to the site
1.8.5
Added activation message to remind admins to enable the options
Added a check for file extensions to make sure only css and js files are included
Changed the order to include optimized styles before all ignored styles
Separated the Ignore Settings to provide a better description for usage
1.8.4
Fixed a bug that output duplicate localized data
Changed menu title to Optimization
1.8.3
Updating missing SVN files
1.8.2
Optimize Scripts & Styles now has an admin screen under Settings!
On/off for scripts optimization
On/off for styles optimization
On/off to enable optimization for logged in users
On/off to show the Clear Optimized Scripts quick link in the admin header
Added the ability to ignore specific scripts
Added the ability to ignore specific styles
The admin page has a Delete Cache button
Added a section to view cached scripts for debug & fine-tuning
Added a section to view cached styles for debug & fine-tuning
Removed gzip – this should be done in the .htaccess file if possible
Removed a default exclusion of a Visual Composer stylesheet
Added a check for all styles being ignored. A flag file will no longer be generated
1.8.1
Changed absolute paths to use WordPress’ built in features
Added better cache clearing for W3 Total Cache & WP Super Cache
1.8
Major update in the way header/footer scripts are managed
Much more reliable in making sure everything gets loaded in the right place
Added .txt to flag files to make it easier to open them
Added comment to footer when not logged in
1.7
Added comment to footer when logged in
Changed script version in wp_register to match filemtime to encourage caching/refreshing in browsers
1.6
Disabled for logged in users
Fixed an issue where the script wasn’t ignoring css files that were in $ignore
Added js_composer_front to ignore since it’s causing an issue with minification
1.5
Major update
Added better support to catch javascript in the footer via two separate functions/hooks