Supercharge your WordPress performance with Perfmatters: Essential settings and features for optimal speed

When you buy, sign up, or register through our links, we may earn a commission. Learn More ›

In this guide, we’re configuring the Perfmatters settings with popular cache plugins.

This table shows how the Perfmatters plugin has many features cache plugins can’t or won’t offer to improve performance further: most general settings, script manager, lazy load background images, preload above the fold images while excluding them from the lazy load, preload CSS/JS files, local fonts, and the remove unused CSS feature is also faster than WP Rocket’s. Perfmatters is even more powerful when using SiteGround Optimizer since it can’t delay JavaScript, preload links, lazy load iframes, and lacks many features where Perfmatters becomes mandatory. It’s the most powerful WordPress performance plugin, in our opinion.

Perfmatters Addresses Lacking Cache Plugin Optimizations:

SG OptimizerWP RocketFlyingPressPerfmatters
Disable plugins on specific pagesxxxScript manager
Disable XML-RPC, heartbeat, dashiconsxxx
Preload CSS/JS filesxxx
Limit post revisionsxxx
Change autosave intervalxxx
Move wp-loginxxx
Delay JavaScriptx
Remove unused CSSxInlineSeparate fileSeparate file
Host fonts locallyxx
Font-display: swapx
Exclude above the fold imagesBy class/typeBy numberBy numberBy number
Preload critical imagesxxBy number
Lazy load background imagesxInlineHelper classHelper class
Lazy load iframesx
Specify image dimensionsx
Preload linksx
Host analytics locallyxxx
VisitVisitVisitVisit

The key is only to use 1 plugin per feature, then leave it disabled in your other optimization plugin. The other goal is to use Perfmatters for the “extra optimizations” I listed above.

Always clear the cache when retesting your site, and check the Network/Console report in Chrome Dev Tools so you can more accurately measure performance (compared to PSI).

Disclaimer – I use affiliate links to Perfmatters and appreciate your support. Thanks 🙂

rocket.net hosting coupon code

General Settings

  • Disable Emojis: ON – removes a JS file needed for emojis (use Unicode instead). Some cache plugins disable emojis by default (FlyingPress, WP Rocket), in which case, leave them off.
  • Disable Dashicons: ON – prevents admin icons from loading on the front end. If it breaks your site, leave it off and use the script manager to disable them where they’re not used.
  • Disable Embeds: ON – when you paste a URL into your WordPress editor, this loads a pretty preview (from YouTube, Facebook, Tweets, etc.). If you don’t need this, disable it.
  • Disable XML-RPC: ON – bad for speed + security (used to publish content from mobile).
  • Remove jQuery Migrate: ON – if you’re using a page builder, leave it off. Perfmatters also has documentation on jQuery using the script manager, defer, delay, and preload settings. You could also use code snippets to only load jQuery on specific pages.
  • Hide WP Version: ON – improves security by hiding the WP version from showing publicly.
  • Remove wlwmanifest Link: ON – you likely don’t use Windows Live Writer, so disable.
  • Remove RSD Link: ON – used to edit your site in a browser instead of blog clients.
  • Remove Shortlink: ON – disable if you’re using the “post name” permalink structure.
  • Disable RSS Feeds: OFF – only enable this if you don’t have a blog on your website.
  • Remove RSS Feed Links: ON – removes unnecessary links in your RSS feed to pages, posts, comments, categories, tags, etc. This removes a small amount of unused code.
  • Disable Self Pingbacks:- ON – disables pingbacks when linking to your blog.
  • Disable REST API: disable when logged-out – hides usernames to improve security, but disabling it can lead to errors with plugins, so disable when logged out or for non-admins.
  • Remove REST API Links: ON – removes a short line of code created by the REST API.
  • Disable Google Maps: OFF – some themes & plugins have the Google Maps API built-in with no option to disable this, in which case you can disable Maps if you don’t use them.
  • Disable Password Strength Meter: ON – removes a file that can sometimes load on your website when it should usually only load on account, checkout, and password reset pages.
  • Disable Comments: OFF – you probably don’t want to disable your blog comments.
  • Remove Comment URLs: ON – disables comment author links, which are often spam.
  • Add Blank Favicon: OFF – only used for speed testing on fresh WP installs.
  • Remove Global Styles: ON – removes 311 lines of unminified code, which seemed to be added by mistake to WordPress core. It was initially added to improve duotone styles.
  • Heartbeat: only allowed when editing posts/pages – recommended by Perfmatters. This disables Heartbeat unless you edit content and then set the Heartbeat Frequency to 60s. This reduces Heartbeat and requests/CPU usage by only enabling it when needed.
  • Limit Post Revisions: 5 – gives you a few backups of old posts in case you need to restore a post to an earlier version, but prevents too many revisions from bloating your database.
  • Autosave Interval: 5 minutes – increase frequency to reduce CPU and save resources.
  • Change Login URL: add a custom login URL – blocks unwanted requests from bots & attackers by moving wp-login. If using QUIC, keep the default URL since it has features to protect it. You can also change the redirect/message when the default login URL is viewed.

Assets Settings

JavaScript

  • Perfmatters Script Manager: ON – remove unused CSS/JS on specific pages/posts (see below).
  • Perfmatters Defer JavaScript: ON – fixes render-blocking JS (but also done by most cache plugins). If you see warnings in the Dev Tools Console report after enabling this, delaying JS can fix it.
  • Perfmatters Delay JavaScript: ON – useful if your cache plugin doesn’t support this (i.e., SiteGround Optimizer). Often used to delay third-party code, plugins, cart fragments, local analytics, instant pages, and other JS files. It greatly improves scores but needs to be set up properly.
  • Delay Behavior: Delays all scripts – fastest option but requires testing your website for broken plugins/files and excluding files. Only delay-specified scripts are safer but require manually adding JS files to delay (see the list below, and you can also delay instant page with instantpage.js). Delay all is the only setting that can delay jQuery (unlike specified scripts).
  • Excluded from delay: when using the “delay all” setting above, check your site for broken elements like sliders and contact forms. Open your Chrome Dev Tools Network report and find the problematic file if something is broken. Copy the folder name (i.e./smart-slider-3/) and exclude it from being delayed. You may also need to exclude jquery.min.js. Perfmatters has documentation on common JS exclusions, and Brian’s video is helpful, too. Check your Chrome Dev Tools Console report for JS-related errors when you’re done.
  • Delayed Scripts: if you’re using “only delay specified scripts,” you must add JS files manually. Check your “third-party code” and “remove unused JavaScript” reports in PSI. Besides third-party code and even Gravatars, you can delay smaller analytics script types (i.e., analytics.js), comment plugins, and others. Their documentation also explains how to delay inline JavaScript and why you can use defer/delay simultaneously.
  • Delay Timeout: 10s – recommended by Brian. When the timeout is too short, it may not improve scores. This makes it load everything if users don’t interact with JS for 10s.

Check the examples in the documentation, but here are common JS files to delay:

ga( '
ga('
google-analytics.com/analytics.js
analytics.js
gtagv4.js
analytics-minimal.js
/gtm.js
/gtag/js
gtag(
/gtm-
adsbygoogle.js
fbevents.js
fbq(
/busting/facebook-tracking/

Using The Perfmatters Script Manager

Once the script manager is enabled, view any page/post, and you’ll see it on top.

Perfmatters script manager tab

In your script manager settings, I recommend enabling display dependencies, then test mode, which only shows the script manager changes to logged-in admins (since disabling CSS/JS can sometimes break your site). Whenever you’re ready to publish changes, toggle testing mode off.

Perfmatters script manager settings

View the scripts/styles loading on the post (plugins should categorize them). You can disable them everywhere, on the current URL, use regex (URL patterns), and make exceptions.

Disable plugins perfmatters
Disable elementor plugins perfmatters
Jquery plugin dependencies 1
Display dependencies show you all plugins that rely on jQuery (which can slow down your site)

Examples

  • Disable social sharing buttons everywhere but posts.
  • Disable wp-block-library if you’re not using Gutenberg.
  • Disable the contact form plugin everywhere but the contact page.
  • Disable slider/gallery plugins everywhere but certain URLs.
  • Disable page builder/WooCommerce plugins where they’re not used.

CSS

  • Remove Unused CSS: ON – unless you’re using FlyingPress or LiteSpeed Cache, this should be on. Even if you’re using WP Rocket, Perfmatters does a better job because it loads used CSS in a separate file (faster for visitors, worse for scores), while WP Rocket loads it inline (slower for visitors, better for scores). In this case, enable remove unused CSS in Perfmatters, then disable all CSS optimizations in your cache plugin (I confirmed with Brian). They also suggest disabling CSS preloads and uncombining CSS beforehand. FlyingPress/LSC already uses a “separate file,” so there would be no need to use Perfmatters. And if you’re using a page builder, make sure the CSS print method is set to “external.”
  • Used CSS Method: File – “file” is faster for real visitors, while “inline” is better for scores.
  • Stylesheet Behavior: Remove – fastest option, but just like delaying all JavaScript, you must test your site for broken elements and exclude files by stylesheet or CSS selector. This can be time-consuming for large/complex sites, so if it’s too difficult, use the delay option, which gives you a better LCP/FCP than async. Learn about the 3 different options.
  • Clear Unused CSS: use this if you make design or code changes and aren’t seeing them.
Wp rocket used css
Vikas explains why “remove unused CSS” is faster in Perfmatters/FlyingPress compared to WP Rocket

Preloading

Perfmatters preloads above-the-fold images and CSS/JS files (like wp-block-library), while most cache plugins can’t or make this difficult. There’s usually no need to add preconnect/prefetch hints because CDN URLs and third-party fonts are often the only domains that should use preconnect, which most cache plugins will add automatically. And since most third-party code is delayed, there’s usually no need to use DNS prefetch. Check your Chrome Dev Tools Console report for preloading errors when you’re done.

  • Enable Instant Page: On (sometimes) – when users hover over a link or touch it on mobile, this starts downloading the page in the background, so the page appears to load instantly when they click it. It improves perceived load time but not scores. It can also increase CPU usage, especially if users hover over many links, like a WooCommerce store with many product links. So depending on how often you think users hover over links and whether your server can handle it, you can choose whether it should be on/off.
  • Preload: mainly used to preload CSS/JS like Gutenberg’s wp-block-library (screenshot below) or other files. Above-the-fold images are preloaded in the next setting, and most cache plugins preload fonts (including font icons like Elementor’s icons or font awesome icons). If you use Perfmatters to preload fonts, use the crossorigin attribute.
  • Preload Critical Images: 2-3 – preloads above the fold images while excluding them from the lazy load for better LCP. Set the number of images that load above the fold (usually 2-3). This is easier than plugins like WP Rocket which require extra steps to optimize above-the-fold images. You can still use this feature if you don’t use Perfmatters for lazy loading.
  • Preconnect – CDN URLs and third-party fonts (i.e., font.gstatic.com) are usually the only URLs you should preconnect. Your cache plugin may already do this, so check their docs.
  • DNS Prefetch – Most of these should be hosted locally or delayed. For third-party domains that are left over, consider prefetching to the domain.
Perfmatters preload wp block library 1
If you’re using Gutenberg, try preloading wp-block-library
Disable wp block library perfmatters
If you’re not using Gutenberg, try disabling wp-block-library in the script manager
Third party code
Third-party domains should usually be hosted locally or delayed (if not, look into preconnect/prefetch hints)

Lazy Loading

Perfmatters usually has more advanced lazy load settings than cache plugins, with the option to lazy load background images using their perfmatters-lazy-css-bg helper class.

  • Images: ON – Permatters uses JS-based lazy load, while most cache plugins use native. There are arguments for both, so I suggest testing both. If enabled in Perfmatters, native lazy loading in WordPress will be disabled. Exclude leading images shouldn’t be needed because “preload critical images” already exclude above-the-fold images from the lazy load.
  • iFrames And Videos: ON – lazy loads iframes and replaces iframes with a preview image so the “fat YouTube player” is only loaded when clicked. I enabled this in FlyingPress, which hosts the placeholders locally to prevent third-party requests from ytimg.com.
  • Exclude From Lazy Loading – exclude images by URL (abc.png) or class (class= “name”). You can also add no-lazy to CSS classes. Perfmatters gives the example of excluding the GeneratePress logo (is-logo-image) or featured images (class=” attachment-full size-full).
  • Threshold: 0px  – increasing this results in a smoother scrolling experience since images start loading before they’re shown in the viewport, but 0px is the most aggressive option.
  • DOM Monitoring – OFF (only enable if you use infinite scrolling). Perfmatters says this “watches for changes in the DOM and dynamically lazy loads newly added elements. This improves compatibility for third-party plugins and themes that utilize infinite scrolling…”
  • Add Missing Images Dimensions: OFF – most cache plugins do this. Turn on otherwise. This adds a width + height to images without dimensions to prevent layout shifts (CLS).
  • Fade In: ON – adds a fade-in effect for lazy loaded images so they don’t jump in suddenly.
  • CSS Background Images: ON – page builders load background images from CSS, so they’re not lazily loaded by default. GeneratePress has a setting to move them to inline HTML (so they will be lazy-loaded), while Elementor recently added an Experiment to lazy-load background images. Otherwise, you can use Perfmatters to add perfmatters-lazy-css-bg to the background image CSS class (screenshot below). Or, if background images have unique class names, you can add their ID or class in the Background Selectors field.
Perfmatters lazy css bg

Fonts

Check your Waterfall chart to see if fonts are hosted locally or use third-party domains like fonts.gstatic.com. Self-hosting fonts also allow them to be preloaded. Perfmatters helps with some optimizations, but you also want to use woff2 and reduce # of requests.

  • Disable Google Fonts: OFF – only use if you’re in the process of using system fonts or custom fonts and need them disabled. Otherwise, it removes Google Fonts from the site.
  • Display Swap: ON – adds font-display: swap to the font CSS which can fix “ensure text remains visible during webfont load” in PSI. While it fixes FOIT (flash of invisible text) by setting a fallback font, it can also cause FOUC (flash of unstyled text), which can look ugly.
  • Local Google Fonts: ON – downloads fonts.google.com fonts and hosts them locally.
  • CDN URL: if you’re using a CDN that uses a CDN URL, add it here to serve fonts from it.
Third party fonts vs self hosted fonts
Fonts should be hosted locally, preloaded, and use woff2 with font-display: swap

CDN

This section is only for CDNs that use a CDN URL (i.e., BunnyCDN), not for Cloudflare.

  • Enable CDN Rewrite: ON – if you’re using a CDN URL, this rewrites assets to be served from the CDN (i.e., https://cdn.yourwebsite.com/wp-content/uploads/2023/10/logo.png). Sometimes, adding your CDN URL to multiple plugins can serve more assets from the CDN.
  • CDN URL: add your CDN URL – if you’re using FlyingPress, I suggest trying FlyingCDN. If you’re using Rocket.net for hosting, you do not need to do anything with their CDN URL.
  • Included Directories: generally nothing to do here  (Perfmatters automatically includes wp-content and wp-includes in the CDN rewriting, which should be all most sites need).
  • CDN Exclusions: .php and .xml are recommended when using SEO plugins with XML sitemaps.

Analytics

If you’re planning on delaying Google Analytics, there’s no need to optimize your tracking code by hosting it locally, using a smaller script, disabling display features, etc.

  • Enable Local Analytics: ON – host locally to prevent third-party GA requests.
  • Tracking ID: enter your Google Analytics tracking ID so it can be hosted locally.
  • Tracking Code Position: Header (Default) is recommended by Google, but Perfmatters says they always load it in the footer. This shouldn’t make any difference.
  • Script Type: analytics.js or minimal – these have smaller file sizes than others but disable some data in Google Analytics. Read the Perfmatters documentation and decide whether you want to disable the data in return for a small performance boost.
  • Disable Display Features: ON – if you notice a third-party request to DoubleClick in PSI, this can prevent it by disabling remarketing and advertising options in Google Analytics.
  • Anonymize IP: ON – shortens IP address to comply with GDPR in some countries.
  • Track Logged In Admins: OFF – you don’t want admin visits in your analytics data.
  • Adjusted Bounce Rate: 30  – if visitors stay longer than 30 seconds, they won’t be considered a bounce. Perfmatters recommends this and is on a scale from 1-100.
  • Use MonsterInsights: OFF – only enable if using MonsterInsights to host GA locally.
  • Enable AMP Support: OFF – only enable if you’re using AMP, which I don’t recommend.

Database

I recommend WP-Optimize to clean your database since, unlike Perfmatters and cache plugins, it can take database backups via UpdraftPlus, remove tables left behind by old plugins, and keep a certain number of post revisions (as opposed to deleting them all).

Otherwise, I would remove everything but post revisions + post-auto-drafts since you want to keep (at least a few) backups of posts. Sometimes I get automatic Windows updates that close everything down. Thankfully, the auto-drafts have saved me from losing work quite often. Check everything else and schedule weekly cleanups. This should be enough for most websites.

Advanced Options

Perfmatters has a few advanced options under Tools → Show Advanced Options.

Perfmatters advanced options
  • Disable Click Delay: ON – if you use Perfmatters to delay JavaScript, there may be a long click delay when clicking a mobile menu. Disabling click delay can speed it up.
  • Enable FastClick: ON – if you use Perfmatters to delay JavaScript and click links twice to open them, this should fix it. If using “delay all,” you must exclude “fastclick”.
  • Load Local Google Fonts Asynchronously: ON – fixes render-blocking font issues, but remember also to preload fonts. Between these two, they can improve both LCP and CLS.
  • Unused CSS CDN URL: if you use a CDN URL with a custom domain (cdn.mywebsite.com) with the CDN rewrite setting, there’s no need to add it. But if you use a different rewrite method, add the CDN URL to prevent issues with the load order when compiling used CSS.

Configure Perfmatters With FlyingPress

Duplicate Features

  • Disable emojis
  • Defer JavaScript
  • Delay JavaScript
  • Remove unused CSS (both loads used CSS in a separate file)
  • Instant page (preload links)
  • Lazy load images, iframes, videos
  • Preload critical images
  • CSS background images (FlyingPress has a lazy-bg helper class)
  • Add missing image dimensions
  • Font-display: swap
  • Preconnect CDN URL (when using FlyingCDN)
  • Local Google Fonts
  • Database optimization

New Perfmatters Features

  • General settings (except disabling emojis)
  • Script manager
  • Preload CSS, JS, and other files
  • Preconnect third-party fonts
  • DNS prefetch
  • Local analytics

Configure Perfmatters With WP Rocket

Duplicate Features

  • Disable emojis
  • Heartbeat Control
  • Defer JavaScript
  • Delay JavaScript
  • Remove unused CSS (WP Rocket loads used CSS inline)
  • Instant page (preload links)
  • Preconnect (WP Rocket automatically preconnects CDN URLs + third-party fonts).
  • DNS prefetch
  • Lazy load images, iframes, videos
  • Add missing image dimensions
  • Font-display: swap
  • Database optimization

New Perfmatters Features

  • General settings (except disabling emojis, Heartbeat)
  • Script manager
  • Preload CSS, JS, and other files
  • Preload critical images
  • CSS background images (WP Rocket makes you move them to inline HTML)
  • Local Google Fonts
  • Local analytics

Configure Perfmatters With LiteSpeed Cache

Duplicate Features

  • Disable emojis
  • Defer JavaScript
  • Delay JavaScript
  • Remove unused CSS (both loads used CSS in a separate file)
  • Instant page (preload links)
  • Preconnect Google Fonts (when “Load Google Fonts Asynchronously” is on in LSC)
  • DNS prefetch
  • Lazy load images, iframes, videos
  • Exclude above-the-fold images from the lazy load (LSC’s viewport images)
  • Add missing image dimensions
  • Font-display: swap
  • Local Google Fonts + analytics (LSC can localize third-party resources)
  • Database optimization

New Perfmatters Features

  • General settings (except disable emojis, Heartbeat, remove Google Fonts)
  • Script manager
  • Preload critical images
  • Preload CSS, JS, and other files
  • CSS background images

Brian’s Video Tutorial (THE ADMIN BAR)

I watched this several times to ensure this guide aligns with Brian’s recommendations. He uses Perfmatters to optimize a GeneratePress site (1st part of the video) and then an Elementor site (2nd part). I found it helpful for excluding files, digging through Waterfall charts, etc.

Key Takeaway Points:

  • Remove unused CSS: 16:02
  • Preloading fonts: 31:58
  • CSS background images: 45:02
  • Excluding files when using delay all JavaScript: 59:13
  • Lazy load background images in Elementor: 1:29:03
  • Excluding selector from removing unused CSS: 1:46:12

Perfmatters WordPress Plugin FAQ

What is perfmatters, and why is it essential for my WordPress site?

Perfmatters is a lightweight WordPress performance plugin that helps you optimize and speed up your site by reducing the number of HTTP requests and controlling scripts and styles. It is important for your WordPress site because it can significantly improve your site’s loading speed and overall performance.

How can I use Perfmatters to optimize my WordPress site’s performance?

You can use Perfmatters to optimize your WordPress site’s performance by disabling unnecessary features, controlling scripts and styles, and optimizing database queries. Additionally, you can use it to reduce the number of HTTP requests and improve the loading speed of your site.

How does Perfmatters help reduce the HTTP requests for my WordPress site?

Perfmatters helps reduce the number of HTTP requests for your WordPress site by allowing you to selectively disable specific scripts and styles that are not essential for the initial page load. This can significantly improve the loading speed and performance of your site.

Is it possible to integrate Google Analytics with Perfmatters?

Yes, Perfmatters allows you to integrate and control Google Analytics and other tracking scripts for your WordPress site. You can easily manage and conditionally load these scripts using the Perfmatters plugin.

How does Perfmatters contribute to speeding up my WordPress site?

Perfmatters contributes to speeding up your WordPress site by optimizing and reducing the loading of unnecessary scripts and styles, controlling database queries, and reducing the number of HTTP requests. These optimizations collectively lead to improved performance and faster loading times for your site.

perfmatters vs WP Rocket – What is the difference between Perfmatters and WP Rocket?

Perfmatters and WP Rocket are popular WordPress performance optimization plugins, but they differ.

Perfmatters is a lightweight plugin that improves website performance by disabling unnecessary scripts, optimizing assets, and providing granular control over various performance-related settings.

WP Rocket, conversely, is a feature-rich caching plugin that offers a wide range of optimization features, including page caching, browser caching, object caching, and minification of CSS and JavaScript files.

In summary, WP Rocket vs perfmatters, perfmatters primarily focuses on performance optimization by disabling unnecessary scripts and optimizing assets. At the same time, WP Rocket offers a more comprehensive set of features for caching and optimizing various aspects of your website’s performance.

What is the difference between Perfmatters and Asset CleanUp?

Perfmatters and Asset CleanUp are both WordPress plugins that help improve website performance.

Perfmatters focuses on optimizing website speed by allowing you to disable unnecessary features and scripts. It provides options to disable specific scripts and stylesheets per page, reducing the number of HTTP requests and improving load times.

Asset CleanUp, on the other hand, focuses on optimizing the loading of CSS and JavaScript files. It helps you selectively unload or manage CSS and JavaScript files on a per-page or post. Removing unnecessary files can reduce the file size and improve page load times.

In summary, while both plugins optimize website performance, Perfmatters allows you to disable unnecessary features and scripts. At the same time, Asset CleanUp helps you manage CSS and JavaScript files to improve loading speed.

Finding and implementing the ideal Perfmatters settings can significantly enhance your website’s performance. By optimizing your site’s speed and reducing its load time, you can provide a better user experience and ultimately improve your search engine rankings. Whether you use popular cache plugins like FlyingPress, WP Rocket, LiteSpeed Cache, or Swift Performance, following the recommended settings can help you achieve optimal results. Remember, every website is unique, so don’t be afraid to experiment and find the best settings for your specific needs. So take control of your site’s performance, and watch it soar to new heights!

Johnny Sebastian
Johnny Sebastian

Johnny Sebastian is an experienced advertising and marketing expert with skills in content marketing, online advertising, and software conceptualization. He writes clear and actionable content for WPThink.com to help enhance readers' understanding of the hosting industry. In addition to this, Johnny collaborates with startups and works with One Up Digital's management team to navigate the ever-changing landscape of content marketing, online advertising, and software development.