Free Amazon Affiliate WordPress Plugins [2022 Update]

Monetizing your WordPress site is important if you are looking to make money with it. The passive streamlining of income from a WordPress site can be pushed to a very fine limit with a combination of content that provides value to the readers, SEO-related adjustments that help your pages to stand out in the search engine, and a reliable monetization method.

One good way to monetize your WordPress site is with an Amazon associate. Basically, you must have an amazon associate account that is fully approved and you will be promoting products from Amazon that are being reviewed or relatable to your niche.

To prepare this setup with a WordPress site you might need some plugins that will help your business run smoothly. This guide shares some of the free amazon affiliate WordPress plugins that you can start using right away without having to pay extra bucks as a startup investment.

These free WordPress plugins provide a variety of features designed to increase Amazon sales, such as automated product updates and personalized recommendations, link localization, etc. Additionally, you can create a certain setup for your preferred amazon ads to appear on certain areas of the website without having to do it for every page. I have also included some essential plugins that maintain amazon associate disclosure for the entire website without needing your interaction. 

Overall, these free Amazon affiliate WordPress plugins help an Associate to start running a profitable Amazon affiliate website. Keep reading till the surprising bonus tool is added in the final section of this post.

Prerequisite for using these Amazon affiliate plugins

Not all the plugins in this post require a special setup before unveiling their true functionalities. Some of these plugins are really handy to configure. However, plugins like Affiliatetable do need access to Amazon’s product advertising API to be able to configure with your site.

Some other plugins may require additional on-page configuration to control their functionality based on your requirements, for example controlling Amazon affiliate disclosure on pages that has amazon products embedded.

As these plugins are free to use so you might feel the lack of features at some point however they are good enough to get kickstart your Amazon Affiliate site. Some of these plugins are freemium that come with advanced features when you consider upgrading to a premium plan.

To begin using these free Amazon WordPress affiliate plugins – 

  1. Simply install the plugins and activate them to access their controls on the WordPress dashboard.
  2. Next, you might need to add your Amazon affiliate ID (in some plugins)
  3. You might also need to add PA API in certain cases too.
  4. That’s should be good to start using them on your web pages.

That being said let’s dive into these amazing free amazon WordPress affiliate plugins you should definitely try out. 

9 Free Amazon Affiliate WordPress Plugins 

1. Disclosure for Amazon Affiliate

Amazon Affiliate Disclosure

Disclosure for Amazon Affiliate plugin allows your site to be compatible with Amazon trademark disclaimer and affiliate disclaimer. It’s very easy to use, just install the plugin, and no additional setup is required on your end. 

This plugin places the disclosure text from amazon at the right location of post-type pages, depending on plugin configuration. The disclaimers are set to ignore by Google so that crawlers do not pick anything from the disclaimer texts while indexing your page.

The disclaimer texts are fully editable and customizable however you see them fit on your pages. As for customization, you can utilize the classic editor environment to add additional html tags and design them via custom CSS applied to your site. 

Moreover, you will have global and custom control to adjust the requirement of disclosures on-page levels. It’s a simple but efficient way to control the utilization of the plugin because you might not need the disclosure on every single page.

Overall, this is a perfect plugin to have the FTC and Amazon disclosures on posts and pages! Its basic utility and simplicity make this plugin so awesome. Apart from that Disclosure for Amazon Affiliates is available for FREE on the WordPress repository.

Check the plugin here: Disclosure for Amazon Affiliate 

2. Site Buddy

As you grow amazon focused websites you will realize the need of ensuring correct affiliate tags are in place, broken links need to be fixed, and products that are out of stock need to be reviewed so that you are not losing your well-deserved commissions.

Sitebuddy is a tool that can manage all of that hustles for you. The way it works is by scanning your website’s pages, finding out amazon links, the crosscheck if the product ID is available in stock. In addition, it will check if the tags are correctly placed and link status. 

The best part is this is a freemium tool and the free plan lets you scan 25 pages per month. Another advantage is you don’t have to install any plugins on your site, everything can be managed via their dashboard.

Additionally, it ensures the pages that include amazon products are Amazon compliant with Amazon terms and conditions. It finds all the pages without Amazon Affiliate Disclaimer and asks you to add it so your Amazon Associate account runs safely.

Check this tool: Sitebuddy

3. Add & Replace Affiliate Links for Amazon


As an Amazon Associate you know it’s important to have your affiliate tag included in any links that you share. The add & replace affiliate links for Amazon plugin ensures your links have the right affiliate tags so that you get the credit for your hard work.

This plugin automatically changes shortened amazon links (e.g., that hide the Amazon associate tag and replace them with long-form amazon links that embed your affiliate tag. It saves you a lot of time from manually changing shortened amazon links and adding correct affiliate tags.

Shortened Amazon links do have the affiliate tags assigned if they are created via Amazon associate site stripe, but in case you want your links to be visible with correct affiliate tags these plugins definitely help.

The plugin can automatically find and replace all shortened links on your website with long links that include your affiliate ID tag. This way, you can be certain you are earning revenue from every sale that’s made through your website.

Check this plugin: Add & Replace Affiliate Links for Amazon

4. Ad Inserter


Ad Inserter is another free WordPress plugin that can be useful for your Amazon affiliate site. This plugin allows you to insert ads into your WordPress site. This can be useful when you want to display a certain contextual Amazon Native Shopping Ads or product box in all posts. 

Managing the ad blocks is pretty handy – all you have to create your preferred blocks and then set them for either manual or automatic insertion at any location of your web page. You can even control the visibility of blocks in your preferred page type.

A plugin like Ad Inserter fully packed with various important features for free is a no-brainer. It’s a powerful plugin that you definitely need to look at if you are serious about listing amazon products on your site without investing in premium plugins.

This plugin supports all types of ads, including Google AdSense, Google Ad Manager (DFP), Amazon Native Shopping Ads,, Infolinks, and rotating banners. You can insert opt-in forms, header scripts, Javascript, CSS, HTML, and PHP anywhere on the page. In addition, the Ad inserter plugin comes with a built-in debugging, and ad-block notice tool.

Check this plugin: Ad Inserter

5. Thirsty Affiliates


If you want your links to look genuine and add a little bit more trustworthiness when sending someone over affiliate product pages, the Thirsty Affiliate plugin can help you. This is a freemium plugin that allows users to clock an outgoing link with custom slugs. 

ThirstyAffiliates also has special features to help you comply with Amazon’s terms of service, especially about link clocking, which is their smark uncloaking to stay under Amazon regulation. We have been using this plugin without any issues. 

With this plugin, you can insert links into your posts with ease. You can search Amazon from within your WordPress dashboard, find the product of choice and link it so that affiliate tracking is available in Thirsty Affiliate’s reports! 

The best part is you can get the basic plugin for free and later upgrade to the premium version once you are able to pull the desired result on your site. With the premium subscription, you can also get links placed automatically in your content for relevant keywords and geo-target your visitors.

Check the plugin here: Thirsty Affiliate

6. Affiliatable


Affiliatable helps you to build a product table and product box to showcase amazon products as an affiliate. With better visual representation the conversion can be improved and Affiliatetable is one of those plugins that make this work super easy. It also comes as a freemium plugin so you can definitely benefit from using it.

With this plugin, you can create high-converting product comparison tables, top product boxes, pros and cons boxes for products, and single product boxes. For this plugin to work you must have access to Amazon API. Other features such as geotargeting, in-depth click reports, and templates are available on the premium version.

Affiliate Table comes with similar features to AAWP which is a premium plugin, so trying out Affiliate table’s free version definitely worth it. With the free version, you can create unlimited tables and boxes for one website.

Check this plugin: Affiliatable

7. EasyAzon


As an Amazon associate, you would want to capture maximum profit from the products you have been reviewing and adding to your content. Well, EasyAzon does that for you, which is a free plugin with no premium plan.

Although EasyAzon is described as a plugin to improve conversion and increase profit with the geo-targeting feature it still lacks some of the advanced features available on similar plugins. Although, you can still benefit from the features it offers for free.

This plugin is compatible with the current WordPress version and frequent updates make it more convenient to use on your site. EasyAzon features an automatic link localizer, advanced analytics & reports, product popup from a link, and link clocking.

With EasyAzon, you can create text affiliate links directly to any product available for sale on without having to go through the steps of manually creating links from within the website. This saves you a ton of time and makes creating affiliate links much easier!

Check this plugin: EasyAzon

8. Amazon Link Engine


Amazon Link Engine is a free plugin that is actually a part of geniuslink. Geniuslink is a powerful tool for localization, link management, and link tracking. The Amazon Link Engine is a child of Geniuslink and inherits its localization and link management properties, however, to achieve these features you must create an account on Geniouslink, which is a premium tool.

You can download the plugin on the WordPress repository. It’s frequently updated and compatible with the current WordPress version. In the plugin setup, you can connect to Geniuslink too in case you have an active account on Geniuslink.

The plugin automatically converts existing amazon links localization compatible, so you earn commission from various country’s Associate accounts. Note that, even though your links will be automatically localized to be able to earn commission you must have an active account on Geniuslink. The newly added links on your WordPress site will get converted too.

Overall, Amazon Link Engine comes as an entirely free plugin with some limitations, which can be activated via having a Geniuslink account that turns out to be cheaper than many other similar plugins. You pay a small flat fee for a certain amount of clicks you receive via your site.

Check plugin: Amazon Link Engine

9. Product Comparision Table Generator


To display a nice-looking Amazon product table or product block with automatically updated price tags and description needs Amazon API. As you might know, nowadays, Amazon requires 3 valid sales and policy compliance for you to access their advertising API.

So as an alternative to building good-looking Amazon product tables that can be inserted inside your content without needing Amazon Advertising API, lab softsolvate’s Product Comparison Table Generator is one tool you would definitely want to give a try. 

It is simple but also an effective way to create eye-catching tables for the products on your website. You will have to assign Amazon product URL (affiliate URL), product name, product producer, and description. Once you add those you can select your preferred table color from the table control.

To get your table or product card into your WordPress site, add their CSS via WordPress customizer (one-time setup), and then add your table HTML wherever desired in your post.

Check this tool: Product Comparision Table Generator

Conclusion: Now you have these 9 plugins to set up your Amazon Affiliate website without investing a dime on Amazon product publishing tools. There are superior tools to go for if your budget allows you and you should definitely consider those premium tools. But that doesn’t mean the free tools available to you are not useful enough. These are for certain some of the great free tools you can use as an amazon associate.

There are many more WordPress sites. Bookmark this page so you find the rest when I update this post with more free amazon affiliate plugins for WordPress site.

You can also read:

Read More

How to set up a WordPress multisite [step-by-step tutorial]

WordPress has been frequently updating its features over the years and on the 5.0 update, it is unconfined the multisite feature. WordPress multisite feature is extremely useful for content marketers, developers, and bloggers who manage multiple WordPress sites at a time. 

If we look closely it’s not only the bloggers who work on multiple WordPress sites, there are developers and organizations that use this system to manage dozens of clients at a time. Moreover, you can see some organizations allow registered individuals to publish blog posts while the owner or super admin can only make changes inside the WordPress admin dashboard. It is feasible to do so because of the multisite feature.

The purpose of this post is to explain when to use multisite and how to get it all configured. Stay tuned as we will go through the step-by-step procedure until we launch multiple sites under one WordPress admin dashboard.

Why Multisite? 

Before diving into the tutorial, let’s understand when you should decide to go for multisite over a single WordPress installation and when you should not! This is important because at some point you may think WordPress multisite would be a better option for your online business however, that is not always the case.

You would prefer to analyze the advantages and limitations of multisite in order to make the right decision during WordPress installation depending on your website standards and its possible requirements.

Pros of WordPress multisite: 

  • All in one dashboard. The super admin gets the control in one place of the entire WordPress site under that network.
  • Installation of themes and plugins on multiple sites takes only one go.
  • Updating becomes easier since it takes just one click to update the components of all WordPress installations under that multisite network.
  • Multisite allows creating unique dashboards for each site and site admin. 
  • Website backup is easy because you can store all site data in a single backup.
  • The use of server resources for multisite is less than individual WordPress installation and easy to optimize as well.

Cons of WordPress multisite: 

  • Not all plugins are supported by multisite. Since most of the plugins are designed to work on a single WordPress installation, installing them on multisite may raise the possibility of plugin conflict. 
  • Individual site admins can’t install plugins/themes which limits the power of administrators.
  • Traffic spikes can slow the website’s performance and may create trouble for the entire network.
  • Hacker or server downtime will affect all the sites under that network.
  • A data breach will involve all the individual WordPress sites.
  • Since all sites share the same user data identical user accounts can not be created for two different sites. 

How to Setup WordPress Multisite

Step 1: Preliminary requirements before setting up WordPress multisite 

Your first and foremost step would be getting a quality web host. It is possible to set up a smaller multisite network on shared hosting. However, we would recommend managed web hosting or a VPS for better server response and site performance.

The next thing you need to know is how to install a regular WordPress site and working experience with FTP clients would be better.

For WordPress multisite, another important step is to pick your domain or URL structure. You have the option to choose between subdomain and sub-directory.

Moreover, if you already have WordPress installed the pretty permalink should be activated. This means that the permalink structure of your WordPress should look like this: rather than

Next, make sure all plugins are deactivated before initiating the multisite feature. This step is crucial because an activated plugin can create conflict with multisite since we know multisite does not support all WordPress plugins. So in order to make sure you do not face any issues during multisite configuration deactivating installed plugins is a safe choice.

Step 2. Activate WordPress Multisite Feature 

As we progress, the next task is activating the WordPress multisite feature. The multisite feature can be activated on a pre-installed WordPress or during a fresh WordPress installation.

Activating multisite on a pre-installed WordPress is a manual process, however, activating it on a fresh WordPress installation takes a single check on the ”enable multisite” option.  

Now let’s understand the manual way. The condition for this is to have a WordPress site already installed. And you would like to create a backup of your complete site. After creating the backup you need to access the wp-config file from your cPanel or by using any FTP client and open that file for editing.

In the wp-config file locate this line “/* That’s all, stop editing! Happy publishing. */

Now right before this line, you need to add the following: 

/* Multisite */
define( ‘WP_ALLOW_MULTISITE’, true );

Check out this example below:

Now save the file on your server and the multisite feature will start working on your WordPress.

On the other hand, if you are about to install a fresh copy of WordPress then you should check the “enable multisite” option. Once you check that option and your WordPress will be configured for the multisite feature. This option basically pre-configures the wp-config file so that you don’t have to do it manually. 

Step 3: Configure your WordPress network

Now since your multisite feature is enabled you need to set up an environment for the WordPress network. In order to do that log in to your WordPress dashboard and find network setup under tools in your left sidebar.

Once you get there, a message appears that says Apache’s mod_rewrite module must be installed in order for the multisite feature to work. If you have reliable hosting this module should have been enabled already.

Next, you will have to follow your decision whether you planned to use subdomains for your sites in the network (eg: or you wanted to use a subdirectory instead (eg:

Select your preferred domain structure and provide a network title which is your new WordPress site title followed by the network admin email address. Click on install to establish the first site in your WordPress network.

Step 4: Complete the network configuration 

In order to complete the network setup, you need to follow the guideline provided by WordPress. It will give you two snippets of codes that must be added to your wp-config file and .htaccess file respectively. These two files will be available in your root directory.

Note that it’s extremely important to back up both of these files before making changes. Otherwise, sometimes simple misplacement of the custom codes can break your site. 

After file backup adds the following code snippet to your wp-config file above the line “/* That’s all, stop editing! Happy publishing. */”. This code mentioned below should display on your WordPress network configuration dashboard as well. 

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', '');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

Once you have updated the wp-config file next, open the .htaccess file and replace other WordPress rules present there with the following code snippet.

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

After the modification, make sure to save the .htaccess file on the server.  

Step 5: Network Admin Menu And Network Settings

Once you have changed the wp-config and .htaccess file, log in to your WordPress dashboard. You should see the “network admin” and “my sites” options on your WordPress upper admin bar. Hover on my sites and the network admin menu will be displayed. 

Below the network admin, you will find the list of your sites in the network and their respective dashboard, posts, and comments. To enter the backend of these sites all you need to click on their names from the list.

The network admin menu consists of the following menu tabs,

Dashboard: The dashboard has a widget to create a new site or a new user to the network. You can also search for existing sites and users as well.

Sites: On this tab, you will find all your sites in the network. For each site, you will have options for edit, dashboard, and visit site. You can modify site settings, themes, and users under the edit option. Bulk action such as deleting sites, active, and deactivating can be done from this page. This list of your network seems similar to a page and post list on a regular WordPress admin panel.

Users: In the user tab you can assign administrators to your network. Each user added here will have the super admin rule which means they can control each site of the multisite network. You can edit admin details, add new ones, as well as remove admin from your network. If you want to assign users or admin to a particular site only then you need to add a user via the administration panel of the site.

Themes: This tab has the option of installing and uninstalling, activating, and deactivating themes for your whole WordPress multisite network.

Plugins: Just like themes in this tab, you will find the list of installed plugins for the network. You can easily add supported plugins to all the sites, delete a plugin, and activate, and deactivate them whenever necessary.

Settings: This is the admin area of the multisite network where you have the control to modify your network title, and administrator email address, allow users to register on the network, and allow a logged-in user to create a new site, etc. Moreover, you can design a custom welcome email for each newly signed user, create custom comments for the first page, or post edits performed by any user.

Custom file upload limitations can be adjusted along with the allowance of the file extension. You can set a default language for the network which would be the global language setting for all websites.

After these settings, your multisite network is pretty much ready for assigning new websites and configuring themes and plugins for them. Now let’s start by adding a new site to the network.

Step 6: Add a new website to the network 

Currently, at the initial stage, you have only one website running under the interface that doesn’t make any sense. A multisite is only necessary when you need to have at least two sites installed under the same network. 

There is no limitation on installing websites under a multisite network. You can always add another site to the list whenever needed. To add a new website follow the steps mentioned below.

  • Go to my sites > network admin > sites and click on add new.
  • For the site address (URL) enter the desired website address. According to the domain structure you have chosen the site address can be assigned. In this example, we have picked the subdirectory URL structure so we need to add the subdirectory after the primary domain. 
  • Along with the URL you need to add the site title that will appear in many places on your super admin dashboard such as under network admin and site list. The site title will appear in metadata such as page title or in the front end as well.
  • After the site title, you can set the site language against the global language setting of the network.
  • Next, choose an admin email address for the new site specifically. This email has to be unique from any other email address available in the network.
  • Click on the add site button to create your new site and have it on your site list. You can find the new site on My sites > Network admin > Sites.

Site contexts such as URL, homepage address, blog title, blog description, and many more can be modified in the setting tab of every site.

Step 7: Install Themes in Multisite

Once you have added sites to the network themes and plugins also need to be installed. We start by installing a theme for the sites. Remember that you need to install a theme only once and that theme will be applied to all the sites in that network.

  • First, go to My sites > Network admin > themes and click on the button add new.
  • Find and install a theme from the WordPress repository.
  • Next, click on network enable to globally activate the theme for all sites on the network.
  • You can manage all installed themes from My sites > Network Admin > Themes. Themes can be network-enabled or network disabled from the theme list.
  • A network-enabled theme means that the individual site owners can’t control these themes but these themes will be available for use on their websites.

Step 8: Install Plugins on WordPress multisite

Similar to themes in multisite, only super admins can install the plugins. Individual site administrators can only activate and deactivate the plugins for their websites. The site admin can activate and deactivate plugins only if the super admin enables the administration menu option.

To enable the administration menu go to Settings > Network settings and check the “enable administration menu” box for plugins. 

Now head towards My sites > Network admin > Plugins and click on add new button to add a plugin to the network. Find your plugin on the WordPress repository, install the plugin, and click on “network active”.

The plugins marked as “network active” will be applied globally to all the websites. The site owners can choose whether his site needs a plugin to remain active or not.

Wrapping up: 

Once you complete all these steps correctly the WordPress multisite is ready for regular use. You can now add more sites, themes, and plugins from the super admin dashboard. The procedures are the same as mentioned above.

The individual sites in the network can publish posts and pages like a typical WordPress site. It is possible to do a lot more with a multisite for example connecting it with Cloudflare. But that could be a whole new tutorial. Finally, we hope this guide is clear enough to help you set up your first WordPress multisite. 

You can also read:

Read More

Micro Website Investing Roll Up Files IPO – Onfolio IPO Thoughts

The Content is for informational purposes only, you should not construe any such information or other material as legal, tax, investment, financial, or other advice. Do your own research.

The business model of buying cash flow producing websites at lower multiples 2x-4x, rolling them together and then taking the larger combined entity public at a much higher multiple is a VERY appealing business model. 

A few have pulled it off VerticalScope while many more of these roll-up plays have failed (some spectacularly – IncomeStore). I started to attempt this in 2017 before the founding team got sucked into the crypto rabbit hole. The Amazon FBA world has seen a surge of this type of roll up activity over the last couple of years. 

So… it has been with great interest that I have followed Dom Wells and OnFolio with interest as they work to take their portfolio public. I have known Dom since 2014 and it has been fun to follow along with his various online projects including this incredibly ambitious one. 

Recently OnFolio has filed with the SEC to have an IPO and has therefore revealed a lot of information related to its operations for us to dig into and learn about website investing. 

This post looks at the performance of OnFolio to date and what we can take away from it as we build our own strategies in this space. 


  • Running a portfolio of sites can be VERY financially rewarding! The estimated performance for OnFolio website investing is…
    • ROCE = 72%
    • ROI = 116% over ~2 years
  • Doing it at scale and turning it into an investable vehicle is REALLY HARD!
    • Net Loss of $1.9M on revenue of $1.8M due to very high SG&A expenses.
  • Roll-Up Financial Alchemy Could be a Massive Wealth Generating Event
    • Total funding estimated at ~$3.1M (shown as accumulated deficit) spent over 2 years results in an implied pre-money valuation of $59M for the IPO (20x return if they pull it off… likely even better since a lot of that $3.1M was debt)

Source of Information:

This article will look at…

  • What is OnFolio
  • The Simple Math of a Roll-Up Business Model 
  • OnFolio Performance
  • Implied Valuation of OnFolio
  • Conclusion

What is OnFolio:

OnFolio buys and/or manages online businesses (content websites, ecommerce businesses and productized services). 

From their filing “We acquire controlling interests in and actively manage websites that we believe (i) operate in sectors with long-term growth opportunities, (ii) have positive and stable cash flows, (iii) face minimal threats of technological or competitive obsolescence and (iv) can be managed by our existing team or have strong management teams largely in place. Through the acquisition and growth of a diversified group of websites with these characteristics, we believe we offer investors in our shares an opportunity to diversify their own portfolio risk.”

The Simple Math of a Roll-Up Business Model

The math is incredibly compelling…

Buy online businesses, using debt ideally to not get diluted, at 2x-4x the earnings and then go public and get a 20x+ valuation on the “rolled up” assets. 

Simple enough in theory but does it work in the real world? 

OnFolio Performance:

This is the new information that was fun to dig into. 

Overall Numbers:


  • Revenue = $1,808,543
  • Cost of Revenue = $1,073,509
  • Gross Profit = $735,034
  • Expenses = $2,687,345
  • Income (Loss) from Operations = ($1,952,311)

So on $1.8M in revenue, $0.7M in gross profit was generated but expenses crushed that resulting in a $1.9M loss. 

I believe these massive expenses are a reflection of the effort needed to go public… look at the length of the filings! Those would be some scary legal/accounting bills!

The Seller and General Administration expenses are huge and potentially a large portion of this are one-off costs associated with going public. In the filing, it shows $553,651 in costs estimated in the efforts to go public representing a significant chunk of the expenses. 

A more interesting and potentially fair way of looking at OnFolio is how has it done with the sites it has.


  • 5 – wholly-owned content/ecom sites
  • 1 – wholly-owned productized service
  • 10 – websites with a management agreement (OnFolio gets paid to manage the site)
  • 2 – productized services being managed (OnFolio gets paid to manage the business)

Looking at the 100% owned websites and the provided purchase agreements we can then estimate their performance based on the organic traffic from ahrefs…

NOTE – The MASSIVE drop of 90% for PrettyNeatCreative occurred in the first month and has climbed back so although it looks terrible this drop may have been calculated into the purchase price based on the APA and relatively low purchase price?

So traffic across the 100% owned portfolio is up 9.06% for the sites we have all the required information for.

This shows the strength of the portfolio model where several sites can drop but the overall portfolio performs better. 

Return on Capital Employed

One of the best measures for a roll-up is how profitably can it deploy capital in acquisitions. 

Basically has Onfolio created value through its acquisitions and website operations? 

Looking at the revenue breakdown… 

  • Website Management $940,779
  • Advertising and Content Revenue = $204,910
  • Product Sales = $661,154
  • Other = $1,700
  • Total Revenue = $1,808,543
  • Gross Profit = $735,034

Then considering the net cash used in investing activities in 2020 and 2021 of $1,020,496 we have a ROCE = 735,034 / 1,020,496 = 72% which is huge!

Or another way is the ROI if the assets purchased were liquidated at a 3x multiple

  • Portfolio value with a 3x multiple = $735,034 x 3 = $2,205,102
  • Investment = $1,020,496
  • ROI = 116% over ~2 years

So the portfolio performance despite some sites dropping appears to be very positive. A couple of things to note would be how much of the cost of revenue is not fully captured in the cost of revenue declared such as…

  • Management time building/running productized services from scratch (not a repeatable activity at scale)
  • Strategy/sales for the website management agreements potentially not being fully baked into the cost of revenue.

Implied Valuation of OnFolio:

I am no financial advisor/investment expert etc so I hope I am calculating this correctly. 

Amount of Cash Being Raised:

“We estimate that the net proceeds from this offering will be approximately $13,246,349 , or approximately  $15,316,849 if the underwriters exercise their over-allotment option in full, after deducting the underwriting discounts and commissions and estimated offering expenses payable by us.”

Cost Per Share:“14,127,125 shares (or 14,564,018 shares if the underwriters exercise their over-allotment option in full), at an assumed price of $5.14 per share.”
So the final value of OnFolio would be 14,564,018 x $5.14 = $74,859,052 which would include the assets of ~$15M cash raised plus the existing portfolio of assets. 

This is the financial alchemy that makes rollup business models incredibly attractive…

  • Deploy ~$1M in capital
  • Buy assets for 2-3x
  • Have those assets perform reasonably well
  • Go public at an 84x multiple on Gross Profit? (74M – 15M cash = 59M non cash value of the business / 0.7M Gross Profit = 84 X)
    • Even though the overall business is losing money and will continue to lose money. 

Overall this seems like a shocking valuation to command especially given some of the very scary wording in the filing… “Our independent registered public accounting firm has expressed substantial doubt about our ability to continue as a going concern;” I don’t read enough of these filings to know if this is boilerplate risk communication or a red flag… certainly sounds like a red flag! 


  • Running a portfolio of sites can be VERY financially rewarding! The estimated performance for OnFolio is…
    • ROCE = 72%
    • ROI = 116% over ~2 years
  • Doing it at scale and turning it into an investable vehicle is REALLY HARD!
    • Net Loss of $1.9M on revenue of $1.8M due to very high SG&A expenses needed to go public. 
  • Roll-Up Financial Alchemy Could be a Massive Wealth Generating Event
    • Total funding estimated at ~$3.1M (shown as accumulated deficit) spent over 2 years results in an implied pre-money valuation of $59M for the IPO 
    • Dom with 5,550,000 shares at $5.14 would have a very good day!

I am impressed with the ambition of this strategy and wish Dom and all involved the best!

Read More

Few Ways To Optimize Images Without Using Plugin 

We all prefer to use images inside our articles. Images are beneficial to describe what the author is trying to manifest inside an article. Displaying some images keeps your readers more involved in the topic. 

During content creation, when it comes to image optimization people usually suggest using proper alt text. However, optimizing an image is much more than just naming it and using suitable alt text. 

While optimizing an image for SEO is necessary, optimizing that for page loading speed is a significant part. As a result of optimization, you will achieve better page speed and SEO results. 

Optimizations You Can do Before Publishing an Image

It’s always better to optimize your images before uploading them to the media gallery. You can take advantage of powerful tools like Photoshop or your favorite image editor. Prepare the image nicely by cutting, resizing, compressing, and saving in a proper format (PNG/JPEG/GIF) before uploading. Don’t forget to give a descriptive filename to it.

Hint: If your website needs high-quality images (Example: Stock Photo Website, Photography Website, Travel Blog, etc) then optimization of images will not help you because it will reduce the quality as well.

1. Find Unoptimized Images

After assigning the images to the published post, the post-publishing image optimization part will start. First of all, we have to scan and identify the problems with the uploaded images. There are tools like GTmetrix and Pingdom which can help you detect the problem with an image. GTmetrix shows the problem in detail so I would recommend you test a particular page with GTmetrix.

Run your website through GTmetrix. As soon as the analysis is complete GTmetrix will display all the results regarding that page into two different tabs “Page Speed” and “Yslow”.  

There are 7 types of image-related problems that can occur on a page. We will first try to solve the most important ones before heading towards the least cause problems. 

  • Serve Scaled Image: Resize a large image into a correct dimension that your themes HTML & CSS specify.
  • Optimize Images: Compress the images losslessly.
  • Specify Image Dimension: Define the width and height of images in HTML or CSS 
  • Make Favicon Small and Scalable: The preferred size of a favicon is 16x 16x.
  • Use a content delivery network (CDN): Serve images from a CDN URL.
  • Leverage browser caching: Cache image files using a caching plugin.
  • Minimize Redirect: Serve images with proper HTTPS.
  • Combine Images Using CSS Sprite: Combine images into as few files as possible using CSS sprites.   

GTmetrix will present image related test results like this:

image related warnings

2. Serve Scaled Images

If you get a warning to serve scaled images by GTmetrix, this means that the page includes some oversized images. GTmetrix recommends you resize them into the correct dimension (will be provided by GTmetrix) which matches your theme design. 

As soon as you resize the images into the recommended dimension the warning of serving scaled images will disappear. It will help you decrease the page size as well. 

Resize The Images Manually: 

In this case, you should be resizing the images manually. Using a  plugin will not be helpful because every image is recommended to be set in a different dimension. 

You can use an online image editor to resize the images which are required. Open the editor iloveimg and upload the image file from your computer or you can download the original image from the GTmetrix link shown in the warning.

Caution: Do not change the image title.

Set the recommended dimensions inside the editor and resize the image and download the resized version. 

resize image

Check the original file location in GTmetrix and now upload the resized image to that location using a hosting file manager or any FTP client. You should see the overwrite confirmation popup while uploading the image and select confirm. 

Resize and upload back all the images which required proper scaling. As soon as you finish the process, recheck the page with GTmetrix and the warnings will disappear. 

3. Optimize Images

This warning usually appears when a page contains losslessly uncompressed images. Losslessly compressing an image will help to reduce the size of the image, resize image files themselves instead of via CSS, and most importantly decrease page loading time.


To fix this issue open the optimized image in a new tab which is recommended by GTmetrix and download it. Copy the file name from GTmetrix (Image URL) and rename the downloaded file by pasting the copied name.


Now open your website file manager or use any FTP plugin and upload back the optimized images into the correct location (wp-content/uploads/date/….). Repeat the same procedure for all the unoptimized images. When finished, re-test the page with GTmetrix and optimize the images warning will be solved. 

4. Specify Image Dimension:

Specifying the width and height for the images (In HTML and CSS) enables faster rendering by rejecting the need for unnecessary repaints. 

This warning appears when GTmetrix detects any image on your website that doesn’t have the width/height mentioned inside the HTML or CSS code. Some themes automatically attach the image dimension while some others don’t. 

specify image dimension

Visual editors and live page builders like Divi, and Elementor allow you to specify image dimensions so they can assist you to fix this problem. 

If you don’t use visual editors then adding width/height in HTML code will end this warning. A great example of using dimensions in the WordPress widget area is: 

5. Make Favicon Small and Scalable:

A favicon is an icon connected with a web page. This little image remains in the “favicon.ico” file in the server’s root. During page load since the browser requests this .ico file, hence it needs to be present there.

Every time a browser requests this favicon file, the cookies for the server’s root are sent. So making the favicon small will help to reduce the cookie size for the server and improve the performance of the website as well.

You need to make sure that the favicon size is 16x16px, the file is in favicon.ico format, and is cached using the cache plugin.

Optimization after publishing an image

Post publishing optimizations include managing image loading hierarchy, caching, and extra push with a faster asset delivery network. Here’s what you can do to optimize your images after publishing without using a plugin.

1. Use a content delivery network (CDN)

CDN is a set of web servers distributed over multiple locations around the globe to deliver your content more efficiently to users. The advantage of having a CDN, it can provide an equally fast website performance to your users across the globe.

While using a CDN you need to serve the images from a different URL, which is your CDN URL. 

For example:

Image URL without CDN:

Image URL with CDN:

There are various CDN providers available, but I use KeyCDN and Cloudflare. Cloudflare serves the contents with 150+ data centers while KeyCDN has 34 data centers. Cloudflare is easy to combine with other CDN providers increasing the data centers for faster content delivery.

Since Cloudflare doesn’t set CDN URL for the images, hence we will serve images from KeyCDN.

2. Server WebP images

WebP is an excellent replacement for JPEG, PNG, and GIF images. Like other regular formats, WebP supports both lossless and lossy compression. Lossless compression prevents any kind of data loss. Lossy compression reduces file size, but at the expense of possibly reducing image quality. Usually, you will require a plugin to convert your website’s images to webp and serve them across your site and I would suggest so because this is the safest way to serve WebP unless you know what you are doing.

WebP images are 25 to 35% smaller than their JPEG and PNGs. This helps in reducing page sizes and improves performance.

Typically WordPress shows you an error message of not supported file type whenever you upload a WebP image. To overcome this you must check whether your web host support serving webp files. You can ask them to let your site serve webp image files.

Next, follow the steps below to upload WebP images in WordPress.

  1. First, log into your WordPress admin panel.
  2. Go to the Appearance section.
  3. Then go to Theme Editor for editing the theme.
  4. You will have to select the Theme Functions from there [functions.php]
  5. Then append the code mentioned below in the function.php file. (do not override any available code)
  6. Now, all you need is to update the function.php file.

Code to add in function.php file:

function webp_upload_mimes( $existing_mimes ) {
	// add webp to the list of mime types
	$existing_mimes['webp'] = 'image/webp';
	// return the array back to the function with our added mime type
	return $existing_mimes;
add_filter( 'mime_types', 'webp_upload_mimes' );
//** * Enable preview / thumbnail for webp image files.*/
function webp_is_displayable($result, $path) {
    if ($result === false) {
        $displayable_image_types = array( IMAGETYPE_WEBP );
        $info = @getimagesize( $path );
        if (empty($info)) {
            $result = false;
        } elseif (!in_array($info[2], $displayable_image_types)) {
            $result = false;
        } else {
            $result = true;
    return $result;
add_filter('file_is_displayable_image', 'webp_is_displayable', 10, 2);

3. Preload Responsive Image files

Preloading critical images can boost your site performance. By preloading, an image file you are telling the browser about critical images that you want to load as soon as possible before they are discovered in HTML. This is especially useful for images such as site logos, background images, cover images, etc.

To preload an image you can use this code at your site header (you can use a header and footer plugin for that)

<link rel="preload" as="image" href="important.png">

For responsive images:

<link rel="preload" as="image" href="wolf.jpg" imagesrcset="wolf_400px.jpg 400w, wolf_800px.jpg 800w, wolf_1600px.jpg 1600w" imagesizes="50vw">

4. Lazyload Image Files

Lazy Loading Images is a technique that defers the loading of images on a page to a later point in time – when those images are actually needed, instead of loading them up front. It helps in improving page performance, better utilization of the device’s resources, and reducing associated costs.

Again, lazyloading images with a plugin is a handier process than configuring it manually. Although check this guide on how you can lazyload image loading on your site, manually.


Images are heavy assets for a page and need to be optimized to avoid performance drops. This guide will help you keep your page size smaller with the proper image optimizations. This is very much focused on image optimization without using plugins but I can tell you with optimization with plugins make this process much easier and provide a great boost to your page performance.

Read More

How to avoid unnecessary CSS in WP and its impact on the performance

When you try to optimize your WP site speed, you need to remove unnecessary CSS. It delivers a faster page loading experience to the users and improves your site ranking in the Google page speed test.

We focus on using reliable and fast web hosts, enabling caching, optimizing images, and removing unused plugins to reduce server load, compressing javascript & CSS, using a content delivery network, etc.

But sometimes we can improve our page performance even more by avoiding those components which load as bloats. So, next in the list you can remove these CSS and JS files from WordPress to make your page feel smooth and fast. In this article, we will particularly focus on avoiding CSS that is not required.

Of course, there are great plugins to unload specific CSS from a page, such as WP Asset Clean Up, PurifyCSS, or Perfmatters to name a few. In this article, we will see how to do it with and without installing plugins on your WordPress site.

Before that, let’s go through…

What is unused CSS?

Unused CSS is the CSS code that loads regardless of its importance on a particular page. Some of these codes do their work to design page elements, however, the rest(most) of them are not required because a single page does not demand all the CSS codes written for the entire website.  

what is ununsed css

Most of the time almost 80% of the CSS files probably do not do anything on a single page. You can test it on your personal site’s homepage and observe how many CSS files are being used on the page against what is the total number of CSS files being served.  

Why does the plugin load all CSS?

During development, the theme developers need to write the theme in such a way that it will support all kinds of websites whether it’s a blog, forum, woocommerce site, and so on. It has a decent level of complexity because individual sites require various HTML elements along with their own adjustments.

These include our daily used elements:

  1. Search bar
  2. Navigation bar
  3. Widgets
  4. Icons
  5. Typography
  6. Comment box
  7. Social media section
  8. Author bio section
  9. Buttons
  10. Tables 

and the list goes on… 

For example, when a plugin is including the style.css file, it would be something like this

    @import url("style.css");
    p {
           color: blue;
           font-size: 16px;

99% of the time developers put all the CSS codes in this style.css file. What it does is load all the codes from the style.css file regardless of the certain elements you are using on a certain page, and all the CSS will be served to your visitor’s browser. And for this, you have no right to blame the developers either.

What if we don’t serve these elements?

In your blog, you don’t need Woocommerce if you are not running an additional store, you don’t need a comment box either if you are using a third-party commenting system (Disqus for example). So these elements can certainly be avoided while loading the page. 

Again some elements are needed in certain pages although are not necessary for all pages on your site. A good example is the author box, it is a part of your blog posts however on pages such as the homepage, privacy-policy an author box is worthless. 

Avoiding this CSS will only improve your page performance because they are unused CSS and simply are not doing anything good. 

Note: It’s not just the elements of your theme, plugins do inject additional CSS into your pages. This another good reason for keeping the installed plugin count low on your site.

So, does it say you can remove all the unnecessary CSS from a WordPress page!

Why is removing CSS not an easy task?

Filtering out the unnecessary CSS is not an easy job to deal with, mainly because of dynamic classes. It’s a technology to load the function of a class at runtime. It allows loading CSS functions that are uncertain or not known before a web page starts loading.

The Javascript function of your site can load CSS classes as needed and it does not have to keep track of the name of classes before any one of these classes is loaded and run. This behavior makes it difficult to identify which part of the CSS will you unload and whether it is safe given missing CSS can break your page.

Also, extraction of used CSS is not easy like critical CSS because there might be js files that call a certain CSS class following a particular event of a button click. These CSS classes might be required for animation such as the “go-to top” button on your page. Being dynamically inside javascript these CSS classes are extremely difficult to find for removal.

Note: Critical path CSS which is an important style/CSS required to render above the fold contents. The rest of the required CSS is loaded in the footer section of the page to avoid render blocking. 

critical path css

How to find unused CSS and JS files on your pages

To remove or avoid using unnecessary CSS files we need to analyze those files first. The most comfortable way to do this is the coverage tab in the Chrome dev tool. To initiate it;

  • First, open the page you want to debug.
  • Press Ctrl + Shift + I to open the chrome dev tool.
  • Click on settings icon > select more tools > select coverage.
coverage tool
  • Then click on the reload button that appears below.
  • Chrome will analyze your webpage and it will prepare a report where you can see the element’s URL, their types, total bytes, unused bytes, and Usage virtualization.

You need to focus on the Usage virtualization tab, mainly the correlation between used and unused bytes of page elements. Red color represents the number of unused bytes whereas blue color means the number of used bytes. 

Then you can select the URL to dig a little more to find out what exactly is being used and what are unused codes. You can see the unused and used code section in the same red-blue color representation. 

See this example below;

find unused css

(As we aim to look for unused CSS make sure you have selected the URL of a CSS file. In this example, I did select a JS file only for tutorial purposes)

How do we remove unnecessary CSS

There are multiple approaches to avoiding or reducing unnecessary CSS on your webpage. I will try to keep the hierarchy in reverse order of difficulty. 

1. You can avoid inline CSS styling in the WP editor

While creating a post we usually type in the default Gutenberg editor which is good because it allows you to create a beautiful looking well-organized page. But the block adds additional inline CSS to your page. 

Typically, if you keep your posts simple and do not use advanced Gutenberg styles then you can avoid the inline CSS by using the code editor. You can use HTML elements such as <p> for paragraphs, <H1>, <H2>, etc for headings, <li> for list, and so on.

For example;

inline css styling

You will be able to use the classic editor too once you paste the final copy of HTML into your WordPress code editor.

2. Generate critical CSS

Critical CSS can be beneficial to improve FCP (First Contentful Paint) where it only renders above the fold contents in the header and delays the loading of other styles to last. Ultimately this improves your page speed and resolves the render-blocking warning in the page performance testing tool.

More than removing the CSS from a page, delaying is the key mechanism here that avoids the loading of CSS during page load.

Various WordPress plugins can generate critical CSS for example Autoptimize, WProcket, etc. Alternatively, you can use to generate critical CSS in a couple of simple steps.

3. Use a CDN to deliver CSS files

CDN can drastically improve the content delivery speed because of its widely distributed network which reduces the distance between users and servers. Thus it can reduce server latency and download of CSS (not only just CSS though). Even if you have a lot of unused CSS files on your page CDN can deliver them in less than 50 ms.

So the use of CDN won’t necessarily remove unnecessary CSS from your page instead it will quickly deliver the complete CSS along with other contents in so much less time. You can use good CDNs such as MaxCDN, Sucuri, Cloudflare, etc.

4. Use the Asset Cleanup plugin to remove CSS files (plugin)

The asset Cleanup plugin marks it very easy for the users to unload CSS from your site. It has a free version available in the WordPress repository. All you need to install and activate it to find and unload CSS files in CSS/JS manager. 

Use the Asset Cleanup plugin to remove CSS files

I would recommend this plugin because you will find tips for each CSS file to choose whether you would want to unload or keep it. Also debugging your site becomes easy because it provides a simple enable/disable option and you will know which action is breaking the site and which one is improving the performance.

You can also open any published page and you will see a list of loaded CSS and JS files. These files are classified so it’s easy to go through them. Then you can see which are stylesheets not getting used on your page and then unload them sitewide or for individual pages.

Remember, sometimes CSS that seems unused on a particular page may still have work to do so removing them can break the page. The good news is you can immediately revert the change if unloading any CSS breaks a page.

unload assets

5. Use the Perfmatters plugin to remove CSS (plugin) 

Perfmatter is a premium plugin which is another great option when it comes to unloading js and CSS files from a page. It comes with a script manager that is super simple to use. You will have the ability to unload an entire plugin or individual js/CSS files from a page.

There is nothing to configure on your part. All you need to install the plugin, activate it and you can see the script manager on the WordPress toolbar for each page of your site. 


6. Create a plugin manually to remove CSS (and JS) files

This is a manual approach to removing unused CSS files and you will create a plugin that will keep the record of removed CSS. In WordPress, when you want to remove unnecessary CSS/JS there are four main functions you will require. 

  • wp_deregister_script($handle): Remove the registered scripts.
  • wp_dequeue_script($handle): Remove the scripts enqueued before.
  • wp_deregister_style($handle): Remove the registered stylesheet. 
  • wp_dequeue_style($handle): Remove the stylesheet that you enqueued before.

And other required functions to create the plugin are,

  • __return_false()
  • __return_empty_array()

You may also need conditional WordPress tags to remove unused CSS/JS files on a certain page. Now to create the plugin go to wp-content > plugins, create a new folder named “remove-resources” followed by the .php extension.


Add the following content to the file:

Now for example if you want to remove styles and scripts of the Jetpack plugin you need to add the following code into the remove-resources.php file.

Finally, go to the WordPress plugin manager and activate the remove resources plugin. It will remove the CSS you have mentioned in your newly created plugin.

Final words:

It’s not easy to remove every single bit of unused CSS from your site, and it’s almost impossible for us as a user of WordPress! But with the mentioned steps you will be able to reduce unnecessary CSS from a page and improve page speed + user experience. 

After reading the article share your thoughts with us in the comment section and don’t forget to share it. 


Read More