How to Optimize MyListing Websites With Perfmatters

Right now, as you are reading this, it is almost a guarantee that your MyListing website is loading assets (CSS, JavaScript, etc.) on posts/pages even though those assets are not even in use.

As just one example that MyListing website owners can attest to, Contact Form 7 (comes bundled with the theme) loads CSS and JS on every post/page of a website.

Our How to Optimize MyListing Websites With Perfmatters guide will show you to use Perfmatters to increase the performance of your MyListing website, by stripping out assets that are loading unnecessarily, reducing HTTP requests, minimizing back-end component loading, and more.

Options > General

Disable Emojis

  • Element Description: Emojis are essentially icons that can be added to a page, outside of the icons that MyListing and Elementor provides. While these can be cute, they are a slight performance hit.
  • MyListing Dependency: No.
  • Case Study Purposes: Toggled OFF, as this element is used throughout our client’s website.
  • Recommendation: Toggle ON.

Disable Dashicons

  • Element Description: These are the official WordPress core admin icons and are not needed on the front-end of your website.
  • MyListing Dependency: There is no dependency as far as the theme functioning, but we found that the icon selection in the backend “breaks” with this functionality disabled.
  • Recommendation: Toggle OFF.

Disable Embeds

  • Element Description: Embeds make it easy to place a video into a post or page, using the WP editor, by simply pasting in the link/URL.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Disable XML-RPC

  • Element Description: XML-RPC allows users and solutions to publish content to a WordPress website, without directly logging in.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Remove jQuery Migrate

  • Element Description: jQuery Migrate allows the JavaScript library to preserve compatibility with jQuery code used in older themes and plugins.
  • MyListing Dependency: No, unless you are using MyListing’s Direct Messaging functionality. 
  • Recommendation: Toggle ON unless you are using Direct Messaging.

Hide WP Version

  • Element Description: Pretty simple one here. There is no need to include the version of WordPress in your website’s code.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Remove wlwmanifest Link

  • Element Description: This link is only needed if you use the Windows Live Writer, which most people don’t these days.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Remove RSD Link

  • Element Description: Similar to XLM-RPC, this is only needed if you edit your website using methods other than your browser.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Remove Shortlink

  • Element Description: Shortlinks are only helpful when the “Plain” permalink structure is used, and website owners should not be using this structure. 
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Disable RSS Feeds

  • Element Description: These can be useful for websites that have an active blog, allowing people to subscribe to new content.
  • MyListing Dependency: No, but if you have an active blog, skip this setting.
  • Case Study Purposes: Toggled ON, as a Blog was not in play.
  • Recommendation: Toggle ON unless you have an active blog.

Remove RSS Feed Links

  • Element Description: Similar to how WordPress generates RSS feeds, it also generates RSS feed links for your pages/posts, comments, tags, etc., but you can leave your RSS feeds enabled and still remove the RSS feed links which typically amount to unused code.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Disable Self-Pingbacks

  • Element Description: Essentially this amounts to nothing more than a waste of resources, as pingbacks are mainly used by spammers.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Disable REST API

  • Element Description: There are solutions on MyListing websites that use the REST API, like WooCommerce, Contact Form 7, and Gutenberg.
  • MyListing Dependency: Yes.
  • Recommendation: Toggle ON (Disable for non-Admins).

Remove REST API Links

  • Element Description: By default, the REST API drops a link into the header of your MyListing website for API discovery purposes, which essentially amounts to unnecessary code on the front-end.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Disable Google Maps

  • Element Description: Depending on which Map Services (Google Maps or Mapbox) you choose for your MyListing website, Google Maps might show up wherever the 27 > Explore widget is used or when any third-party Google Maps widget is used.
  • MyListing Dependency: No, Mapbox can always be used instead of Google Maps.
  • Recommendation: Toggle ON if using MapBox.

Exclude Post IDs

Let’s say you want to use Google Maps on your Explore page(s), but that’s about it. That is where this feature really comes in handy.

Disable Password Strength Meter

  • Element Description: WooCommerce has an integrated Password Strength Meter that forces users to use strong passwords and is a performance hit on your website.
  • MyListing Notes: Depending on your WooCommerce settings (WooCommerce > Accounts & Privacy > Account Creation), this element may not come into play at all.
  • MyListing Dependency: No, as you can set WooCommerce to automatically assign a complex password.
  • Case Study Purposes: Not Enabled. The client involved in this case study does not auto-generate passwords and requires the Password Strength Meter to be in place.
  • Recommendation: Toggle ON if you are not allowing users to create their own password.

Disable Comments

  • Element Description: Depending on the website, allowing comments may make sense (i.e. user engagement) and/or be required as a dependency for another part of the website (e.g. Ratings/Reviews). However, it’s not uncommon for website owners to disable comments so as to not worry about SPAM, comment moderation, etc.
  • MyListing Notes: MyListing uses the WordPress commenting system to provide Ratings/Reviews functionality.
  • MyListing Dependency: Yes.
  • Recommendation: Toggle OFF.

Remove Comment URLs

  • Element Description: Depending on how a website is set up, a visitor may be able to link out to their own website and while these links are nofollow (i.e. Google ignores them), visitors might leave comments solely for the purpose of getting this link.
  • MyListing Notes: While MyListing uses the WordPress commenting system to provide Ratings/Reviews functionality, the default Review form does not allow these links to be created.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Add Blank Favicon

This can be ignored, as this is more to do with temporarily getting better performance scores, which isn’t reflective of real website performance.

Remove Global Styles

As of WordPress 5.9, additional inline code was added to improve duotone styles (CSS and SVG code). Most users probably won’t be using this feature, and the problem is that this adds 311 lines (unminified) of code to every page of your WordPress site.

Disable Heartbeat

  • Element Description: The WordPress Heartbeat API generates AJAX calls, which can cause high CPU usage and a significant number of PHP calls, and if you leave your WordPress dashboard open for example, WordPress will keep sending POST requests to the admin-ajax.php file, every 15 seconds.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON (Only Allow When Editing Posts/Pages).

Heartbeat Frequency

  • Element Description: The WordPress Heartbeat runs every 15 seconds by default.
  • MyListing Dependency: No.
  • Recommendation: Set to 60 seconds.

Limit Post Revisions

  • Element Description: Every time you save a post/page, WordPress creates a new, saved version for rollback purposes, and while this is a great feature, WordPress does not place a limit on revisions by default, which is bad news for your database if you don’t get this under control.
  • MyListing Notes: Listing Types have their own revision management process and Permatters can’t touch those. (Note: We created an Optimize Listing Type Revisions for MyListing guide for those looking to corral their Listing Type revisions.).
  • MyListing Dependency: No.
  • Recommendation: Set to 10 revisions.

Autosave Interval

  • Element Description: WordPress automatically saves a draft every 60 seconds, by default, but you may prefer to increase the interval to prevent the browser from “hanging” and to reduce the number of writes to the database.
  • MyListing Dependency: No.
  • Recommendation: Set this to 5 minutes.

Options > Login URL

Custom Login URL

  • Element Description: If the default WordPress login URLs are not changed, it’s one less thing that “hackers” need to attempt to guess and bots will be able to constantly hit your WordPress login pages.
  • MyListing Notes: After changing the Login URL, be sure to bookmark your new URL and flush your permalinks (WordPress > Settings > Permalinks > Click the Save Changes button).
  • MyListing Dependency: No.
  • Recommendation: Set this to a random, complex value as this is something you should never need to memorize (i.e. you’ll bookmark it) and it will be transparent to your users.
  • Tip: Be sure to exclude your new, custom Login URL from all levels of your caching (CDN, server, plugins, browser, etc.).

Disabled Behavior

  • Element Description: This allows you to display a message, shown your 404 page, or redirect to your Home page.
  • MyListing Notes: None.
  • MyListing Dependency: No.
  • Recommendation: None.


  • Element Description: This is where you can specify the message that gets displayed if you have the option turned on under ‘Disabled Behavior’.
  • MyListing Notes: None.
  • MyListing Dependency: No.
  • Recommendation: None.

Options > WooCommerce

Disable Scripts

  • Element Description: WooCommerce loads scripts and styles on every page of your WordPress site by default, whether they are needed or not.
  • MyListing Notes: Looking at the code for the Explore page, we see a combination of 11 scripts/styles loaded, and with this setting enabled, that number drops to only 3.
  • MyListing Dependency: Yes, if you are using Paid Listings or are selling using other methods on your website, we found multiple issues with the shopping cart.
  • Recommendation: Toggle OFF.

Disable Cart Fragmentation

  • Element Description: This feature is used by WooCommerce to update the cart totals without refreshing the page (AJAX).
  • MyListing Dependency: Yes, if you are using Paid Listings or are selling using other methods on your website, we found multiple issues with the shopping cart.
  • Recommendation: Toggle OFF.

Disable Status Meta Box

  • Element Description: By default, WooCommerce loads a status meta box (widget) in the WordPress dashboard that often goes unused, and while it can be hidden using Screen Options, it’s better to disable it to speed up the admin area.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Disable Widgets

  • Element Description: WooCommerce by default comes with a lot of widgets installed that often go unused (themes typically have their own code to display products) and they can add load times to both the back-end load and front-end if they are used in sidebars or footers.
  • MyListing Dependency: If you’re using the default MyListing header along with the Cart, the modal that is invoked when clicking on the Cart icon, is dependent upon a WooCommerce widget.
  • Recommendation: Toggle OFF, if using the default MyListing header and you’re displaying the Cart icon.

Options > Assets > Script Manager

This feature allows website owners to strip out assets (CSS and JavaScript/JS) that themes and plugins are loading on posts/pages unnecessarily.

Script Manager can be accessed using one of the methods listed below.

  • From the back-end, by hovering over a post/page and choosing Script Manager.
  • By appending “?perfmatters” to any URL while logged into your website.
  • From the back-end or front-end, by pulling up a post/page and using the WordPress admin bar. (Note: Even if you have the admin bar disabled for your admin account, appending “?perfmatters” will invoke it, so again, it’s important to work in incognito mode.).

Be sure to check our Full Video Tutorial for more information on how to properly test with Script Manager.

Script Manager > Default Settings

When you have the Scripts Manager options open, you’ll see a ‘Settings’ menu item on the left-hand side of your screen, and these are the default settings you will see the first time you use Script Manager.

Display Archives

This setting allows you to get more granular with how you apply Script Manager settings to posts, such as targeting particular categories, tags, etc., but in most cases, getting this granular is not needed.

Display Dependencies

  • Element Description: Gives a really have a nice picture of which plugins, widgets, etc., depend and/or rely on each other to function properly.
  • Recommendation: Toggle ON.

Testing Mode

  • Element Description: This allows you as the admin, to work on your LIVE website and see your changes on the front-end, without your end users seeing anything you might be changing/breaking, as you work through the testing process.
  • Recommendation: Toggle ON.
  • Tip: Be sure to toggle this setting OFF, when you’re done using it, as it does place a very small overhead on performance. This is another argument for still using a Staging environment when getting your Script Manager settings dialed in.

MU Mode

  • Element Description: Some themes and plugins are coded in such a way that optimization plugins cannot see them without some extra work, and this feature brings them all to the surface.
  • Recommendation: Toggle ON.

Hide Disclaimer

Once you’re familiar with the disclaimers that Perfmatters communicates, you can toggle this on to prevent one more thing from loading.

Reset Script Manager

Hopefully, you’ve thoroughly tested your website as you’ve gone along with Script Manager, but if you haven’t and you’re completely lost, this option can quickly get you back to a clean slate.

Script Manager > Global View

When you have the Scripts Manager options open, you’ll see a Global View menu item on the left-hand side of your screen, and if you click on that menu item, it will show you a global view of everything you currently have set.

Each post or page is identified by its ID, which is also hyperlinked, so you can quickly see which post/page is being referenced.

Script Manager > Loading Options

Turn Off Loading Completely

This option is the easiest to use and we recommend it over any other whenever possible.

In short, if you know that a theme (child theme) or a plugin is not used at all for a particular post/page, simply toggle is OFF entirely, within Script Manager.

When toggling OFF a theme or plugin you will then have the options to choose ‘Everywhere’, ‘Current URL’, or ‘Regex’, and we cover these options within this guide.

Once you toggle the theme or plugin off, all of the individual CSS and JS settings will disappear, as shown in the before and after screenshots below.

Optimize Mylisting Websites Perfmatters Plugin Script Manager
Optimize Mylisting Websites Perfmatters Plugin Script Manager Toggle Off Plugin

Turn Off Loading Selectively

Let’s say that you need the theme or plugin to load, but there is some CSS or some JS that’s not needed.

Rather than toggling the theme or plugin off completely, you can selectively choose what elements should load.

In the screenshot below, we are hypothetically saying that we don’t need the CSS to load for Contact Form 7, so we toggle off that particular asset.

Optimize Mylisting Websites Perfmatters Plugin Script Manager Toggle Off Plugin Selectively

Script Manager > Disabling Options

Disabled Everywhere

This option is a bit more complex but does allow the most granularity in terms of settings, and is the fastest way to apply Script Manager settings across your entire website.

Whatever you set with the ‘Disabled Everywhere’ option has the potential to become a global setting for your entire website, depending on what exceptions you make.

  • Current URL: Don’t apply to the page I’m currently working on/from.
  • Post Types: Don’t apply to posts, but apply to all other post types.
  • Regex: Don’t apply to any pages with the word “explore” in the URL.
Optimize Mylisting Websites Perfmatters Plugin Script Manager Disable Everywhere

Current URL

We cover this option in previous sections, but in short, this option simply says to disable assets from loading on the current URL (post/page) that you are currently optimizing with Script Manager.


Let’s say you have a main Explore page (e.g. ‘Explore’), as well as Explore pages for each corresponding Listing Type.

Rather than optimizing each Explore page one by one, you can target all Explore pages in one shot, and this is done using the ‘Regex’ option of Script Manager.

Regex option allows you to target all posts/pages with a certain word in the URL.

For example, let’s say that every Explore page includes the word ‘Explore’, and you have a plugin that doesn’t need to load at all on those Explore pages.

Using Script Manager, you can toggle OFF the entire plugin by choosing the ‘Regex’ option and entering ‘(explore)’ as the value.

Options > Assets > Javascript

Defer Javascript

At this point, Script Manager has allowed you to stop the loading of unnecessary Javascript on your website, and now you want to turn your attention to the Javascript assets that must remain.

We recommend you toggle ON the ‘Defer Javascript’ option and thoroughly test your website, ensuring to always clear caching at every level (CDN, server, plugins, browser, etc.) as part of the testing process.

Troubleshooting Deferring

One of the quickest ways to test if what you’re deferring is causing an issue, other than visual front-end inspection, is to inspect your posts and pages in your browser and look for errors in the inspect console.

If you think that deferring is causing an issue, Perfmatters makes it easy to toggle on or off deferring on a per post/page basis.

To do that, simply edit the page in WordPress and use the sidebar toggles for Perfmatters.

Include jQuery

This setting will be exposed when/if you toggle ON ‘Defer JavaScript’.

jQuery core is something we don’t recommend touching, as the juice (i.e. faster loading potential) ain’t worth the squeeze (i.e. the headache potential).

Exclude From Deferral

If you notice any issues with the ‘Defer JavaScript’ option turned on, simply identify the name of the script and add it to the ‘Exclude from Deferral’ box.

As shown in the screenshot below, one example of this is the Direct Messaging feature of MyListing, which has a script name of ‘messaging.js’.

Delay JavaScript

While defer JavaScript pushes the script to the bottom of the page load, you can instead delay JavaScript based on user interaction.

This can be a great way to speed up the paint of the page when something isn’t needed right away, especially heavy third-party scripts like Google Adsense, conversion pixels (FB, Google Ads), etc.

Where ‘Defer JavaScript’ pushes everything towards the bottom of the list of assets to load, ‘Delay JavaScript’ delays the loading of JavaScript files until there is a user interaction (e.g. moving the mouse over the page, touching the screen, scrolling, pressing a key).

You should only delay JavaScript files that are not required to display anything “above the fold”.

Delay Behavior

There are a couple of ways to go about this and you have to decide the right method for you, based on your comfort level with delaying scripts. Our personal preference is to ‘Delay All Scripts’ and go from there.

Either way you go, it’s important for you to do thorough testing of your website’s design and functionality after you make changes in this area.

Only Delay Specified Scripts

With this option, you must know exactly which scripts you would like to delay, and identifying these can be difficult for some. This is the safest option for delaying scripts, but you might also miss out on some performance opportunities by not delaying more scripts.

Delay All Scripts

Rather than needing to go one by one and identify scripts that can be delayed, this option will delay them all in one shot, as the name suggests. Depending on the website, this may be the best route. Meaning, if you toggle this option ON and everything looks and functions properly, you’re “done”.

We say “done”, because like anything related to performance optimization, you’re never really done. Every solution (plugin, theme, app, etc.) that you introduce into your environment could cause you to rething and/or adjust your delay strategy.

If you decide to delay all scripts, but you identify some issues, you can use the ‘Excluded from Delay’ option to fine-tune which scripts are not included as part of the delay process.

Delay Timeout

You can set a timeout that will load scripts after a set amount of time (between 1 and 10 seconds) if no user interaction has been detected.

Once you toggle on this setting, Perfmatters will default to a delay time of 10 seconds, which is recommended.

If you want to set a different delay timeout value, you can use the perfmatters_delay_js_timeout filter.

Delay Timeout Examples

  • Improve data accuracy of tracking scripts, especially if you have a goal associated with a pageview, but maybe no user interaction. You still want the goal to trigger.
  • You have a Google AdSense blog, and a user is opening up multiple pages in new tabs in the background. You still want the ads to fire off.

Options > Assets > CSS

There are times when CSS is being loaded by a plugin or by the MyListing theme that isn’t needed or used on a particular Post, Page, Listing, etc.

Developers typically only pull in a stylesheet if it’s being used, but there are times when extra styles that might not be needed are also pulled in.

This results in a lot of unused CSS, which adds to the slow down of your website and triggers render-blocking warnings.


Prioritize Script Manager

We recommend ensuring you’ve done all you can at the Script Manager level, in addition to using the ‘Remove Unused CSS’ feature.

It’s better to completely stop CSS styles from being called up, to begin with, rather than call it up and try to optimize it after.

Before Using This Feature

  • Remove any existing CSS preloads you have set up in Perfmatters (excluding Local Google Font stylesheets).
  • Uncombine your CSS. Combining CSS is a deprecated optimization technique since HTTP/2. In some cases, combining your CSS can actually hurt your performance.
  • Make sure you aren’t already trying to remove unused CSS with another plugin.

Remove Unused CSS (BETA)

  1. Remove Unused CSS > Toggle ON.
  2. Save Changes.
  3. Test by viewing a couple of your Posts, Pages, Listings, etc.

Note: We recommend waiting on this setting until this is removed from BETA.

Clear Used CSS

There will be times when you need to clear your used CSS, like when you redesign a page or add a new element to a page. 

To clear the Used CSS, simply click the ‘Clear Used CSS’ button.

Options > Assets > Code

These options can not only help to remove unnecessary plugins, but also provides an easy way to add scripts to your MyListing website.

On client websites, we often see the plugins whose sole purpose is to add scripts to a website, but with Perfmatters, those plugins are no longer needed.

Add Header Code

Code added here will be printed in the <head> </head> section on every page of your website.

Add Body Code

Code added here will be printed below the body section on every page of your website.

Add Footer Code

Code added here will be printed above the section on every page of your website, and this option produces the best performance, so always place scripts in the footer of your website unless you notice any issues.

Options > Preloading

Enable Instant Page

This one is a no-brainer feature to turn on, as it lets users automatically prefetch URLs in the background after they hover over a link, resulting in almost instantaneous load times.

Note: Turning this on will not show improvements when measuring website performance with tools like, so don’t beat yourself up running test after test for this item.


This can be useful for resolving errors like ‘Preload key requests’ and ‘Render-blocking resources’, but overall, this can largely be ignored unless you have a special use case.

Preloading should only be used for resources (web fonts, CSS, and JS) that are needed immediately, so they are loaded in a non-blocking manner (i.e. loaded immediately or very shortly after a page load).


Preconnect picks up where the DNS Prefetch analogy leaves off.

Meaning, rather than Google Maps just storing your address, it actually starts mapping out the directions in the background.

So, when you’re ready to start your navigation, the route is already mapped out.

Everything we documented for DNS Prefetch applies here, as far as how to determine what domains to target, caution targeting too many domains, etc., with the only difference is the underlying process. 

When in doubt, we recommend using DNS Prefetch over Preconnect, due to the potential performance hit that comes from “missing” on preconnect attempts.

DNS Prefetch

A simple way to think of this feature is to think of how Google Maps works on your phone.

Rather than enter your home address each time as the return destination, Google stores your address for you, to help speed up the process.

This is what DNS Prefetch does, which is to say it stores the addresses (domains) that you anticipate visiting often, to speed up the lookup process.

Unlike Google Maps, these entries are manual, but you just need to enter them once.

So, how do you know which domains to prefetch?

Using, you can use the ‘Waterfall’ tab, and sort the entries using the ‘Domain’ column.

Any domain listed, other than your own, is a good candidate to be prefetched since your website is calling for it.

However, the only domains we want to prefetch are those that load early on the page loading process, causing possible contention with the other elements loading on the page. 

Determine the Domains to Prefetch

  1. Run against your website and browse to the Waterfall tab.
  2. Click on “CSS” and “JS” to filter out all other elements.
  3. Scrolling top to bottom, identify any domain other than your own, that has activity starting before the green line.

Note: Once you get towards the bottom of your Waterfall, the need to DNS Prefetch the domains isn’t needed.

Looking at the image below, we see analytics.js, sdk.js, etc. start to load and the only elements loaded below it are more scripts and a non-critical style (CSS).

Long story short, loading scripts at the end is preferred/optimal, so we can just let these be.

Avoid the "Double-Fetching" of Domains

Depending on your theme or plugins, the developers may have already coded the software to DNS Prefetch the domains they know will be called upon.

When we viewed the source code (Chrome > Right-click on the page > View Source Code) of the Explore page, we see the following domains already being prefetched.

  • (Font Awesome)
  • (

The only domain missing from the list of domains already being prefetched was for Calendly.

We included that domain by adding it to Perfmatters and prepending “//” in front of it.

  • //

An exception to the rule is those using true CDNs, would want to include their CDN domain (// in their DNS Prefetching list.

IMPORTANT: This is not set it and forget it, because as your solutions and settings change, you will most likely need to adjust your DNS Prefetch entries, as you don’t want your server making calls when it’s not necessary.

For example, if you decide to not use Google Fonts, you want to stop prefetching that domain.

Options > Lazy Loading


  • Element Description: This is delaying the loading of images until a user scroll downs the page and the images come into view.
  • MyListing Dependency: No.
  • RecommendationToggle ON as long as you are not using lazy-loading functionality from other plugins.

iFrames and Videos

  • Element Description: This is delaying the loading of iFrames and videos until a user scroll downs the page and either of these elements come into view.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON as long as you are not using lazy-loading functionality from other plugins.

YouTube Preview Thumbnails

  • Element Description: If you’re using YouTube videos on your site, this swaps out the YouTube iframes with a preview thumbnail and lightweight SVG play icon, providing the fastest way to load YouTube videos.
  • MyListing Dependency: No.
  • Other Dependency: Requires the iFrames and Videos option to be Toggled ON.
  • Recommendation: Toggle ON as long as you are not using lazy-loading functionality from other plugins.

Exclude From Lazy Loading

Excluding an element from lazyloading is as easy as adding the source URL of the element to this area of Perfmatters, one per line.

Getting the source URL of an element, like an image, is as easy as viewing the image in your WordPress Media Library and copying the file name (e.g. mylisting-club-logo.png.).

  • Element Description: There may be times where you will want to exclude a specific image from being lazyloaded and this is where you would do that.
  • MyListing Dependency: No.

DOM Monitoring

  • Element Description: Watches for changes in the DOM (i.e. structure of your web pages/posts) and dynamically lazy loads newly added elements, to improve compatibility for third-party plugins and themes that utilize infinite scrolling.
  • MyListing Dependency: No. MyListing does not offer infinite scrolling without custom development.
  • Elementor Notes: Elementor also does not include infinite scrolling out of the box either, but third-party plugins for Elementor can provide that functionality, and DOM Monitoring would be beneficial when/if those are used.
  • General Notes: If you use any plugin that provides infinite scrolling, you could benefit by using DOM Monitoring.
  • Recommendation: Toggle OFF.

Add Missing Image Dimensions

Modern browsers set the default aspect ratio of images based on their width and height attributes and if your images are missing these attributes, it can cause layout shifts, which trigger CLS warnings in Core Web Vitals. This is because image elements do not have explicit width and height.

If you happen to also be using a plugin like WP Rocket, this setting is in that plugin as well, so just be sure you are not duplicating functionality by enabling it in both places.

Options > Fonts

Disable Google Fonts

    • Element Description: Elementor provides an easy way to add Google Fonts to MyListing websites.
    • MyListing Dependency: No.
    • Case Study Purposes: Toggle ON. The client wanted to use MyListing’s default font across their entire website and not use Google Fonts.
    • Recommendation: Toggle ON unless you are using Google Fonts.
    • Tip: Speed up your website even more, by following our How to Switch to System Fonts and Boost MyListing Website Performance guide.

Options > CDN

If you happen to be using Cloudflare as your CDN, this section can be skipped entirely.

On the other hand, if you are using a CDN like KeyCDN, StackPath, CDN77, etc., Permatters makes it easy to rewrite the root URL of static assets, including images, CSS files, and JavaScript files.

  1. Enable CDN Rewrite: Toggle ON.
  2. CDN URL: Your CDN provider should be able to provide you with your CDN URL (
  3. Included Directories: By default, the wp-content and wp-includes folders are included and you can enter additional directories to be included in CDN rewriting (separated by commas) but the defaults are typically all that’s needed.
  4. CDN Exclusions: By default, .php files are excluded and you can enter additional assets to be excluded (separated by commas) like .xml files which we recommended adding to your exclusion list if you are using SEO plugins like SEOPress, Rank Math, Yoast, etc.

Note: CDN Exclusions are highly dependent on the individual website, due to all of the different plugin combinations that can exist, so just keep this in mind if you are attempting to take advantage of this section and notice any issues.

Options > Analytics

Analytics needs can greatly vary for each business and if they are critical to the success of your business, please take the time to fully understand the settings under Perfmatters, and also have a look at our guides listed below.

Google Analytics for MyListing Websites
Google Tag Manager for MyListing Websites

Enable Local Analytics

  • Element Description: Hosting Google Analytics locally can help speed up your site by reducing extra DNS lookups while allowing you to load the analytics script over a single HTTP/2 connection, rather than multiple which can add to load time.
  • MyListing Notes: It’s fairly common for ML website owners to drop their Google Analytics tracking info into the theme (Theme Tools > Theme Options > Raw Code) and when they do this, MyListing loads the tracking script in the Footer as a good practice, but we can improve upon this with Permatters.
  • MyListing Dependency: No.
  • Recommendation: Toggle ON.

Detailed Settings

For new businesses that have never used Google Analytics, we recommend jumping straight to v4 of Google Analytics with a new v4 profile.

For those already running an older version of Google Analytics, you can create a new profile for v4 and leave the old one in place for historical data purposes, which is what Google recommends.

Google Analytics v4 in Perfmatters is hosted locally, just like the older version, and please note that each version uses a measurement ID structure.

Measurement ID Types:


  • Tracking ID: Enter your Tracking ID, using the correct measurement ID (UA- vs. G-).
  • Tracking Code Position: Footer. (Note: If you have a slow website, it may be better to choose the Header position to prevent issues with tracking accuracy, but you should not have a slow website if you are taking the time to follow guides like this one.).
  • Script Type: Choose the analytics script type that matches the primary script in use on your website. (Note: Please check out our analytics guides that we linked to above, for more information.).
  • Disable Display Features: Toggle ON. (Note: This is more on the advanced side, but if you are not actively working with the Advertising features of Google Analytics, this should be disabled.).
  • Anonymize IP: Toggle ON. (Note: This is more on the advanced side, but if you fall under GDPR governance, you’ll want to enable this.).
  • Track Logged In Admins: Toggle OFF. (Note: Not sure why this is even an option, as you should never track admin activity analytics-wise, as that would pollute your stats.).
  • Adjusted Bounce Rate: Enter 30 to set the number of seconds.
  • Use MonsterInsights: Toggle ON only if you use the MonsterInsights plugin.
  • Enable AMP Support: If you happen to use AMP on your website, you may benefit from this setting. (Note: AMP is a fad that came and went, so you may want to look into whether you really benefit from using it.).

Tools > Plugin

This section is pretty self-explanatory, but the ‘Purge Meta Options’ is important to mention.

Purge Meta Options

If you have gone through your website and set any of the options below on a per post/page or per asset basis and for some reason you need (or want to) start fresh, this is a great option.

Tools > Database

If you happen to be holding onto a plugin just for the purpose of keeping your database clean, Perfmatters can help you eliminate that plugin, simply by following the steps below.

  1. Open the Database section of Perfmatters.
  2. Toggle ON all settings. (Note: Do not enable the ‘Tables’ option when your websites are hosted with Kinsta, as this can do more harm than good. This feature is primarily used for MyISAM tables and hosts like Kinsta, convert your tables to InnoDB, which is better for performance.).
  3. Schedule Optimization > Weekly.
  4. Save Changes.
  5. Click ‘Optimize Now’ to kick off an immediate cleanup.

Note: Be sure to only run database cleaning operations using a single solution, so they don’t conflict with each other. WP Rocket and WP Optimize are examples of plugins that offer this same feature.

Video Tutorial

WooCommerce Subscriptions Ready

The latest version of the WooCommerce Subscriptions plugin is included (unlicensed) and once you have a Starter Site in hand, you can easily put in your own pricing, package features, graphics, etc.

Should you not wish to use WooCommerce Subscriptions, you can simply turn the Listing Subscription packages into standard MyListing packages in just a few clicks and be on your way.

  • WooCommerce Endpoint Design
  • WooCoommerce Subscriptions Setup
  • Listing Subscription Packages
  • Listing Subscription Switching
  • Stripe Payment Gateway Plugin
  •  and more…

Premium Assets

Get licensed, premium plugins, valued at over $600 in the first year alone, making a Starter Site investment a no-brainer.

You will get licensed copies of all the plugins listed below, with the exception of the WooCommerce Subscriptions and WooCommerce Product Vendors, and the licenses are yours to keep, for as long as the plugins remain on your website.

  • Elementor Pro ($49)
  • Perfmatters ($25)
  • Permalink Manager Pro ($45)
  • SEOPress Pro ($39)
  • UiPress ($39)
  • WooCommerce Product Vendors ($79) 
  • WooCommerce Subscriptions ($199)
  • WP Rocket ($49)