Version: 2.3.1
* Fixed a an issue that was causing the Perfmatters admin bar menu and meta options to not show up in the admin.
* Added additional nopin attribute for Pinterest to YouTube preview thumbnails.
* Translation updates.
* Fixed an issue that was preventing Removed Unused CSS from running correctly in certain cases when Advanced Options were toggled on.
* Translation updates.
* Added new toggle to Show Advanced Options in the Perfmatters UI.
* Added new advanced option to Disable Click Delay in JavaScript section.
* Added new advanced option to Enable FastClick in JavaScript section.
* Added new advanced option to specify a CDN URL in CSS section.
* Added new Local Redirect option to existing login URL disabled behavior selection.
* Added new perfmatters_buffer_excluded_extensions filter.
* Added new perfmatters_rucss_excluded_stylesheets filter.
* Added additional built-in exclusions for Remove Unused CSS for better compatibility with Elementor, Divi, Slider Revolution, OptimizePress, and WordPress core.
* Added additional logic in MU Mode to more reliably retrieve the ID for certain custom post types.
* Moved lazyload functions to new class structure to be more inline with current codebase.
* Modified regex for lazy loading inline background images to support additional formats.
* Integrated lazyload functions into the main output buffer to allow interaction with other existing features.
* Fixed an issue where dynamic preloads were not recognizing existing query strings in some cases.
* Fixed a PHP warning that would show up in some cases by adding additional string check when looping through rewrite array.
* Fixed an issue with MU Mode where sometimes the wrong plugin would get disabled if there were multiple plugins using similar directory paths.
* Fixed an issue where images inside script tags were being picked up by the Preload Critical Images function.
* Translation updates.
* 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.
* Fixed an issue that was causing excluded selectors to not be recongnized properly after Used CSS was cleared.
* Minor adjustments to the new plugin UI.
* Updated plugin settings UI.
* Added new post meta option to Clear Used CSS for an individual page or post type.
* Added new perfmatters_rucss_excluded_selectors filter.
* Fixed a lazy loading issue that was preventing some images from loading properly in Safari.
* Migrated Delay JS Timeout dropdown to a simpler on/off toggle that will default to 10 seconds. Our filter is also still available to set a custom timeout value.
* Fixed an issue with MU plugin that was interfering with rewrite rules in some instances.
* Added additional excluded page builder parameter for Flatsome UX.
* Moved restore default functionality to a separate option on the tools page.
* Code refactoring.
* Translation updates.
* Changed default setting for Used CSS Method from file to inline, as we think this will be the more compatible solution for most users going forward. If you were previously using the file method, you may need to save that option again.
* Added width and height parameters to placeholder SVGs to prevent warnings for a ratio mismatch that would happen for some images.
* Fixed an issue where the noscript tags were getting malformed for some images inside picture tags after lazy loading.
* Removed placeholder SVGs on source tags since the image tag will already have one.
* Changed settings export file name date format to be easier to organize when managing multiples.
* Updated tooltip for Blank Favicon option to be more clear.
* Added new Used CSS Method option to choose whether to load used CSS from a file or inline.
* Added new perfmatters_cache_path filter.
* Updated metabox functions to restrict metabox display to administrators only.
* Made some adjustments to custom login URL function to better support 3rd party tools using WP CLI.
* Added Fusion Builder query string parameters to excluded page builders array.
* Adjusted Unused CSS regex to be more consistent when stylesheets are placed in between other link tags.
* Changes to instances where ABSPATH was used to determine a directory location for better compatibility with certain hosts.
* Fixed an issue with Remove Global Styles option where duotone SVGs were not being removed on WordPress 5.9.2.
* Fixed an issue where WooCommerce block stylesheets were not getting correctly dequeued when Disable Scripts option was set.
* Fixed an issue that was causing the CSS Parser library not to get included correctly in certain cases.
* Translation updates.
* Added new option to Remove Global Styles related to duotone filters.
* Added new perfmatters_script_manager_locale filter.
* Added new perfmatters_disable_woocommerce_scripts filter.
* Added new perfmatters_page_builders filter.
* Added new perfmatters_delay_js_behavior filter.
* Fixed an issue with the unused CSS parser that was incorrectly rewriting relative URLs if there was no query string present on the original stylesheet src.
* Added additional parameter to page builders array for compatibility.
* Fixed an issue that was causing the login URL disabled 404 behavior to result in an error if a 404 template was not found.
* Added some additional checks before creating cache directories for local fonts and used CSS.
* Fixed an issue that was causing the fade-in affect to conflict with child images inside a lazy loaded container.
* Fixed an undefined index warning coming from unused CSS settings update function.
* Added a default delay JS exclusion for admin only inline customize-support script.
* Refactored entire meta.php code to be more efficient (38% smaller) and in line with current structure.
* Translation updates.
* Added new feature to Remove Unused CSS (BETA).
* Added new perfmatters_remove_unused_css filter.
* Adjusted CDN Rewrite buffer priority for better compatibility with other features.
* Made an improvement to the Disable XML-RPC function to return a 403 error when xmlrpc.php is accessed directly.
* Script Manager stylesheet updates for better compatibility.
* Fixed an issue in the Script Manager where the input controls were sometimes not displaying after toggling a script off.
* Added additional style for YouTube preview thumbnail play button to fix an alignment issue with certain setups.
* Buffer adjustments for compatibility.
* Fixed an issue that was interfering with sitemap display in certain configurations.
* Added <a> element support for lazy loading inline background images.
* Added new perfmatters_fade_in_speed filter.
* Fixed an issue that was preventing lazy loading fade in from working correctly with certain background images.
* Fixed an issue that was interfering with the display of certain inline SVG elements.
* Adjusted local analytics hook priority for better compatibility.
* Script Manager style updates for better compatibility.
* Translation updates.
* New Lazy Loading option to Exclude Leading Images.
* New Lazy Loading option to add a Fade In effect.
* New option to Preload Critical Images (BETA).
* Expanded Disable XML-RPC function to also remove pingback link tag if it is present in the document.
* Added new Delay JavaScript checkbox to meta options in the post editor.
* Added additional integration with perfmatters_delay_js filter.
* Moved YouTube autoplay parameter placement on lazy loaded iframes for better compatibility with existing query strings.
* Optimizations to lazy loading inline CSS functions.
* Various optimizations and improvements to the output buffer.
* Migrated manual preload functionality to use the output buffer which will allow for easier integration with new features.
* Made some adjustments to MU plugin functions to more reliably detect post IDs when using specific permalink setups.
* Fixed an issue where some Current URL links in the Script Manager's Global View were not pointing to the right posts.
* Fixed an issue with a certain endpoint that was redirecting to the custom login URL.
* Fixed a PHP notice that was sometimes appearing when refreshing local fonts.
* Removed BETA tag from Delay All JS option.
* Updated Local Google Font function to more effectively remove existing font preconnect and prefetch tags.
* Updated Local Google Font function for better compatibility with sites that still have remnants from a previous http to https migration.
* Fixed an issue in the Script Manager where the home page was being treated as a post if set to display the blog feed.
Fixed an issue with Delay All JS that was preventing certain async scripts from fully loading.
* Added new options to the Script Manager to disable assets directly by post type, archive, user status, and device type.
* Added support for dynamic preloading by handle for enqueued scripts and styles.
* Added new perfmatters_lazyload filter.
* Added new perfmatters_cdn filter.
* Added new perfmatters_delay_js_timeout filter.
* Fix to Delay All JS script for better compatibility with certain page builder animations.
* Updated class initialization for better compatibility.
* Fixed an issue where the Script Manager was interpreting certain array keys as shortcodes if they were identical.
* Added an additional check to prevent the Script Manager from being able to load on top of a page builder.
* Fixed a PHP notice coming from the MU plugin.
* Made some changes to our plugin updater function that should help with auto-updates in a multisite environment.
* Translation updates.
* Added new option to Add Missing Image Dimensions.
* Added the ability to delete individual Script Manager options from the Global View.
* Added new perfmatters_delay_js filter.
* Updated EDD plugin updater class to version 1.9.0.
* Translation updates.
* Fixed a PHP warning related to JavaScript deferral for specific configurations.
* Added new Delay Behavior dropdown with a new option to Delay All Scripts.
* Added new Lazy Loading Threshold option and adjusted the default value if not set.
* Added confirmation message when manually running the database optimization tool.
* Updated disable emoji function to get rid of a PHP notice.
* Added additional check to MU Mode to only filter GET requests.
* Added new perfmatters_defer_js filter.
* Fixed an issue where Instant Page was attempting to run on the new widgets screen in WordPress 5.8.
* Fixed an issue with Local Google Fonts where certain invalid font URLs would still attempt to be downloaded and served.
* Removed BETA tag from fonts section.
* Delay JavaScript compatability improvments.
* Added additional input validation functionality to plugin settings page.
* Translation updates.