* Added new system for query string timestamps for Used CSS file method to help see changes quicker in environments with caching.
* Added support for ?perfmattersoff query string which gives the ability to quickly prevent the majority of Perfmatters features from running on the front end for testing purposes.
* Added additional support for updating the plugin via WP-CLI.
* Made some changes to admin bar menu item. There is now a Perfmatters top-level admin bar menu item that links to our plugin settings page. The Script Manager and Clear Used CSS function can be accessed by hovering over that main menu item if those features are enabled.
* Disabled certain features from running on WooCommerce cart, checkout, and account pages for better compatibility.
* Increased site limit in dropdowns on Multisite network settings page.
* Added additional compatibility styles to the Script Manager.
* Added additional built-in exclusions for Remove Unused CSS for better compatibility with Elementor, Astra, Kadence, and GenerateBlocks.
* Added new perfmatters_login_url filter.
* Added new perfmatters_lazyload_noscript filter.
* Fixed an issue where YouTube preview thumbnails were generating a preload warning in certain instances.
* Fixed an issue that was causing analytics.js not to be served over HTTPS in instances where an SSL migration had been done previously on the site.
* Fixed an issue where delayed style attribute was applied to preloaded stylesheets that already existed in the DOM.
* Fixed an issue where some features were being allowed to run on XML sitemap URLs in certain cases.
* Fixed an issue where theme and plugin files were not falling back to a WordPress version query string when present in a dynamic preload.
* Added additional autosave interval options.
* Added WPBakery query string parameter to excluded page builders array.
* Changed certain lazy loading classes to be more specific to prevent conflicts.
* Adjusted lazy loading image attribute filter to not run unless images specifically are meant to be lazy loaded by Perfmatters.
* Added an additional function_exists check in the JS class to prevent an error from being thrown in some cases.
* Made adjustment to the CSS Background Image styles to work with some changes in the latest version of our lazy loading library.
* Fixed an issue that was preventing quotations from being stripped from background image URLs when prepping an inline background image for lazy loading.
* Fixed an issue where delayed CSS was not loading properly when using individual JS delay.
* Fixed an error that was being logged in some cases when checking for an active plugin in the JS class.
Made an adjustment to how inline background images are prepped to work with some changes in the latest version of our lazy loading library.
* Added new perfmatters_delay_js_delay_click filter.
* Added new perfmatters_local_stylesheet_url filter.
* Made some performance improvements to the way the lazy loading script and inline code are loaded.
* Added additional compatibility for Elementor animations when using Delay JS.
* Added additional details in the Script Manager global view for individual stored settings.
* Added the ability to identify and clear outdated post IDs set in the Script Manager options from the global view.
* Script Manager global view organization and style improvements.
* Updated lazy loading library to version 17.8.
* Updated instant.page library to version 5.1.1.
* Added Bricks query string parameter to excluded page builders array.
* Fixed an issue that was causing the cache directory to not create unique subsite paths for specific multisite setups.
* Fixed an issue where delayed stylesheets were not being loaded if Delay JS was toggled off in the post meta options.
* Added additional logic to Delay JS script to make sure the initial interaction is processed.
* Added additional styles to CSS Background Image feature to work with background images set on ::before selectors.
* Added additional logic on custom login URL admin_url filter to fix certain scenarios where login URL was not being replaced correctly.
* Added additional default tags to various dropdowns in plugin settings for better clarification.
* Added default arrays for stylesheet and selector exclusions that are always needed.
* Adjusted perfmatters_cdn filter location for compatibility.
* Made some adjustments to CDN Rewrite Regex to fix some issues where unwanted strings were getting picked up as URLs in some cases.
* Translation updates.
* Updated EDD plugin updater class to version 1.9.2.
* Added default exclusion to REST API option for compatibility.
* Remove Used CSS filter adjustment to fix an issue where certain WordPress post functions wouldn't be available when trying to selectively disable the feature.
* Rolled back minor plugin UI JavaScript addition, as it was interfering with entering data on multiple lines in certain input fields.
* Added new perfmatters_used_css filter.
* Added new perfmatters_allow_buffer filter.
* Added a notice in the Script Manager when Testing Mode is enabled.
* Improved reliability of CSS Background Image function when child elements with additional background images are present.
* Script Manager style compatibility fixes.
* Fixed an issue where some post specific meta options were not being respected when determining if a feature should run.
* Fixed an issue where pressing enter on the main plugin settings page would trigger a specific form action instead of save settings.
* Changed CSS class initialization hook to be in the correct order with other output buffer functions.
* Made an adjustment to how we generate the local used stylesheet URL for better compatibility.
* Fixed an issue where loading attribute was still getting applied to images that were excluded from lazy loading.
* Fixed an issue where images inside an excluded picture element were not also getting excluded.
* Fixed an issue in the Script Manager where archives were not being grouped together with their respective post type.
* Additions to plugin UI JavaScript to allow for disabled sections to be hidden even when nested controllers are present.
* Moved background process library to composer autoloader.
* Removed BETA tag from Remove Unused CSS option.
* Added new option to lazy load CSS Background Images.
* Added new option for Dual Tracking when using gtag.js in local analytics.
* Added new perfmatters_rest_api_exceptions filter.
* Fixed an issue where individually delayed local scripts would not get correctly rewritten to load from the CDN.
* Fixed an issue where lazy loading would run into an error if no px or % was specified with the threshold value.
* Fixed an issue with buffer validation that was conflicting with certain caching setups.
* Fixed an issue where existing font preconnect and prefetch tags were not being being detected properly when using Local Fonts.
* Fixed an error related to cookie constants when running MU Mode in certain environments.
* Fixed multiple AMP validation errors and added additional checks to prevent certain functions from running on AMP URLs.
* Minor adjustment to CDN rewrite regex pattern to work with encoded quotation characters.
* Changed toggle CSS selectors to be more specific to prevent conflicts.
* Moved plugin settings header output to in_admin_header action hook for compatibility.
* Moved JS optimization functions to new class structure to be more inline with current codebase.
* Improvements to critical image preloading allowed for a move to a singular output buffer.