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. 

TLDR:

  • 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:

2021

  • 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.

Portfolio:

  • 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! 

Summary:

  • 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.

reduce-image-size

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.

optimize-image-version

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: https://yourdomain.com/wp-content/uploads/2019/05/an-image.png

Image URL with CDN: https://static-ea7a.kxcdn.com/wp-content/uploads/2019/05/an-image.png

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.

Conclusion:

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

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

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.
analyze-unused-css-using-developer-panel
  • 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 Criticalcss.com 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. 

parfmatters-plugin

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.

remove-assets

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. 

Cheers…

Read More

How To Track Links And Buttons In Google Analytics

There is a general trend on the internet to track what the website users are doing on the page. In order to track activity such as clicks or how the users are moving one page to another on the website, the webmaster normally uses two types of methods called UTM and GTM tracking. 

Another scenario is button click tracking which is very popular and recommended to use if you have a WooCommerce website. However, button click tracking can be used in general websites to track conversions such as buttons containing affiliate links or any specific landing page. 

Now, if you are using a WordPress site you can set up the link and button tracking using plugins. Since configuring Google tag manager or UTM code in Google analytics event is a manual process, so to avoid any mistakes you can take advantage of two great plugins for WordPress.  

Generally, there are multiple plugins available to track links and you are free to choose any of them. Though, the two most recommended plugins with the best features are MonsterInsights and OptinMonster. That being said let’s dive in and see how to track links and buttons with these two plugins.

Track Links And Button With MosnterInsight

MonstarInsight is a powerful analytics tool that offers an in-depth report of user activity on your website. It will let you discover exactly how people came to the website, what are keywords bring them in, which site actually referred the visitors, and most importantly what the visitors are clicking on the website. These reports help the plugin to guide you to improve website performance as well.

MonsterInsights makes it so simple to connect your WordPress site with Google Analytics properly. Simply get your tracking ID from Google analytics and place it inside the settings of MonstarInsight to get the stats inside your WordPress admin. This procedure is much easier than manually adding analytics codes and configuring event tracking etc.

Let’s find out how it works:

#1. Install The Plugin From WordPress Repository

Install MonsterInsights (Google Analytics for WordPress) either via the WordPress.org plugin repository or by uploading the files to your server. Activate the plugin and it will take you to the setup wizard. 

#2. Configure Plugin With Setup Wizard

Proceed by describing your website category and click on continue. Remember these steps are highly recommended if you are using this tool for the first time and help you properly configure the plugin. Additionally, it allows you to avoid any misconfiguration. 

In the next step, MonsterInsights will ask you to connect your Google Analytics account so that all the links and button clicking events can be tracked by analytics.

After successfully connecting to your Analytics account it’s time to configure your plugins settings so that links & button tracking work well. If you have affiliate links on your website you can set the path for those links to get tracked. Also, you can mention the users who can see tracking reports.

After saving the settings MonsterInsights will be ready to use and it will deploy tracking and start collecting data which you can either view in Analytics events or the WordPress dashboard. Depending on your website size it will take 30 minutes to 24 hours to display data in Google Analytics.

#3. Advance Settings Of MonsterInsight

After finishing with the setup wizard you can take some advanced steps to make your report more appropriate like enabling the demographic and interest report of the links. 

Go to the insights on your WordPress dashboard menu and click on settings. Swap to the “engagement” tab to configure link attribution.

To track eCommerce links and buttons activity you need to look for the eCommerce tab inside the settings window. Enabling this feature requires a premium plan so that you can see click and conversion rate, and purchase button action with revenues.

With MonstarInsights you can bring your website tracking to a whole new level. After setting up this plugin you can go to Google Analytics and check the link & button clicking events under the real-time tab or behavior tab. 

… or you can use the MonsterInsight report inside the WordPress dashboard too. You can detect audience type, device, link categories, and clicks from the countries. 

Moreover, most clicked outbound links, incoming referral links can be found inside the plugin report.

Moving to the next plugin OptinMonster, let’s find out how we can track links and buttons with this plugin.

Track Buttons And Links With OptinMonster

This is another great option for tracking links, increasing leads, increase subscriptions from an all-in-one plugin. More than tracking and it provides you dynamic ability to make personalized engagement campaigns with the help of popup messages, floating bars, lightboxes, and other interactive elements.

In terms of link and button tracking, all you need to do is add the desired links and buttons into the optinmonster elements and let it track everything automatically. Most of the engaging part of this plugin is not only the interactive elements it has, instead the ability to track and predict visitor behavior makes this plugin a perfect choice for many professionals.

So let’s dive in and see how you can configure this plugin for link tracking.

#1. Install The Plugin From WordPress.org Repository

First of all search for the plugin OptinMonster – Best WordPress Pop-up Plugin and install/upload it to the website server. Activate the plugin.

#2. Configure The Plugin With OptinMonster Account

Now a new window will appear which will ask you to either create a new account or connect to your OptinMonster account using an API key.

Remember that OptinMonster is a premium plugin and you should have a plan before connecting your WordPress website. There are four plans which offer different types of features are called basic, plus, pro and growth. 

The UTM link tracking features are available only in Pro and Growth plans which costs around $29 and $49 per month accordingly. 

After creating your account go to the Optinmonster account and create a new API key inside the API dashboard.

In the next step copy your API key and paste it inside the API credentials settings of the WordPress plugin and click on connect.

When your website is successfully connected with the OptinMonster account you will see a new tab called Optin above the “API credentials”. Go there and click on refresh to appear all your Optins in the WordPress plugin.

#3. Creating Optin And Track It With Analytics

With conversion elements like lightbox subscription, floating bar, and closing popups OptinMonster does a great job to get more returning traffic and convert them to leads & customers. At the same time, it allows you to track all the activity on these elements with Google analytics or optinmonster report. 

Setting up the conversion analytics with optinmonster is pretty easy. Craft your elements, publish them, connect to Google analytics then track all your growth. 

Create any pop-up or buttons in the OptinMonster account and then go to the analytics. To configure your Google Analytics account click on add new account and generate the authorization code. This process is simple and should not give you any headache while setting it up. 

You can also set an account label to quickly identify it inside your Analytics account. 

In the Optin monster site report you can track the highest conversion pages with their URL, Leads, and click conversion percentage. The graphical presentation makes it easier to determine where you need to improve and where everything is going very well. 

Moreover, you can track email subscription buttons click by integrating your account with popular email marketing tools like Aweber, MailChimp, Getresponse, and much more. So optinmonster is a great tool if you really want to scale your business depending on live and practical stats.

Final Words:

Though there are a number of great WordPress plugins for creating and tracking your website activities OptinMonster and MonsterInsight have done the best job which really improves your site performance. While this post just scratches the exterior of these two plugins, it’s got the decision point you need to take for advancing towards a perfect tracking campaigning and taking your initial strategy to the next level.

With the link and button tracking, you see your site internally and visualize your next decision perfectly which would not be possible without tracking and getting the reports. And in my sight, Optinmonster and MonsterInsigt have done everything right for a WordPress site owner to save lots of time understanding the things of Google analytics so that they can focus more on the outcome.

Read More

What to do When a WordPress Website is Hacked!

A hacked WordPress site causes panic. It’s one of the most frustrating experiences a site owner can face. In this post, I will help you with how to detect whether a WordPress site is hacked or not along with steps to clean your site.

There will be a few tips, in the end, to prevent your WordPress site from being hacked in the future.

How to identify if your WordPress site is hacked?

When your site is hacked it will start behaving as it should not. Generally, a WordPress site can behave strangely without getting hacked. These issues are mainly related to internal settings and plugins causing errors. 

For example, your caching plugin can break your site’s layout, misconfiguration of the SEO plugin can result in 403 errors, a white screen because of code conflicts, and many more. But these are not necessarily the signs that a site got hacked. 

Let’s take a look at some signs you should be careful with that could be indicating your site is hacked.

  • First and foremost, you can’t log in to your site.
  • You haven’t done anything to your site recently but you can identify some changes. (It can be your homepage is replaced by a new page or  added new content)
  • The browser gives you a warning when you try to visit your site.
  • Google gives a warning that this site might be hacked.
  • Your site is redirecting visitors to other sites.
  • Your hosting provider has informed you about unusual activity.
  • If you are using a security plugin then you might receive a warning from it as well.

Now let’s look at these events in brief:

1. You can’t log in

wordpress-login

Sometimes you can’t log in to your WordPress admin dashboard because of a wrong password or because you have changed your login URL previously. While this is a potential warning of your site is hacked you should not be too quick to consider it. Rather try to reset the password and see if that will resolve your login problem.

If you can’t reset your password that can be a warning sign. Although, being able to reset the admin password doesn’t prove that your site is safe or not hacked. You will have to examine more to identify such potential threats.  

The reason why you may not be able to log in once your site is hacked is the hacker either changed your password or removed the user from WordPress. Sometimes they can replace the default login address i.e /wp-admin with something else. If so the site will give a 404 error when you try to visit this address.

2. Your site is changed 

If you notice that your site looks different whether it’s the homepage or your website theme without your acknowledgment then it can be a huge sign that someone has accessed your site without permission.

These kinds of changes don’t have to be something that can be spotted easily. Little changes like adding suspicious content, links to spammy or bad sites, and hidden links mean your site could have been hacked.

However, changes like theme or frontpage layout can be caused accidentally when you are updating your theme, activating a pre-built design for your site. I would rather recommend using themes from trustworthy & reputable sources. 

3. Browser warns the visitors the site may not be secure

site connection is insecure

Check your site on visitor’s mode and if you get a warning that the site is not safe it could be a likely warning that your site has been hacked. This can also happen due to a plugin or themes issue with SSL. 

In this case, try removing/deactivating the plugins to check whether that resolves the issue as well as check your domain SSL status. If that doesn’t help you should be careful and follow the advice given with the browser warning to diagnose the issue.

4. Search engine’s site hacked warning 

Another way to know your site is hacked is through the warning on Google’s search result. Google will display a warning message “the site may be hacked” on SERP under your site or page URL. If you are getting this kind of result lately, then there is a possibility that your sitemap is hacked.

this site might be hacked

A hacked sitemap or 403 error can prevent Google from crawling the website or at least it will affect the way Google crawled a site. It can be more than just a sitemap hack. You will need to diagnose and find out the origin of this problem.

5. The site is redirecting to external pages

can redirect to malicious page

If your site is redirecting to pages or sites that are not related to your contents, contain spammy or adult ads that could be a sign your site has been hacked. 

Hackers will probably add scripts or redirect rules which will take the visitors to other sites as soon as they visit yours. This can raise a serious caution in visitors’ minds while they are being taken to the pages they are not keen to visit. 

Such behavior not only harms your site reputation but also you will notice a significant downfall in every positive thing on your site, whether that be your daily visits, user engagement, revenue, etc.

6. Warning from your security plugin

Security plugins like Wordfence constantly track the activity on your site. You should have a robust security plugin that protects your site and keeps you informed of all kinds of suspicious activities so that you know what is going on in the backend.

If you have a security plugin then it should notify you about recent unusual activities or if someone is trying to access your site. Once you get informed about such threats regardless if the site is hacked or someone is trying to do so, you can take necessary precautions to protect your site.

Nevertheless, a warning email from your security plugin means bad activities are going on behind and might be a crucial sign of your site being hacked.

7.  Warning on your hosting panel

A reputed hosting service has inbuilt tools to monitor your website activities and report if illegal actions are recorded. You will also find a virus scanner to scan your website files for infected files providing backdoor access to the hackers.

Make sure you use a reputed hosting service and keep a close eye on the hosting’s site activity log. If you find any warning in there it could be a sign that someone is hiddenly working on your site. 

Now you know the behaviors that warn about a site that has been potentially hacked, let’s find out what you need to do to fix your hacked site and get it back to the ideal state.

WordPress site hacked: What should I do next?

Once you confirm your site is hacked, you will need to take the following steps to clean your site and get it back to its ideal state. You might not have to follow all the steps mentioned below as you might be able to fix your site at any stage of the following. 

Step 1: Don’t panic

don't panic

As I mentioned above a hacked site is the worst thing a webmaster can face, but the first key to progressing towards a solution is to stay calm. You do not need to be frightened in such a situation, instead maintain a clear mind to help yourself to proceed into the diagnosis part.

Since the site is still visible to the audience, to reduce the damage and bad impact consider putting the site into maintenance mode and relax a little bit. You can simply use a WordPress maintenance mode plugin to do that, or if you use Cloudflare then activate the under attack/development mode.

Steps to active maintenance mode in WordPress: 

  1. Log in to your WordPress dashboard (if the site is accessible)
  2. Go to plugins > add a new plugin.
  3. Install a maintenance mode plugin.
  4. Activate the plugin and set the maintenance mode to at least 24 hours.

Once the visitors can’t see what’s going on behind your site, you can take your steps one by one carefully. If you can’t access your site then browse it as a visitor mode to see whether the contents such as posts and images are appearing properly or not. If yes, you need to do a backup job from your cPanel or hosting dashboard. We will go to this step later in this article.

Step 2: Reset the password

have a strong password

Again this step requires the ability to access your site after being hacked. If you can access then it’s important to change the password of all user accounts since you don’t know which account is being used to access your site. If you have multiple users working on your site ask all of them to reset their passwords.

Once the user passwords are modified, next change your hosting password, database password as well as SFTP password. 

Step 3: Remove users

remove users from your wordpress site

If you find any user account on your WordPress site that you do not acknowledge it’s important to remove such accounts. Such accounts could be used by hackers to access your site and perform illegal activities. 

You can either remove them right away or confirm with your co-administrators whether they have recently changed their account details or not before finally deleting suspicious accounts. 

To remove a user from your WordPress site:

  1. On the WordPress dashboard expand users.
  2. Then click on all users.
  3. Check if you can find any user account under admin access that is out of your acknowledgment. 
  4. To remove a user hover on the user row and click on the delete option.

Step 4: Update plugins and themes

After removing suspicious users next you need to make sure that all the themes and plugins are up to date. Themes and plugins updates are frequently released by the developers to fix security issues and improve protection.

If you are using any plugin that is outdated or not compatible with your WordPress version try to get rid of such plugins if alternative and updated plugins are available. 

This step is really important because in case your site is misbehaving because of an outdated plugin or theme then you will be able to resolve your issue by installing the latest updates or an alternative. 

Updating a plugin in WordPress is pretty simple. All you have to open the installed plugins page and update the plugins in bulk or one by one. As for themes, go to Appearance > themes and update your currently installed themes.

Another recommendation, do not to keep hold of unnecessary themes unless you are planning to use them in the future. Although, the necessity of doing so is low in priority and entirely depends on your consideration. 

Step 5: Reinstall plugins and themes

reinstall plugins

Apart from updating the plugins & themes, you can check your site status by uninstalling the active plugins and themes. Updating a theme or plugin still can hold bad codes into it that didn’t catch the developer’s attention. 

If you are unsure about whether a plugin & theme is causing this problem or being the backdoor access provider then you should debug them at this point. Make sure to uninstall the plugins first and then see the site’s status. If deactivating/uninstalling the plugins bring your site back to an idle state then activate or reinstall the plugins one by one. Check your site’s status after every plugin activation. This way you can find out which plugin might act as a threat to your site. The same procedure applies to the theme diagnosis too.

Step 6: Remove unwanted files

To find out if there’s any file in your WordPress installation that shouldn’t be present install a security plugin like WordFence or use your hosting site scanner. This kind of tool will scan all the files in your hosting directory and inform you about any potentially infected files.

Run a scan and if you notice any such files in the scan result remove that file from your directory. It makes more sense to have a backup of your site before removing the file as well as analyze the file which you are about to remove to replace it with a fresher copy later.

Step 7: Clean out the database 

database cleanup

Doesn’t necessarily a way for the hacker to access the site but consider cleaning the database to remove unwanted or bloat entries. This will not only make your database take lesser space but also remove unnecessary rows and related data making your site load faster.

Step 8: Reinstall WordPress

reinstall wordpress

This step is necessary when you can’t access your site to make the changes we have discussed earlier. Make sure your site has the contents and no prior damage has been made to the structure of the site before processing these steps.

First, you need to take a backup of your database and wp-content folder using your cPanel or FTP client. Once you do that, go ahead and reinstall WordPress using the inbuilt installer. 

When WordPress installation is complete, now upload the backup contents into your new WordPress installation and configure or import the database backup into the new WP installation.

After that load your site and try accessing your site. In case the issue occurred because of a damaged WordPress installation then it should be solved now. Instead, use the database editor tool to find and fix your user account access. Once you do that you should be able to access your site in the usual way. 

Wrapping it up:

Having your website hacked means your site is losing user attraction as well as control over it. This could bring a severe impact on your business. So getting it fixed as soon as possible is important. 

I believe the above steps will help you to head in the right direction during such a bad situation. Let us know if you find this article helpful and do not forget to mention any steps you think should be mentioned so that it becomes more resourceful for the readers.

Looking forward to the next… cheers.

Read More