Speed up your WordPress site with a few clicks using our lightweight Perfmatters plugin. ⚡ Get help directly from the developers. We don't outsource support. 💬

Scottsdale, AZ
Joined November 2015
Version 2.6.9 of @_perfmatters is live, with a lot of fixes and improvements! -*New* perfmatters_rucss_per_id_post_types filter which allows for unique used CSS files per post ID for provided post types. 👨‍🔧 - Adjusted Remove Unused CSS to generate separate used CSS files per taxonomy instead of one shared tax.used.css file. - Updated PHP-CSS-Parser to 9.5.0, removing the thecodingmachine/safe dependency and fixing semicolon-terminated layer statements. This improves compatibility with third-party solutions and makes parsing more reliable for anything that uses cascade layers, such as Bricks. 👍 - Added a REST API exception for GenerateBlocks Pro. - Added built-in Remove Unused CSS exclusions for Elementor’s new local and global per-document stylesheets. - Updated delay JS quick exclusions for Elementor to include hooks.min.js and i18n.min.js to fix a dependency error. - Updated JS optimize script tag regex to avoid hitting PCRE backtracking limits on pages with very large inline scripts. ⚡ - Added Brizy editor request parameters to the excluded page builders array. - Added logic to prevent Disable WooCommerce Scripts option from running inside page builders. - Replaced wp_admin_notice() usage in code snippets with standard admin notice markup for better compatibility with older WordPress versions. - Fixed incorrect and missing text domains, and added translators comments for placeholder strings where needed. 🌍 - Fixed an issue where videos using nested source tags without a src attribute on the video element were not lazy loaded, including video tags with no attributes. - Fixed an accessibility issue with lazy video preview thumbnails where the placeholder could not be focused or activated from the keyboard and was missing a proper accessible name. - Improved picture tag lazy loading to use a more efficient source attribute migration technique and match forced attributes across the full picture markup. 🖼️ - Added a sanitization callback for network settings on save. - Improved prepared SQL handling for code snippet post queries and database optimization table scans. - Security updates to improve escaping across the admin UI, including settings helpers, Script Manager, code snippets, license, support, and related screens. 🔒 - Fixed a compatibility issue with WP Captcha PRO that could return a blank page when opening the Script Manager. - Fixed an issue where Delay JavaScript could skip inline scripts that contained HTML comments. - Fixed an issue where Script Manager MU Mode could save incomplete rewrite rules when WordPress rebuilt them on a request with plugins disabled, which could 404 those routes until the next full flush. - Fixed an issue where Script Manager MU Mode treated the post query argument as the current URL, so a front-end request could run another URL’s plugin rules while WordPress served the original permalink. - Fixed Script Manager MU Mode Current URL plugin rules so front page rules stay off search, feeds, and other views that share that path. The rules will also now apply correctly on private posts, pages, and the WooCommerce shop page. - Fixed a fatal error in Script Manager MU Mode when another mu-plugin read active_plugins before WordPress had finished loading. - Fixed an issue where Script Manager MU Mode could disable the wrong plugin whose folder name started with the folder of the plugin that was meant to be disabled. - Fixed a fatal error when the Login URL disabled behavior is set to the 404 template and a logged-out visitor requests customize.php before the theme has loaded. Admin requests such as wp-admin and customize.php now fall back to the disabled message, since those requests never load the front-end. perfmatters.io/docs/changelo…
2
3
10
551
Version 2.6.8 of @_perfmatters is live! - *New* highly requested safe mode option to disable all Perfmatters performance optimizations sitewide (excluding security/code snippets). 🚧 - *New* inline excluded stylesheets advanced option to automatically inline stylesheets excluded from remove unused CSS. ⚡ - *New* perfmatters_inline_scripts filter which allows you to inline any local JS files. - *New* load in block editor option for frontend CSS code snippets so those styles can also appear in the WordPress block editor canvas. 🎨 - Drastically improved remove unused CSS to detect local stylesheets from the URL path, which should resolve most third-party CDN rewrites without needing the CDN URL setting or local stylesheet filter. 👏 - Improved stylesheet inlining via the new perfmatters_inline_stylesheets filter (perfmatters_rucss_inline_stylesheets still supported), which can now run independently of remove unused CSS while still deferring to it for non-excluded stylesheets. - Made some adjustments to code snippets UI visiblity script. - Moved preconnect and DNS prefetch into the main Perfmatters queue so they respect the same request-level disable checks as other front-end optimizations. - Removed redundant admin and ?perfmattersoff checks from FastClick output, which is already gated by the main Perfmatters queue. 🧹 - Fixed a PHP warning in Minify class when parse_url() returned false for a malformed script or stylesheet URL. - Fixed a PHP fatal error that could stop buffer optimizations from running when one-per-line options were stored as a string instead of an array. 👨‍🔧 - Fixed an issue where remove unused CSS could delay, async, or remove external stylesheets that were never included in used CSS. - Fixed get_file_path incorrectly stripping characters from asset paths on subdirectory installs in certain cases. - Fixed a compatibility issue with Infinite Uploads that prevented code snippets from loading correctly. - Fixed an issue where Perfmatters meta options were not available when creating a new post or page until after saving. - Fixed an issue where code snippet filenames with non-ASCII characters (such as Korean) were incorrectly encoded on disk. 🗃️ - Added missing license notices for bundled third-party libraries. perfmatters.io/docs/changelo…
2
4
25
643
Version 2.6.7 of @_perfmatters rolled out last week. - Removed the Script Manager MU Mode dependency on pluggable.php to avoid conflicts with SMTP and other plugins that override core pluggable functions. This makes MU Mode a lot more reliable. 👍 - Fixed an issue where Script Manager MU Mode could permanently deactivate plugins when another plugin (such as Freemius) wrote a filtered active_plugins list back to the database. - Fixed an issue where Script Manager MU Mode could resolve some custom post type URLs to the wrong post ID. - Fixed an issue where Fetch Priority would always use the first matched priority value when the same selector had separate device rules. 📱 - Added ABSPATH checks to plugin include files where needed. - Hardened license form request verification. 🔒 - Added capability checks to Used CSS and Minify clear actions, and sanitized the Used CSS file type parameter. - Improved license and update API request handling to reduce how often sites contact the Perfmatters server, including longer update check caching, cached license status checks, and a staggered retry delay after failed update requests. ⚡ perfmatters.io/docs/changelo…
1
2
1
6
1,018
Version 2.6.5 of @_perfmatters is live! - *New* code snippet URL-based conditions for path contains, path equals, and path regex. This enables every possible combination. 👨‍🔬 - *New* perfmatters_rucss_delay_stylesheets filter which allows you to delay a specific stylesheet already excluded from used CSS. - *New* load behavior option to delay CSS code snippets using the file print method. ⚡ - Added additional support to code snippet search to allow the search value to match on the code input itself. - Added default sort order controls to code snippet screen options. ↪️ - Made a change to allow an image tag with a missing src attribute to still be able to lazy load if it has a valid srcset attribute. - Adjusted main code menu behavior to return to return to the base code view if selected while viewing a single code snippet. - Fixed utility attribute encoding so certain characters are preserved instead of being converted to HTML entities. - Fixed a possible JavaScript conflict with minimal analytics declaring variables in the global scope. The script is now wrapped in an IIFE for compatibility. - Security update to improve escaping of code snippets list table admin links built from the current request URL. 🔒 - Security updates to add domain verification and content type validation to local Google fonts feature when downloading remote files. perfmatters.io/docs/changelo…
3
7
509
perfmatters retweeted
Snippet Converter for Perfmatters I coded this for my sites and wanted to share it. It has saved me a TON of time. Currently, Perfmatters allows you to import snippets that were created within Perfmatters. This plugin allows you to get around that by converting third-party code snippet JSON exports into the Perfmatters PMCS import format. github.com/PineDigitalCo/sni… Perfmatters is a performance plugin that goes on all my WordPress sites, so it only made sense to let it handle my code snippets. If you're looking for a deal on Perfmatters, the best place to get one is on InfluenceWP[dot]com. Affiliation Disclaimer This plugin is not affiliated with, endorsed by, or officially connected to the Perfmatters team in any way. Perfmatters is a trademark of its respective owner.
2
4
10
591
Version 2.6.3 of @_perfmatters is live! - *New* option to select the editor theme for code snippets and global scripts. 🎨 10 themes included (Ayu Dark, Ayu Mirage, Dracula, Eclipse, Idea, Material, Monokai, Neo, etc.). You can also upload a custom CodeMirror 5 theme stylesheet. - *New* shortcode option when choosing a location for HTML code snippets. Generate a shortcode you can use anywhere you need to run the code. - Added base64 encoding to exported code snippets to prevent import requests from being blocked by certain firewalls. Previously exported code snippet JSON files can still be imported. - Added new Location helper class to store shared logic to parse and match string based location input fields throughout the plugin. - Added the ability to use the “front” keyword in location input fields to always match the front page of the site. 🛣️ - Added additional lazy loading compatibility styles specifically for iframes placed inside Elementor text and HTML elements. - Adjusted Script Manager Global View rows to always display multiple post IDs in ascending order. - Multiple styling adjustments and fixes throughout the plugin UI. - Made some changes to how certain UI elements trigger a forced reload in response to specific actions to make things less jarring. - Fixed an issue where our compatibility styles for a lazy loaded video inside a responsive embed could break the layout if the core block library stylesheet was disabled. - Fixed an issue where code type selection for individual code snippets was still visible even after saving. 👨‍🔧 - Fixed an issue where the next page buttons in the snippets table was still showing as active even when viewing the last page. - Fixed an issue where stylesheets with protocol-relative URLs were not getting parsed for used CSS. - Disabled lint markers for HTML code snippets, as they do not currently work for combined HTML and inline PHP code. - Removed unnecessary instances of perfmatters-lazy-youtube class from lazy loading inline styles. All lazy loading video features are now using a shared perfmatters-lazy-video class. - Removed unnecessary development directories from plugin files. perfmatters.io/docs/changelo…
2
4
24
1,322
Version 2.6.2 of @_perfmatters is live! *New* Automatically optimize and lazy load Elementor Atomic YouTube elements and legacy video widgets when Perfmatters iframe lazy loading is turned on. YouTube preview thumbnails are also supported, as well as Elementor image overlays if set. ⚡ - Added request-level caching to excluded and forced lazy loading attribute arrays to prevent unnecessary calls. - Added multiple stripos and str_contains (PHP 8) checks in lazy loading image and iframe functions to prevent expensive regex scans if tags don’t exist. 🚀 - Added new should_skip_request method in core LazyLoad class with request-level caching to prevent duplicate checks for WooCommerce pages and post-specific meta options. - Added support to various General class functions to respect ?perfmattersoff. This makes troubleshooting with the query string more accurate. 👍 - Added filters back to turn off WordPress’ lazy loading and auto-sizing styles when Perfmatters lazy loading is turned on. - Added built-in JS and CSS exclusions for WooCommerce’s dynamically added woocommerce-js body class. - Refactored LazyLoad class into multiple subclasses for better maintainability. 📂 - Removed duplicate list normalization step before replacement across LazyLoad classes to reduce loop overhead. - Renamed previous Images class to ImageDimensions to make room for new Images lazy loading subclass. - Fixed an issue where certain lazy loaded tags were getting replaced globally in the document instead of only at the specific tag match instance. perfmatters.io/docs/changelo…
1
4
1
11
1,936
Excited that we finally acquired the perfmatters.com domain (after a decade of trying). 🎉 We'll continue using perfmatters.io for the time being. But things may change down the road. A redirect is now in place. ⤴️
23
11
2
135
6,229
Version 2.6.1 of @_perfmatters is live! This is a quality-of-life update to improve compatibility across the board. 👍 - Made some adjustments to our code snippets error handler initialization logic to avoid unnecessary handling if no relevant code snippets are active. - Made additional plugin UI styles adjustments in preparation for WordPress 7. 🎨 - Updated our exception_handler method with more specific error logging when our handler is dealing with an error outside of our code snippets. - Updated Disable RSS Feeds tooltip text to reflect the recent header changes in the previous update. - Fixed an error that would occur when UTF-8 stylesheets with specific multibyte characters were parsed for used CSS. 🔣 - Fixed multiple incorrect form label IDs that showed up when creating a new code snippet. - Fixed an issue with Disable Self Pingbacks functionality that was introduced after the functions.php refactor. - Fixed an issue where a JS or CSS file preloaded dynamically by handle would not serve the minified version of the file in certain cases. 🗜️ - Fixed an issue where the inline stylesheet fallback was not always converting relative URLs correctly if certain characters were present in the string. perfmatters.io/docs/changelo…
1
3
12
793
Version 2.6.0 of @_perfmatters is live! - Updated PHP CSS Parser library to 9.3.0. This includes many improvements for our Remove Unused CSS feature (more accurate parsing/compatibility). ⚡ - *New* perfmatters_rucss_logged_in filter that allows you to force used CSS to run when logged in (still front-end only) and create separate copies of used CSS for logged-in requests. This is experimental and only for advanced users; results may vary. - Added additional logic to used CSS generation to better deal with layer elements that are declared without a content block. - Added PHP Scoper to our plugin development workflow to be able to silo specific third-party libraries to prevent conflicts with other plugins. 👨‍🔧 - Removed built-in stylesheet exclusion for Bricks' layer files. We recommend clearing used CSS after updating. - Added new CSS helper method to rewrite relative URLs in stylesheets that will be printed inline using regex only to prevent having to pass them through the parser. This improves compatibility when using the perfmatters_rucss_inline_stylesheets filter. 👍 - Made some adjustments to clean_html regex pattern to avoid potential backtracking which could end up hitting a PCRE limit in some cases. - Made plugin UI styles adjustments in preparation for WordPress 7. 🎨 - Made improvements to visual transitions during hard reloads in the plugin UI. - Updated code snippets author column to use the user's display name instead of nice name to match the single snippet layout. - Updated disable RSS feeds function to return a 410 header instead of a 301 when requesting a feed URL. - Made some changes to plugin UI nav JS to improve compatibility when wrapper elements are added in the HTML from another source. - Fixed an issue that was causing certain attribute values to conflict with the HTML parent selector matching regex. - Fixed an issue where specific WooCommerce product types were not getting the built-in product exclusion selector added to generated used CSS. - Fixed an issue where HTML snippets with a condition mismatch were causing the original content to return blank. - Fixed an issue where code snippet input preserved in the form after a failed save request was not properly unslashed. - Fixed an issue where the code snippet code type was no longer visible and the selected value was lost after a failed save request. - Fixed a possible PHP 8.2+ deprecation warning that could occur in specific server environments during PMCS initialization. - Code snippet security updates to form submission handling. 🔒 perfmatters.io/docs/changelo…
1
4
1
19
1,227
Version 2.5.8 of @_perfmatters is live! - Code Snippets is officially out of beta. 🎉 We appreciate all of you who took the time to test and provide feedback. - Performance improvements: Refactored Utilities class, added a few functions from the previous combined file, combined regex passes for clean_html, added memoization to necessary functions to prevent multiple runs. ⚡ - Added new perfmatters_lazyload_data_src filter. - Added nav selector support for functions that target elements inside parent containers. 👨‍🔧 - Added additional built-in CSS selector exclusion for Kadence active state class. - Added is_admin check to disable dashicons function for certain edge cases in the admin UI. - Added logic to prevent certain redundant options from showing up in the UI when parent disables are already toggled on. - Added new General, License, and Analytics classes to separate out specific functionality. - Fixed a code snippet issue where targeting the front or blog page of the site by page ID would not match correctly. 💻 - Fixed an issue with certain attribute pair formats not being recognized when converting an element’s attribute string to an array. - Fixed an issue where delaying certain duplicate scripts would cause a JavaScript error and prevent remaining delayed assets from loading in. - Fixed multiple plugin UI HTML warnings for incorrect label target IDs. - Made some lazy loading adjustments to let WordPress still add the auto size attribute value when necessary before the Perfmatters output buffer runs. - Made changes to the way we handle images excluded from lazy loading to ensure they don’t have a loading attribute applied. - Removed previous functions.php file, refactored and migrated the contents to new and existing classes. 🗄️ - Minor update to disable self pingbacks function for better compatibility. perfmatters.io/docs/changelo…
5
7
473
Version 2.5.6 of @_perfmatters is live! Updated our lazy loading class to no longer add <noscript> tags. This results in a ~18% decrease in HTML code per image and a ~2% decrease in total HTML page size across the board! ⚡ Note: The perfmatters_lazyload_noscript filter can still be used to turn that behavior back on, although this shouldn’t be needed. *New* feature to completely disable Perfmatters code features using the PERFMATTERS_DISABLE_CODE constant. ⛔ - Added separate used CSS generated files for different WooCommerce product types (product, variable, grouped, external). This drastically improves compatibility out of the box. Especially with products that use variable features like size and color selections. 👍 - Added new perfmatters_cdn_url filter along with new helper methods in the CDN class. - Added additional logic to add an auto value to lazy loaded images sizes attributes when needed. 🖼️ -Added host name to global settings and code snippet export files to easily identify which site it came from. - Added confirmation message when turning on FastClick option. - Added logic to remove the previous stored author ID when a code snippet is imported. - Added dynamic request check in heartbeat function to prevent a possible PHP error. - Updated get_atts_array utility method to use regex instead of wp_kses_hair for better compatibility. 👨‍🔧 - Reworked code snippet error handling class to work better with other exception handlers and existing error reporting. - Turned off CSSLint in the code snippet editor, as it is outdated and was leading to false positives. - Adjusted gutter column layout in the code snippet editor to be more consistent between different code types. 📐 - Adjusted code snippet priority field to allow both negative and zero input values. - Fixed an issue where CSS code snippets set to run in the footer were not having their conditions checked. - Fixed an issue where CSS code snippets were not always printing where expected based on the set location and priority. - Fixed an issue with certain code snippet input fields not being escaped properly in the UI leading to a broken layout in some cases. - Fixed an issue where YouTube iframes rendered with a preview thumbnail that had autoplay forced off in their query string would require a double click. 🖱️ - Fixed an issue where the referrerpolicy iframe attribute did not get applied to the generated iframe when using YouTube preview thumbnails. perfmatters.io/docs/changelo…
5
14
795
On February 26th, we're doing a deep dive into why we built a performance-first code snippet manager into @_perfmatters and how you can take full advantage of it on your WordPress sites! ⚡ Shout-out to @kylevandeusen for putting this together. theadminbar.com/events/code-…
1
3
1
8
948
Updating some websites with new @_perfmatters features with snippets. It’s really useful, and this way I can avoid using an additional plugin just for that.
2
3
6
411
Version 2.5.5 of @_perfmatters is live! *New* options to export code snippets (globally, individually, and bulk select) and import them to another site. 🚛 *New* code snippets admin bar menu item that will show up if at least one snippet is present. - *New* frontend footer and admin footer locations for CSS code snippets. - *New* PMMU_PLUGIN_DIR constant to allow for manipulation of the MU plugin file location for specific setups where the standard WPMU_PLUGIN_DIR may be altered. - Added support for relative path URLs inside stylesheets printed inline with our perfmatters_rucss_inline_stylesheets filter. ⚡ - Updated previous separate block styles option which will now show up as a block style behavior dropdown for sites running WordPress 6.9+. - Added a REST API exception for Mollie. - Added additional built-in CSS selector exclusions for Elementor’s background slideshow. - Fixed an issue in the code snippets editor where lint markers were not always correctly displaying for HTML and CSS snippets. 👨‍💻 - Fixed an issue where HTML code snippets were not able to save a non-default location. - Fixed an issue where the code snippet editor was pushing new lines off screen in some cases and not automatically scrolling to keep things in view. 💻 - Fixed an issue with general Perfmatters admin notices not displaying correctly. - Fixed multiple duplicate ID warnings in the plugin UI. - Fixed multiple jQuery deprecation warnings in plugin UI JavaScript. perfmatters.io/docs/changelo…
2
6
1
25
1,277
Version 2.5.3 of @_perfmatters is live! You can now add code snippets in Perfmatters (PHP, CSS, JS, and HTML). We built it from the ground up with performance in mind. It uses a flat-file approach, which means it's more secure and there are zero database calls on the front-end. In other words, it’s incredibly fast and won’t negatively impact page load times. ⚡ We took it a step further and made all the performance options you already use in Perfmatters available at the individual snippet level. Optimization features include loading snippets in a file or inline, minification, delay on user interaction, preloading, defer, async, and more. 🔥 Use our conditions builder to only load your code snippets where they are needed. 👷 There are an unlimited number of rules you can configure. Add includes, excludes, and even load by role or status (logged-in or logged-out). It also has built-in error checking, meaning it’s not possible to break your site. If an error is detected with a snippet, it will automatically be deactivated. But we also have a robust Safe Mode just in case. 🦺 You can enable it via the settings, recovery URL, or a wp-config.php constant. Note: This feature is currently in BETA. If you run into any issues, please reach out to us. We’re always eager to make improvements. perfmatters.io/docs/changelo…
10
7
2
43
5,305
Our annual Black Friday sale on @_perfmatters and @novashareio is live! 🔥 Get 30% off new licenses as well as upgrades through December 2nd. Discount code: BLACKFRIDAY Make sure to also check out some of the other awesome deals we rounded up. woorkup.com/black-friday/
1
9
1
12
1,189
perfmatters retweeted
We like testing things for ourselves. So we added @_perfmatters to a plain @wpbakery site just to see what happens. No caching, no CDN - and still got a small but steady performance lift. Full details, setup and scores below: buff.ly/TfdWAO2
1
1
5
281
Version 2.5.2 of @_perfmatters is live! - *New* perfmatters_rucss_inline_stylesheets filter. This allows you to inline any stylesheet already excluded from used CSS. ⚡ - Reworked the Script Manager input change event listener for better compatibility with other JavaScript running while the Script Manager is being used. - Added new delay JS quick exclusion for GenerateBlocks Pro. - Added built-in CSS selector exclusion for GenerateBlocks mobile menu. 📱 - Added built-in stylesheet exclusion for GeneratePress local fonts. - Updated WS Form Pro delay JS quick exclusion to fix a console error. - Fixed some incorrect wording in the clear used CSS tooltip. Stay tuned for our biggest feature update of the year coming in November! 😁🔥 perfmatters.io/docs/changelo…
1
5
10
792