Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/realio_313/public/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/realio_313/public/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/realio_313/public/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/realio_313/public/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/realio_313/public/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/realio_313/public/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/realio_313/public/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/realio_313/public/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/realio_313/public/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/realio_313/public/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91
SEO - The Ultimate Guide for 2022 - Mako

SEO – The Ultimate Guide for 2022

Table of Contents


In this guide I will teach you everything I have learned about SEO in the last 5 years. Not only will I talk about all the theory, I will also be doing a case study where I enter a new niche and show you step by step what actions I take and why I do them. I will also be sharing the results of my efforts.

What is SEO?

SEO stands for Search Engine Optimisation, which encompasses all the activities that you can can do in order to increase your organic search traffic.

Why does it matter?

For any internet business, traffic is the name of the game.

We distinguish between two types of traffic:

  • Organic traffic
  • Paid traffic

Paid traffic can be acquired fast (in a matter of hours) and you only compete on the price that you are willing to pay. Thus, even a young start-up can compete against large incumbents and start acquiring traffic quick in a crowded market.

Organic traffic on the other hand takes longer and is much more difficult to acquire, but once done properly, it is much more durable and pays dividends for years.

Is SEO really free?

Contrary to common intuition:


At the very least, SEO will cost you time. In its most advanced forms, SEO will cost you time, link purchases, copywriting resources and engineering resources.

For a very junior internet marketer, whose time is not very valuable yet, SEO is almost free. For a more experienced professional or a larger company, SEO does have a significant human resources cost, consultant costs and link purchasing cost.

However, even if somehow costly, SEO typically has a better ROI compared to paid traffic, albeit realised over a longer period of time.

Which search engines are relevant for SEO?

The biggest search engine is, of course Google. However, there are many other search engines that can be optimised for, such as:

  • Bing
  • YouTube
  • Amazon
  • The App Store
  • Etc…

In this guide, we will focus on Google first and foremost.

How does SEO work?

Let’s distillate SEO to its first principle in order to analyse how it works.

Essentially, the ultimate output of SEO will be the number of organic clicks Google sends you.

Let’s decompose the traffic formula:

clicks = pages * clicks_per_page
clicks = pages * impression_per_page * CTR
clicks = pages * keywords * search_volume * CTR(position, content)

Essentially, the number of monthly clicks that you will receive from Google is a function of:

  • The number of pages that you index
  • The the number of impressions that your pages get, itself a function of:
    • The number of keywords that your pages target
    • The search volume for these keywords
  • The average clickthrough rate that your pages get, itself a function of:
    • The average position of your pages in the search results
    • Your content, especially your titles and meta descriptions

Here we demonstrate that SEO is not just about improving your positions, it is also about targeting the right keywords, indexing more pages and making sure that these pages are getting clicks thanks to their attractive content.

What are the steps of an SEO campaign?

Every SEO campaign will follow the same steps, in this order:

  1. Definition of the campaign objectives
  2. Keyword research
  3. Definition of the content to be produced
  4. Production of content
  5. Release of content
  6. Technical optimisation
  7. Link building

In some cases, as an SEO marketer, you will be working for a company that already has clearly defined objectives and a lot of existing content. Even in this case, DO NOT jump straight to technical optimisation and link building. The whole keyword research and content definition will be easier but still very much relevant. Editing the existing content to make sure that it targets the right keyword will be very important.

How to start an SEO campaign?

First of all, traffic for the sake of it will not help you achieve your business objectives in any way of form. Just like with paid traffic campaigns, you must start your SEO campaigns with an objective in mind.

Campaign objectives will typically be:

  • Brand awareness
  • E-commerce sales
  • Conversions
    • Lead generation
    • Sign-ups
    • Bookings

Make sure that you understand how organic traffic will help your business and what your ultimate objective is for your SEO campaign.

Secondly, let’s look at another very important concept, even if somehow abstract.

In life, while there are somethings that you can change and influence, there are also other things that you cannot control or change, such as:

  • The laws of physics
  • The passage of time
  • The markets and what they way

Read that again:

No matter what you do, you will have no influence on the market. The market forces are too big and too powerful for you to change and influence.

In search engine optimisation, this implies that you should absolutely start with market research, which typically takes the form of keyword research.

Here is another important learning:

You must start by researching your keywords and it is easy to learn about their search volume and their difficulty, which manifests itself through competition and average cost per click.

What does this mean for you? Well, it means that based on your campaign objectives, you must infer what is the search intent of your target users, what keywords they will use and how you will target these keywords.

How to run your SEO keyword research?

Your keyword research will follow 5 phases:

  1. Determine search intent
  2. Keyword ideas generation
  3. Keyword research
  4. Keyword grouping
  5. Keyword selection

In the first phase, you need to determine, based on whatever your business is, whatever search intent your users may have.

In the second phase, you will come up with some keyword ideas as your starting point.

In the third phase, you will conduct a thorough keyword research.

Finally, in the fourth phase, you will be grouping your keywords by similarity (you will understand why later).

Step 1: What is search intent and why does it matter?

As stated before, you need to have a goal for your SEO campaign. Let’s say for example that you are in the lead generation business and your goal is to generate real estate seller leads.

Let’s further assume that your business thesis is that every home seller must start by determining the value of their home. Therefore, before selling their home, they will start by searching for a way to get an estimate of their home value.

This is their search intent: “I want to establish the current market value of my home”.

Now that we have identified a search intent that corresponds to our campaign objective, which itself aligns with our business model, we can carry on to the next step of our keyword research.

Step 2 & 3: Where and how should you research your keywords?

Let’s now look how to conduct step 2 and step 3.

First, you need to generate some keyword ideas. For this, you will use your brain to come up with the kind of keyword that your target users might be searching based on their search intent. You can also study the keywords for which your competitors rank by looking at their page titles and / or by running them in any of the many keyword tools out there.

Second, you will be entering the keyword ideas that you have generated in step 1 and run them in one of the keyword tools, typically the one provided by Google Ads.

Now, as the tool shows you related keyword and keyword suggestions, you will be hoping from one variation to the next until you find what the market is really searching for. Meaning: keeping the search intent fixed, explore every keyword variations and suggestions until you find the ones with the highest monthly search volume.

Still using our example, we may start with the keyword idea “online property valuation”. Then, as we poke around in the keyword search tool, we arrive to more variations with a higher search volume, such as “free home estimate” and “how much is my home worth”.

Write them down in a table together with their volume, competition difficulty & average cost.

Below are different sources that you can use for your keyword research.

Inside of your Google Ads account, there is a very powerful and free keyword research tool. Google being the source of the data itself, you can trust this tool to be the very best. If there were only one, I would keep this one.

Google search console

Another source of keyword ideas is your Google Search Console, granted you already have a website with some content and some traffic. This is especially useful if you already kind of rank for some keywords and where just a little optimisation could go a long way.

Studying the competition

Run a search in Google using to look at their pages (alternatively you can use a SaaS tool like ahrefs). The goal is to look at the keywords that they have chosen in their titles based on their own keyword research.

Keywords search SaaS tools

Here a list of keyword saas tools that you may want to try out:

  • ahrefs
  • semrush

What is keyword grouping and why does it matter?

Now that we have identified all possible keywords and their search volume, we need to group them. The reason is that we will be creating specific pieces of content for each of the keyword groups. The content that we created will rank for every variation within the group.

Below is the result of our keyword research. Here we have already grouped our keywords and ranked them by volume:

The results of our keyword research
The results of our keyword research

After considering all keyword variations, we have identified 7 main keyword groups:

Ahousing market– Not directly related to one’s home value
– Ultimately a very similar search intent
– Low competition and high volume
A2housing market +location– Same as above
– Low volume individually
– High volume in aggregate
Bappraisal– High volume
– Intent may be wrong
Chome value estimate– Best keyword
– Very high intent
– High volume
– High competition, high cost, high value
Dhow much is my house worth– Close second best keyword
– Very high search intent
– High competition, high cost, high value
Ecompetitor brands– High intent
– Medium volume and medium
Gcalculator– Low volume
– Medium competition
others– Aka the long tail
Grouping the results of our keyword research.

Group A and group A2 correspond to general searches about the state of the housing market. While not directly related to the determination’s of one’s home value, the ultimate search intent might be the same. Also, this group has tremendous search volume and low competition. Finally, because it has tens of thousands of variations that generated by combining it with regions (A2), it will allow us to generate tens of thousands of pages and exploit the search long tail.

Group B is all about appraisal. Although the search volume is the highest and the competition the lowest, it is not necessarily the best keyword group because here again the search intent maybe mistaken. A home appraisal is typically done onsite by an accredited professional in order get a mortgage or refinance a loan.

Group C and D have the highest level of search intent, but they also have tremendous competition and costs. These are our money keywords, for which we would hope to rank someday. We’ll make sure to create pages and start sending them some juice, but we make ourselves no illusions on the kind of results that we hope to obtain in the short run.

Group E is interesting. Competitor branded searches are often less competitive and here also the search intent is super high.

Finally, group F and the ungrouped keyword represent the long tail of the search. We will not be creating specific content for them but we will make sure to sprinkle them throughout our content.

How to select your keywords?

As a rule, we will be creating separate content for each of the keywords group.

For this content, we will chose the keywords with the highest search volume as the main keyword, which means that we will be using it in our URL , page titles and H1 titles.

As for the rest of the keyword variations within the group, we will also be using it in our content but it will be in the H2 tags and in the main text content.

Which errors should you avoid when doing your keyword research?

Here are 3 errors that you should avoid when producing your content:

Creating content that does not match any search volume

You can create the best content in the world, if nobody is searching for it, it won’t generate any search traffic. Make sure that what is of interest to you also interests the rest of the internet.

Sometimes you may find yourself with super interesting content in a very immature market. In this case, you may have more success with advertising on social media where people are browsing content instead of searching for it. In this guide however we concern ourselves with SEO only, meaning that you have to match an existing need and search traffic.

Competing where you cannot win

There are situations where you simply cannot win. The incumbents are too numerous and too powerful for you to do anything. Challenging them would require millions of $ of investments.

Start in a more specialized niche and build on your successes until you can compete against the big dogs.

Using the wrong keyword variations (synonyms) in your titles

These phrases mean exactly the same thing, or at least have exactly the same search intent:

  • free online property valuation
  • free home value calculator
  • free home value estimate
  • how much is my home worth

However, by doing keyword research, you will find that the search volume varies wildly between them. People are using a particular phrase, and it’s not always your first guess. When producing your content, make sure that you use the right variation of the keywords.

Beware also of cultural differences between countries. For example, English and American people trying to determine the price of their home will be using different keywords.

  • Keywords sometimes are subsets, example how much is my house worth and my house worth
  • Sometimes the longer variation has more search volumes (how much is my house worth) but sometimes it’s the short (home appraisal)
  • As a rule of thumb, we will use the longest variation since the shorter variation is included in it. Meaning that by using the longer variant we will also be hitting the keywords of the short variant.

How to produce content?

After keyword research, content is the most important aspect of your SEO strategy. Without content, you have absolutely no chance to rank. Keyword stuffing used to be a big thing big in the beginning of SEO, now the algorithm has matured but it still needs your keywords.

Ideally, you want to create content that is so good, so unique and so interesting that people will want to read it, share it with their friend, print it out on paper and, yes, link organically to it!!!

There are different way to create content:

  • Editorial content: New York times.
  • User generated content (web 2.0): Wikipedia, Medium.
  • Automatically generated content: Worldometer, Coinmarketcap.
  • Content repurposing: scanning old books, transcribing podcasts, scraping public data and optimizing it (PitchBook).

In our example, we will be using a mix of everything but the user generated content.

On the one hand, we will be creating editorial content around the very hard keywords.

On the other hand, we will download Zillow’s publicly available market data and repurpose it. We will be generating tens of thousands of pages automatically by showing the housing market statistics for every state, county and municipality in the US.

In your case, you may also want to start with some editorial content. For this, you will need a good CMS (WordPress will do most of the time) and a content creation strategy. This may include having templates, outlines, an editorial agenda and an army of freelancers. We call this the content factory. The best articles I’ve read about this is the case study presented by Content Distribution:

When it comes to automatically generated content and repurposed content, you need to have some insight / idea about what may respond to some search intent as well as interest your users.

Try and find some large source of numerical data for example which you can present in some interactive way. Here your creativity should come into play.

How to optimise your content for SEO?

When it comes to your content, the better structured it is, the better results you will get from Google.

You should start with your most important keyword and put it into your page titles and H1 header.

Then you should have at least 2,000 words in each of your pages, filled with

How to roll-out your content?

What is Google’s crawl budget and why does it matter?

Google is crawling the entire web and this is very costly for the company. Not only does it take a lot of bandwidth and storage for Google to download every page, parsing and interpreting the content takes a lot of computing power (AI). Therefore, Google coming to your website to download and interpret your content is a privilege.

Obviously, not all website are of equal importance in the eyes of the search engine. Just how much attention will Google pay to your domain? This is what we mean by your website’s Crawl Budget. Highly correlated with your domain strength, your crawl budget will determine how long it will take for Google to discover your URLS, crawl them, interpret them and hopefully index them and rank them.

You can discover what your crawl budget is in your search console:

Search Console > Settings > Crawl Stats

An example of the crawl stats for a domain I own. See how Google’s attention can have wild swings, where in February it started crawling a lot more pages and then came back down. The higher the number of crawl requests, the better for you.

How fast should you roll-out your content?

The speed at which you can release new content depends on your crawl budget. The higher the crawl budget, the faster you can release content.

If you are producing editorial content, this shouldn’t be a problem as your bottleneck will be the actual production of your content.

However, if you are generating automated content (for example when you are using a database and spinning thousands of pages of text), you should pay very close attention to how you actually release this content.

Let’s assume that you start with a brand new domain and that you have 10,000 pages that you want to release, you should not release all of these pages at the same time!!

Otherwise Google will get an indigestion and will simply stop visiting your website and crawling it.

Instead, you should gradually release content, starting with the most important pages first (landing pages, editorial content, main sections) and then slowly roll out pages of lesser importance as Google slowly starts digesting you.

But how fast exactly should you release all this content? One good way would be to look at your website’s coverage in the search console:

Search console > Coverage

An example of a website’s coverage by Google. Some content has been crawled and index but there still is a lot of content that has either been discovered but not yet crawled or crawled but not yet indexed.

Watch your crawl budget and coverage closely and release your content at a pace that is consistent with these indicators to make sure that you don’t discourage Google from even trying.

How to get your content indexed?

Now that we have seen that you shouldn’t take for granted the fact that Google will crawl and index your content, let’s look at some of the strategies that you can use to get your content index.

Essentially, Google will index the content that it sees as relevant using the same criteria that it uses to rank it, so a lot of the work you do here will apply to ranking as well.

Here is a list of what you can do to get your content indexed faster:

  1. Make sure that your pages are optimized with the proper html markup
  2. Make sure that your website is responsive and mobile friendly
  3. Make sure that your website is fast (very fast)
  4. Sign up for the search console & install Google Analytics
  5. Make sure that all of your pages are properly linked between them (internal linking)
  6. Make sure that you have a sitemap and upload it to your search console
  7. Make sure that you don’t have any ghost pages generated automatically by your CMS that shouldn’t exist and will confuse Google and slow it down (thin content, duplicate content, irrelevant page…)
  8. Build inbound links
  9. Manually request indexation in the search console
  10. Use automatic indexation tools

How to rank your content higher in the SERP ?

Once your content is indexed, your next move will be to rank it always higher into the search results.

Essentially, there are 3 well known groups of factors relevant to ranking, plus a 4th more mystical factor:

  1. Content
  2. Technical optimization
  3. Links
  4. UX (User Experience)

To understand how these factors come together, let’s start by puting ourselves in Google’s shoes:

Google’s objective is to serve the best and most relevant results to the user based on his search intent.


The best content in the world takes care of itself. If you had the best content in the world, people would organically share it, link to it, chose in the SERP, stay on it and send all of the right signals to Google. Therefore, your objective should truly be to create exceptional content.

Nonetheless, let’s look at some of the tactics that you can use.

Basically, content is made of:

  • Words
  • Tables
  • Lists
  • FAQ
  • Images
  • Videos
  • Interactive apps


Google is still mostly based on words. It reads your pages and tries to understand them. Then it reads the user’s search query and tries to understand it. Then it searches its database and hopefully it matches both. All of this is based on words, so you need to make sure that you have enough of them and the right ones. While this is very obvious, I thought necessary to repeat it.

Words are essentially unstructured data, even if you can help with the html markup. Let’s look at some more ways to furnish more structured content to Google, namely tables and lists.

Tables & Lists

Introducing tables to your content can be very beneficial, not just to the reader but also to Google who will be happy to parse it, as demonstrated in the snippets that it will show directly in the SERP.

Google’s search results showing table snippets extracted from WorldPopulationReview and Wikipedia.


A big percentage of search queries are made by people looking for answers to their questions. It makes perfect sense therefore that Google would be give a special treatment to questions and their answers. You surely have already noticed the FAQs directly in the SERP. Leverage it yourself by identifying the most common questions related to your content and addressing them.

An example of FAQ directly in Google’s search results.


While Google is happy to parse and interpret your unstructured content, you can make its life easier by providing structured content in the form of JSON-LD snippets. These can include, but are not limited to:

  • Products
  • Prices
  • Quantities
  • Descriptions
  • Events
  • People
  • Etc…

For an exhaustive list of examples, head to:

This rich search result shows some structured data below (open-house event and price) as well as a featured image.


An image is worth a thousand words and Google knows this. Make sure to sprinkle your content with relevant images that add value, then make sure to properly label the images with a legend and an alt text. This will make you surface in Google’s image search but also improve your ranking.


Similar to images, videos can increase the attractiveness of your content. If you can get some, make sure to include them and properly tag them.

Interactive content / apps

Including some interactive functionalities, such as calculators, simulators, maps, games, quizzes, etc.. can boost your content in a big way. If they are really good, they will increase the likelihood that other websites will link to you. They are also harder for competitors to copy. Finally, if they keep your users longer on your websites and more engaged, it will improve your rankings, we’ll discuss this below in the “user experience” chatper.

Technical optimization

Once you have high quality content that matches the desires of the market, the next thing you should do it to do everything possible to make Google’s job of crawling, parsing, downloading, interpreting and understanding your content easier.

This entails:

  • Structuring the content appropriately
  • Choosing the right URLs
  • Building a strong network of internal links
  • Submitting a sitemap
  • Ensuring that your website is fast

Structuring your content

Mostly, this means using the right html markup to make your content more structured and help Google make sense of the most important parts.

  • <title> tags
  • <h1><h2><h3>… tags
  • <ul> & <li> tags

So essentially, Google wants to serve the best content possible.

What are the technical optimisations that you can do for ranking your SEO content?

How to get inbound links?

How to monitor your SEO progress?