Annual Report 2019

February 5, 2020

Welcome to my first ever annual report! In this post, I'll take you through the highlights of my first year in affiliate marketing, including the operational and financial performance of

2019 was the year where I earned my first dollar through Amazon Associates (but not the first dollar in affiliate marketing as that honor goes to my old Wordpress blog from 2012).

Overall, it was a year of many "firsts" that helped shape my knowledge and experience today.

But before I jump to the annual report itself, I'd like to revisit my vision statement.

My Vision

In my original post on Medium (5 Reasons I Quit My Job to Build Passive Income Businesses), I briefly described the idea of Flexibility as "hopping on a plane tomorrow, flying to another country, and continuing to work on your job or business".

Recently, I've experienced what that's like firsthand (see here and here). And it is powerful.

Flexibility has enabled me to do more than just travel to new places. It's allowed me to support my family in their time of need at a moment's notice.

Moreover, I've developed new perspectives from leading a flexibility-centric lifestyle. And I've met other people who share the same passion for life and desire to live it with no regrets.

Today, my overarching vision remains to create a sustainable and financially independent lifestyle where it's possible to go anywhere at a moment's notice.

In my mind (and to echo The 4-Hour Workweek), true freedom is no longer about financial wealth so much as it is about flexibility (having control over what we do, where we do it, when we do it, with whom, and how we do it).

Next, I'll present the operational performance in 2019.

Operational Performance

In this section, I'll provide a comprehensive summary of the operational performance (traffic and conversions) and discussion of the 3 key pillars of my business (content, backlinks, and technology).


First, let's take a look at traffic performance. Traffic is, of course, the lifeline of any website.

Here's a graph of Unique Pageviews from January 1, 2019 to January 31, 2020:

Unique Pageviews - Jan 2019 to Jan 2020

Note that the sudden dip in September 2019 is due to a missing Google Analytics tag (whoops ) and not an actual decline in organic traffic.

Next, here's a graph of Sessions over the same time period:

Session - Jan 2019 to Jan 2020

Now, the data is not entirely clean (due to the inclusion of traffic from bots and spiders, which accounts for some of the sudden spikes), but both graphs tell a pretty similar story.

Traffic slowly increased from the beginning of the year into the late summertime (it was very strong for a while when a few "best" keywords captured featured snippets), then declined following the September algorithm update, and then recovered in December through January.

I find that Clicks data from Google Search Console paints an even clearer picture:

Clicks - Jan 2019 to Jan 2020

Here, we see a more obvious upward trend in the last couple months. Using Clicks data allows us to isolate traffic from Google searches, which is a good way to measure SEO progress, rather than total website traffic (this includes all traffic channels like direct visits, referrals, and social media).

Overall, in its first full year of operations, reached 44,438 users across 49,551 sessions and 58,746 pageviews. I attribute the traffic growth to well-optimized content targeting low competition keywords along with some decent backlinks.


Next, let's consider how well my traffic converted. Conversions are the actions that you want your audience to take, whether that's a sale, email opt-in, or link click.

For me, I measure conversions as the number of affiliate link clicks, since that's what will eventually make me money through affiliate commissions.

Since I don't have much influence over what users do once they land on a retailer's website (primarily, I consider the link click the conversion point, rather than the actual sale.

Here's a graph of my Amazon Associates US data from January 1, 2019 to December 31, 2020 (unfortunately, there's no option to include January 2020 as well on the same graph):

Amazon Associates - Jan 2019 to Dec 2019

The red line represents affiliate link clicks to and usually correlates quite strongly with ordered items and total earnings (more clicks = more sales).

However, you can see that in the last 3 months, clicks remained stable but ordered items and earnings still grew. This might reflect the seasonal impact of the busy Christmas shopping season.

Below, I've also calculated the Click Through Rate (Amazon Clicks divided by Sessions):

Amazon CTR - Jan 2019 to Dec 2019

The click through rate (CTR) is a measure of how many visitors "clicked through" to as a percentage of total visits. It expresses the conversion rate for my website.

Here, we see that CTRs have been above 20% for the last half of 2019. That means 1 in 5 visitors clicked on at least one affiliate link to

Now, the actual percentage is likely higher because the denominator, Sessions, includes international traffic (which would be redirected to one of Amazon's international storefronts like or and therefore not captured in Amazon Associates US data).

As I outlined in my next steps 2019 post, the click through rate is one of the main drivers of profitability and the only one that is completely within my control (the other drivers are the retailer conversion rate, average order size, and average commission rate).

I explain the drivers of profitability in further detail under Financial Performance > Profitability. For now, suffice it to say that CTRs have been steadily increasing in 2019.

In addition to Amazon Associates data, I've also started to collect page-level conversion data using Google Tag Manager. This lets me calculate the conversion rate for each individual page.

Using this data, I've noticed some very interesting trends in CTRs across different types of content. For example, I calculated the following CTRs for January 2020:

  • "Best" Content: ~30-40%
  • "Review" Content: ~10-30%
  • "Vs" Content: ~10-20%

This level of granularity is extremely powerful as it highlights which types of content are the most profitable (at least from a click through rate perspective). This will help me make better decisions in the future on content creation and content optimization.

For instance, I see that "Best" content has a much higher average CTR than "Review" or "Vs", which may reflect the fact that users have a different search intent (discovery/curiosity) that results in more clicks. The other two search queries are more decision/comparison driven which means users already know where to buy the product (and therefore less likely to click on Amazon links).

Overall, in its first full year of operations, delivered 10,608 clicks to for an average click through rate of 21.4%. Note that this does not include affiliate link clicks for international Amazon Associates programs or 3rd party affiliate programs.

Content Strategy

The first of three key pillars for creating an affiliate website is content.

In the last year, my approach to content creation has continuously evolved as I learned more about content planning (keyword research), content production (research & copywriting), and content optimization (on-page SEO).

1. Content Planning (Keyword Research)

First, let's discuss the important concept of keyword research which is used to help direct our efforts in content production and content optimization.

When I first started to learn SEO, people said that you should pay attention to keyword difficulty (KD) when conducting keyword research. Popular tools like Ahrefs define KD in terms of the relative number of backlinks to the top results on page 1 (the SERPs).

In other words, more backlinks to the SERPs = more difficult keywords.

Today, however, I tend to ignore KD scores as it oversimplifies the keyword research process. There are situations where I think the KD is not reflective of the true difficulty of ranking for a keyword.

Some examples:

  • Irrelevant SERPs: when Google provides a list of less-than-ideal results for a given query, I think you can easily win that keyword, even if competing webpages have more backlinks. Using Doug Cunnington's Keyword Golden Ratio is quite helpful here as it evaluates keyword difficulty based on how many webpages are actually optimizing for the target keyword (which, in my opinion, is more reflective of true competition).
  • Strategic Keywords: if a keyword fits really well into my content silo, or if the keyword is a "must win", then I generally ignore the KD score because I know that it's a longer-term play. While I might not rank for a few months, I'll still continue to optimize (on-page SEO) and build backlinks (off-SEO) until the content ranks on page 1.

Overall, I use keyword research as a starting point to determine which content silos I should build. Once I've decided on my content silos, I then try to create as much content as possible, subject to minimum keyword volume thresholds.

2. Content Production (Research & Copywriting)

The second part of a content strategy is, unsurprisingly, the actual content creation. Since the very beginning, I've been using content templates to streamline the research & copywriting process.

Today, I'm usually able to produce a 1st draft within 1-2 hours using these templates. My next task will be to outsource this template work to a virtual assistant (VA) or low-level content writer.

After a year now of running an affiliate website, I've observed that Google has a hard time determining "good content". It's an inherently subjective assessment which is why the original whitepaper for Google by Larry Page and Sergei Brin relied so heavily on backlinks as an indirect method of evaluating content quality (links count as popularity "votes").

There have been many times when I "hucked together" a piece of content in an hour, which to my surprise, managed to quickly rank on page 1 (even in #1 position).

And then there have been times when I labored for hours (or days) on perfecting my prose, combining elegance with humor, to create the perfect Powerpuff Girls piece of content. Yet many months later, these articles still rank nowhere near their intended targets on page 1.

Today, I'm a proponent of what I call the "staircase strategy" to content creation. That is, you start off with a bare-bones skeleton article, let it index in Google and see how it does, and then gradualy upgrade the content quality over time.

In other words, it's a marathon, not a sprint (like so many things in life).

3. Content Optimization (On-Page SEO)

The last part of a content strategy is content optimization, a.k.a. on-page search engine optimization. Here, we want to make strategic changes to the content that will increase our ranking and traffic (holding off-page factors like backlinks constant).

In 2019, I became fascinated with on-page SEO and came across people like Kyle Roof (met him in person at CMSEO19) and his legendary story of ranking a lorem ipsum page for "rhinoplasty plano".

I also bought his on-page SEO course back in September 2019 (have not finished it yet!)

For my website, however, I've really only implemented the most basic on-page SEO practices (such as putting your keyword in the Meta Title, H1, URL, and Body). Generally, this has been enough to get onto page 1 and often in the top 3 positions.

I also dabbled with a few on-page SEO tools, including PageOptimizer Pro and SurferSEO. Ultimately, I didn't notice any significant traffic improvements from implementing the recommendations from these tools. It's important to remember that these tools might be directionally correct but will still require you to make your own judgments.

Backlink Strategy

The second key pillar of creating an affiliate website (or any website, really) is backlinks.

My approach to building backlinks has flipped back-and-forth like a pancake. In this next section, I've written a brief summary of each chapter in my link building journey.

Phase 1: Spray & Pray (Shotgun Skyscraper)

If you've been following me from the very beginning, you'll know that I've more-or-less followed the blueprint of The Authority Site System (a beginner affiliate marketing couse) by Authority Hacker.

Now, I admit, I was initially singing praises for this course back in September 2018.

However, I do strongly disagree with their recommended approach to link building, the acclaimed "shotgun skyscraper" approach, which I prefer to call the "spray and pray" method.

From January 2019 to March 2019, I followed this approach to the letter: writing huge info articles, using Ahrefs to reverse-engineer link prospects, filtering prospects & gathering emails, sending template emails, managing replies & using canned responses, and following up for the actual links.

The final result: 1 link (which was actually a link exchange).

Phase 2: Custom Outreach

After a few months, I grew increasingly dissatisfied and mistrustful of shotgun skyscraper. I read through hundreds of Facebook comments on the TASS group, hoping to figure out what I did wrong.

I tried different subject lines and email copies using A/B tests in Mailshake. I spent hours learning about the best practices for sending cold email campaigns, including technical things like setting up Sender Policy Framework (SPF) and DomainKeys Identified Mail (DKIM).

By April 2019, I decided to try running a small-scale custom outreach campaign instead. I contacted a list of a dozen and a half websites that had an article related to my niche (acne scars). I spent hours customizing each email to show that I had done my research beforehand.

The final result: 2 links (one was a link exchange with a blogger which is actually gone now and the second was a guest post where I messaged the owner via LinkedIn).

Phase 3: Spray & Pray (Again?)

After a month of custom outreach, I recognized that this approach was very time-intensive which meant less time for content production and content optimization.

After listening to a podcast with Jason Malone, I decided to give shotgun skyscraper another "shot". I understood this time that I had to treat it like a manufacturing process, trying to eek out small gains here and there to increase the overall efficiency.

From May 2019 to July 2019, I focused on building massive outreach campaigns to contact thousands of link prospects every week (hundreds of emails a day). I learned to scrape millions of URLs from Google using ScrapeBox & Storm Proxies, feed them through a series of filters, and use the URLs to pull emails with Hunter (which I also used to send emails instead of Mailshake).

I've written a detailed outline of this process in my June 2019 income report.

Now, I did end up getting a lot more replies, likely because I changed my pitch to "Hey, is this the right email to contact the editor?", a tactic that I shamelessly stole from another Authority Hacker podcast. In most cases, however, trying to change the subject to link placement led to crickets.

The final result: 2 links (one link exchange with an acne treatment clinic that took literally weeks of back-and-forth emails and the second from a low DR health website).

Phase 4: Brief Pause & Guest Posts

Having spent over 7 months on link building (not full-time as I'm also creating content), I felt very frustrated with my meagre results (only 5 links) and demoralized from replying to dozens of emails a day, most of which were requests for money.

Moreover, this feeling of frustration spilled over into my personal life, making me feel gloomy and depressed on most days. It was definitely not a good sign. Link building is nowhere near as important as my mental health and well-being.

I decided to pause my "spray and pray" email campaigns indefinitely. In August 2019, my family went on a nice vacation down to the Great Smoky Mountains of Tennessee during which I relaxed and reenergized myself.

From September 2019 to October 2019, I focused on guest posts: I wrote another guest post for the previous site and a new guest post for an aestheticians' magazine.

Phase 5: Blog Comments

In October 2019, I developed a new technique of link building using blog comments. Essentially, I left comments on other people's websites with a nofollow link to my post.

I would check back after a week to see if the comment was approved. If so, I'd contact the website owner or editor with a reference to my recent comment. This was a slightly better way to strike up a conversation compared to a cold email as you're discussing something that actually interests the other person (an article that they wrote).

What I also liked is that the nofollow links could be placed on very high DR sites like where you might actually get some referral traffic from the comment.

The final result: 1 link (from a blogger)

Phase 6: Agency Links (Post-Chiang Mai)

In November 2019, I attended my first Chiang Mai SEO Conference and had a great time meeting lots of fellow SEOs in person.

I asked almost everyone I met how they were building links in 2019. And about 90% of the time, they told me that they were just buying them!! (with the notable exception of HARO links).

Now, there were still a few self-proclaimed "whitehat" link builders, many of whom are part of the AH PRO community. But CMSEO, from what I've heard, is more known as a greyhat SEO community.

All things considered, this was still astonishing news to me (but perhaps it shouldn't have been). I met many guys who were running successful websites that earned 4-5 figures a month and they all told me that they were buying links.

Well, as the saying goes, "if you can't beat them, join them."

After the SEO conference ended, I placed my first order with SEOButler for two guest posts during their Black Friday sale.

These two links ended up moving the needle for me far more than my entire 9+ months of link building did.

From December 2019 to January 2020, I saw sustained increases in organic traffic and rankings for my target keywords. I made some content changes as well but those were not the main drivers.


Well, hopefully I didn't put you to sleep with my link building stories. In summary, here's what I've learned from my first year of link building:

  • Links are never free: You always pay for them, either with time or money (or both).
  • Link quality is what matters: It's not determined by how you acquired the link (i.e. did you pay someone or write a guest post) but by the domain authority, article relevancy, and anchor text.
  • Outsource your weaknesses: While it was useful to learn just how difficult link building really is (which allows me to better evaluate the cost of paid links), it was an inevitable mismatch with my skills and personality, leading to months of friction and dissatisfaction. Outsourcing it has made me far more productive and a much happier person.
  • Diversify risks: I do not intend to rely on agency links as it exposes my site to risks associated with this type of link building (namely, if it is abused by people and Google is forced to recitify the problem in a future update). I intend to create my own link building method with the help of a VA or two in the future.
  • Humans are reciprocal creatures: The reason that I think shotgun skyscraper did not work well for me is because it ignores fundamental human psychology. We give and we take, we never just take. Asking for a link from a total stranger over email is not an exchange of value, it is more akin to charity or begging. Find a way to offer value (or perceived value) and you'll likely do much better. Guest posts are a good example but today they are pitched too often by low quality link builders, hence the declining reply rates to this type of outreach.

Technology Stack

By "tech stack", I mean all the technical solutions that are necessary to run a basic affiliate website. That includes hosting, Wordpress plugins, SEO tools, and more.

The main lesson that I've learned is to keep it as simple as possible. Get the best technology solution that you can reasonably afford that does what you need it to do. Avoid shiny object syndrome.

For a while, it was fun trying to optimize site speed or manually manage all of my affiliate links (okay, that's a lie). But the truth is, none of these things will bring me more traffic or make me more money.

I realized this back in September 2019 when I consolidated my performance plugins into WP Rocket and began using Geni.Us for affiliate link management. I've also started using Gutenberg with Stackable instead of Elementor for publishing standard posts.

Later this year, I will migrate my site from Bluehost to Kinsta for managed Wordpress hosting (faster). It'll cost me a pretty penny, yes, but it'll be one less thing for me to worry about.

My last piece of advice: avoid recurring expenses where possible (like popular subscription plans). These may appear reasonable at first but can quickly add up. $30 a month here, $50 a month there, and you'll soon have a few hundred dollars of (mostly unnecessary) expenses every month. Instead, just browse Appsumo periodically for lifetime software deals to save yourself a ton of tacos.

Also, don't get suckered into annual plans unless you're really going to need that service all the time (such as hosting). For some things, like SEO tools, you may only need them at certain points in time, so it's better to buy for a month at a time (instead of a full year, as I did with Ahrefs - $990!!).

Financial Performance

In this next section, I'll present a comprehensive summary of my financial performance, including earnings, profitability, and profit & loss.


Here's the graph from Amazon Associates US again:

Amazon Associates - Jan 2019 to Dec 2019

In 2019, I generated $1,320 of earnings (including a $5 bounty) on $24,620 of sales for an average commission rate of 5.3% (which makes sense as my product distribution is somewhere between Health & Personal Care at 4.5% and Beauty at 6%).

If you divide earnings by clicks, the average value per click was about $0.12 cents. This is more commonly expressed as Earnings Per Hundred Clicks (EPC) which would be $12.40.

For comparison, I earned $181.50 on 353 clicks from a merchant on ShareASale for an EPC of $50.42 ????. This is yet another example of why Amazon is not the most profitable place to send your visitors (but still a great place since you earn commissions on basically everything!).

If you divide earnings by shipped items, the average value per shipped item was about $1.30. This means that I earn on average $1.30 for each order that is fulfilled.

For simplificity, I like to think of my business model in the following way:

  • For every visitor to my website, about 20% will click through to (this is the Click Through Rate data that I showed earlier under Operational Performance)
  • For every visitor to, about 10% will place an order (Conversion Rate) of around $25.00 (Average Order Size)
  • For 2019, my Average Commission Rate was around 5.3%
  • So, for every 1,000 visits to my site, I earn 1,000 (Traffic) * 20% (Click Through Rate) * 10% (Conversion Rate) * $25 (Average Order Size) * 5.3% (Average Commission Rate) = $26.50
  • Recall that received almost 50,000 visits in 2019 (this is the Sessions data under Operational Performance)
  • So, a rough back-of-the-envelope estimate of earnings would be 50,000 (Sessions) * $26.50 (Revenue Per Thousand) / 1,000 = $1,325 (pretty close to what I actually earned of $1,315)

Overall, in its first full year of operations, generated $1,627 of earnings (this includes Amazon Associates international programs and non-Amazon merchants).


Next, I'll discuss some trends in profitability metrics. In my mind, this boils down to two things:

  1. Earnings Per Hundred Clicks (EPC): this measures how profitable the affiliate program is. EPC is expressed as the merchant's conversion rate * average order size * average commission rate.
  2. Revenue Per Thousand (RPM): this measures how profitable your entire website is. In other words, how well do you make money with the traffic you've got? If you only send traffic to one merchant, RPM can be expressed as traffic * click through rate * EPC / 100.

Here's a graph of EPC for in 2019 (note that there is no data for January and February/March is an outlier due to the low number of clicks):

EPC to Amazon

We can see that EPC increased steadily from July 2019 to December 2019. To understand why EPC increased over this time period, we need to take a closer look at its components:

EPC Breakdown

In the graph above, I've overlaid the conversion rate, average order size, and average commission rate calculated using data from Amazon Associates US.

We immediately notice that the conversion rate steadily increased over the same time period as EPC. Average order size fluctuated but generally remained within the $20.00-25.00 range. Average commission rate held steady in the 5.0-5.5% range.

Here are a few possible reasons for the increasing conversion rate at

  • Amazon-related: visitors are converting more due to improvements to's user experience, prices, promotions, shipping policy, whatever it may be.
  • Seasonal (Christmas): visitors are converting more due to a greater propensity to shop online leading up to the holiday season. As an Amazon affiliate, you earn commissions on everything someone buys within 24 hours, even if it's not related to your recommendations.
  • Site-related: visitors are converting more due to a better user experience on my site, whether that's the content, design, product selection, whatever it may be.

Next, to wrap up our discussion of EPC, it's important to run a sensitivity analysis of each component to calculate its relative impact. I've run these numbers based on my 2019 results:

  • Impact of +1% Conversion Rate: +10.6% EPC
  • Impact of +$1 Average Order Size: +4.1% EPC
  • Impact of +1% Average Commission Rate: +18.6% EPC

In order to have an equivalent impact on EPC as a +1% conversion rate, you would need +$2.60 average order size (+10.6% EPC) or +0.55% average commission rate (+10.3% EPC).

Finally, here's a graph of RPM in 2019 (total website profitability):

RPM vs Sessions - Jan 2019 to Dec 2019

We can see that RPM has been increasing towards the $50 range, driven by EPC growth at and non-Amazon earnings growth. Traffic (Sessions) actually declined from August 2019 to November 2019 due to the September algorithm update but has sinced recovered in December 2019 and January 2020.

Profit & Loss

Of course, what would a financial summary be without a P&L statement?

I've provided a full account of my revenues and expenses since inception (full year 2019 plus some expenses from 2018 when I first started the business).

I discussed revenue already under Earnings. Below, I've provided a line-by-line summary of my expenses (excluding, of course, the implicit cost of my own time, which is by far the largest cost of running this business).

Expenses 2019 - Part 1
Expenses 2019 - Part 2

Yikes, I know that's not the prettiest thing to look at!

Here's a more visual pie chart that illustrates where I spent my money:

Expenses Breakdown 2019

I'd like to highlight a few key expenses:

  • Ahrefs Lite Annual Subscription ($990): while it was useful to have access to Ahrefs for keyword research, competitor research, and rank tracking (later replaced by Accuranker), I find it hard to justify the price tag at the beginner level. Better to pay $99 a month and use it only when you truly need it.
  • Courses ($978): after 18 months, I'm generally skeptical of buying online courses now. I find that learning through doing / failing is how I learn best. I bought The Authority Site System for $599 back in September 2018 (I honestly think it's worth only $299 at most). I also bought Kyle Roof's on-page course in September 2019 for $379.
  • Conference ($249): this was for the Chiang Mai SEO Conference in November 2019, which was an excellent step for me, both as an affiliate marketer and fledgling digital nomad. I believe 2020 tickets are $349 now and I don't intend to go again (most of the value is in meeting people and you can do that just by being in Chiang Mai).
  • Link Building ($535): this group of expenses are for link building tools including Hunter, Mailshake, ScrapeBox, and Storm Proxies. You also need Ahrefs but I'll keep that separate for the sake of simplicity. This goes back to the lesson that links are never free. Even if you build them the "whitehat" way, there are real costs involved (software, content, your own time). Were I to redo this again, I'd invest the $500+ with a good agency for maybe 3-4 high quality links and save myself literally hundreds of hours on link building (which resulted in only 7 links from January 2019 to October 2019).

As of today, my recurring expenses include:

  • GSuite (CAD$7 a month): basic email plus Google Drive
  • Geni.Us (US$9 a month): all-in-one affiliate link management (focused on Amazon Associates but they are expanding to Wal-Mart, BestBuy, etc.)
  • Elementor Pro (US$74 a year): drag-and-drop page builder
  • AAWP (€18.5 a year): a plugin that creates amazing comparison tables & product boxes using Amazon API data (great for increasing conversions)
  • WP Rocket (US$34 a year): site speed optimization (not required once I migrate to Kinsta)
  • Perfmatters (US$22 a year): site speed optimization (same comment)
  • Cloudflare Domain Renewal (US$8 a year): renew my domain name
  • Bluehost (US$7 a month): I prepaid for 3 years and will be switching to Kinsta's starter plan this year ($25 a month with annual payments)

Finally, here are the total numbers for P&L in 2019 (includes expenses from 2018):

  • Total revenue for 2019 = $1,627
  • Total expenses for 2019 (& 2018) = $4,535
  • Net loss = $2,908

Some of my expenses, such as the courses and conference, are not directly attributable to my website. If I exclude these costs, the P&L would be:

  • Total revenue for 2019 = $1,627
  • Total expenses (ex. courses & conference) = $3,308
  • Net loss = $1,681


Overall, 2019 was a transformative year where I built a strong foundation for my current affiliate website,

In 2020, I plan to meet my revenue goals of $1K a month by the end of H1 2020 and $2K a month by the end of H2 2020.

Share via
Copy link