How does the Fox Strategy agency prepare Senuto’s content gap analysis?

Case Study
Dawid PietkiewiczDawid Pietkiewicz
Published: 16.09.2021
16 minute

Fox Strategy is a Wroclaw-based Internet marketing agency. As a team of experienced professionals, we work in the spirit of self-organization. This allows us to engage even more effectively in our clients’ internal processes, to better understand how their businesses work and how our actions can help them generate profit. We are part of the client’s team, not external, hired consultants.

Although we grew up as SEOs, at this point we provide complete SEO, SEM and content marketing services for B2B companies and online stores. We are the authors of the Company Building Journal podcast, the Clever Marketing and Business Newsletter, many articles and e-books, as well as Clever SEO and Ads Courses – online training courses for beginners and intermediates. As one of the few companies in Poland, we also specialize in App Store Optimization and SEO for podcasts. .

If you need an effective campaign based on e-marketing and support in promoting your business – we can help!

Want to get to know us better? Also listen to 6th episode of the Senuto podcast, where we talk about how we work on a daily basis.

We use Senuto in our daily work for a number of SEO activities for our clients. One of them is content gap analysis, which you’ll read about in our article today. Feel free to read ????

What is content gap analysis?

Content gap analysis is a process aimed at finding gaps in existing content on a website. Gaps are nothing more than keywords for which a page does not show up in search results, but could. Depending on the source, you may also encounter the term keyword gap analysis. In both cases, however, we will be talking about the same activity, an analysis aimed at finding keywords for which a page could display in search results, but does not. You can perform content gap analysis in different ways, using different methods and tools.

Personally, I would differentiate between two main methods of content gap analysis for SEO:

  • Content gap analysis for a single subpage – it can be a service page, category, article, etc. In this case, we focus on finding the keywords for which this particular sub-page could appear in search results and do-optimizing it for them. By dooptimize, I mean expand the content and fill in the gap with the keywords we found. We use this method to look for opportunities to better optimize existing content.
  • .

  • Global content gap analysis – in this method we focus on finding entire groups of keywords for which a page does not display in search results, and given its subject matter, could display. In this case, we can even take an entire domain and analyze it against the competition and what phrases it should display for in search results. With this method we primarily look for ideas for new content but we can also use it to optimize existing content.
  • .

In addition, I will also make a distinction between the two purposes of content gap analysis:

  • Content gap analysis aimed at finding phrases for which a page does not display at all in search results (we consider that if a phrase does not appear in the TOP50 it meets this condition), but could display.
  • Content gap analysis aimed at finding the phrases for which the site displays further down in search results, while the competition appears, for example, on the first page of SERPs.

I created the breakdown presented above for the purposes of this article and the methodology of the analysis I conducted. Of course, we could also make breakdowns in various other ways. However, I think that the one proposed will be the clearest, given the methods of analysis I used.

We can also mix the methods and objectives of content gap analysis as we wish. .

Example I: Content gap analysis for a single subpage, aiming to find both phrases for which the subpage does not appear in search results at all, and those for which it appears in positions 11 – 50, and competing subpages rank in TOP10 for the same keywords.

Example II: A content gap analysis for the entire site aimed at finding keywords for which our category sub-pages do not appear in search results at all, while competing sub-pages rank in TOP10.

Example III: A content gap analysis for the blog section of the site aimed at finding keywords for which articles already display in positions 11 – 50 of the search results, and competing articles rank in TOP10 for the same keywords.

We could continue to multiply such examples, but I think you already understand what I mean. Later in this article I will describe the content gap analysis using two examples. Which ones? You’ll find out in just a moment.

How to do content gap analysis?


Blog post content gap analysis (exact method)

In this case, I’m assuming an analysis of a single sub-page (a blog advice article), in terms of finding phrases by which the text would be worth expanding. As an example, I chose the sub-page

Step 1: Determine the main keyword assigned to the article

For blog content, you will usually find the most relevant keyword in the title of the article. You can also check with Google Search Console or the URL Analysis module in Senuto what phrases the text already appears for in search results, and choose the most relevant keyword based on that.

URL Analysis Tools in Senuto

In the case of the article mentioned above, I considered the phrase “how to choose running shoes” as the main keyword, which is included in the title of the article. In addition, the sub-page is displayed in the TOP10 search results and the average monthly number of searches for the phrase is 170.

Keyword results in TOP10 for the analyzed domain in Senuto URL Analysis

Having already selected the main keyword phrase, we can move on to the next step.

Step 2: Identify competitors for your article in search results

We will always conduct content gap analysis against competitors. Its purpose, after all, is to find phrases for which competing sites appear in search results and your site does not. Getting the competing domains right is therefore the key to conducting the analysis correctly and drawing the right conclusions from it.

You can try to select competitors manually by simply typing the phrase into Google and pulling up a list of URLs for the query you entered. Or you can use the TOP100 crawler module available in Senuto, which will allow you to quickly pull up the top 100 search results for a given phrase. While collecting the data for analysis, I used the mentioned functionality, while already processing the data in Excel, I limited the number of subpages to 20 (for the purposes of our content gap analysis, the first 20 subpages will be a perfectly sufficient number).

Results in TOP100 crawler tool in Senuto

With a list of sub-pages already ready, displaying in the TOP20 for the query “how to choose running shoes,” I reviewed the manually pulled URLs and rejected those not matching the intent of the query (in this case, by intent I mean the desire to find a guide article on what to look for when choosing running shoes). In the end, I rejected only one subpage: the category page (marked in red in the screenshot below)

Manual analysis of TOP20 urls for a query

Step 3: Find keywords for which your competitors are showing up in search results and your sub-site is not

Having already a list (in this case 18) of competing sub-sites for our main keyword phrase, I can check what other queries the other sub-sites are displaying for in the search results. To do this, I went back to the URL Analysis module, and this time ran the analysis for the 18 competitor subpages selected earlier.

Using the URL Analysis tool to pick out keywords for TOP20 sites for a given key phrase

Step 4: Data processing in Excel and final selection of phrases

The next step will be to export the above data to Excel and process it.

  1. To start, I excluded from the list the phrases for which our article already shows up in search results (I assume that we are only looking for brand new phrases, we are not interested in those for which the article already appears). For this purpose, I used the data from step 1, that is, the list of phrases for which the subpage displays in the TOP50 of search results.

Thus, I received two tables: Table A – containing all competitor phrases and Table B – containing the phrases on which our analyzed subpage displays. Then, using the SEARCH.VERTICAL function, I excluded from Table A the phrases that are in Table B. At this stage, I could also select for further analysis those phrases for which our text already displays in search results but in further positions. This approach to content gap analysis is also fine, especially in situations where the content is already ranking for a wide pool of phrases and we are anxious to further tighten optimization. In such a case, we could filter the data to include in the analysis the phrases for which our sub-page appears outside the TOP10 search results, and the competitors’ sub-pages appear in the TOP10. Today, however, we focus on finding such phrases for which the analyzed text does not appear in the TOP50 search results at all.

Ending this rather long digression and returning to our finished list of phrases, I introduced 2 more assumptions:

  • additional phrases to optimize we look for in the TOP10 search results of competing domains
  • .

  • we discard phrases with an average monthly search volume of 10 and below (if we were looking for niche queries we could include these phrases, but in this case we focus on more popular keywords)
  • .

I performed both of these operations using the data filtering mechanism in the table. Thus prepared, I copied the data into a new sheet and got the following list of phrases.

Filtered list of phrases for content gap

Before we choose the final list of phrases to use in the article, we still need to verify that other sub-pages within our domain do not already display for the selected phrases, so as to eliminate those that could lead to the phenomenon of cannibalization. As a reminder – earlier we operated all the time on one URL:, while we do not have data on what the visibility of other subpages is for the selected phrase pool. We can pull this data in several ways from Google Search Console, among others. We can also do it using Senuto in three ways:

  • First – examine the visibility of the entire domain, using the Visibility Analysis module, export the data to Excel and, for example, using the SEARCH.VERTICAL function, check whether the phrases in our list display other subpages.
  • .

  • Second – use the TOP100 Crawler module and check, for example, using the SEARCH.VERTICAL function, whether the TOP100 search results for particular phrases include our domain.
  • .

  • Third – add phrases to track positions in the Monitoring module and wait for data to be collected on the position of individual keywords in search results.

I used the third way. So I added the selected pool of phrases for monitoring, waited until the data was collected and then exported them to Excel. Using the SEARCH.VERTICAL function, I juxtaposed the data on the positions of individual phrases and the ranked URLs for the analyzed domain with the previously prepared data for competitors’ subsites. As a result, I obtained the following table:

Final list of content gap phrases

Looking at the above data, we can see at a glance that a sizable group of phrases already display in high positions for other subpages and using them within a blog article could result in a cannibalization phenomenon (although given the fact that the blog operates on a separate subdomain, the strategy of optimizing the blog and listing pages for the same phrases may have its justification – but that’s a topic for a separate article). I could also include in the analysis phrases that appear further down the page but then we should know the assumed strategy of assigning phrases to subdomains and optimizing content. Unfortunately, in this case I do not have such information so it will be safer to focus on those keywords for which the analyzed domain does not appear in the search results at all. So we filtered ourselves the table to display only those phrases for which our domain does not appear in the TOP50 search results (Position 0). As a result, we got the following group of phrases:

Filtered list of phrases with results outside TOP50 for the domain

At this point we come to the end of the analysis and have a ready list of phrases that would be worth expanding the article by. On the other hand, such a list is always worthwhile to manually verify and juxtapose with the content creation strategy of the site. In the above example, the use of the phrase “running shoes to 200 PLN” remains to be considered. – in this case, it would be necessary to perform additional analysis and verify whether it would not be better to create a separate article only for this phrase and direct traffic to it.

Global content gap analysis (quick method)

In this case, I assume the need to conduct a quick content gap analysis for the entire domain or some part of it, such as a blog section. This time I will deal with the analysis of the blog section of the site. I have chosen the blog section of the website for analysis.

Step 1: Identify competitors in search results

I chose two domains as direct competitors for the domain: and

Step 2: Using the Competitor Analysis module in Senuto, pick out the phrases for which your competitors appear in search results and your domain does not

Competitor Analysis tool used to find content gap

For this purpose, for the analyzed domain, I set the position range 1 – 50, and for competing domains 1 – 10. As the type of comparison, I chose, Competitor keywords. In this way we will find the phrases for which competitive domains are displayed in positions 1 – 10, and our domain does not appear in the top 50 search results at all. Thus prepared, I exported the data to Excel and took to processing it. At this stage, I could, as in the previous case, select for further analysis those phrases for which our site already displays in search results but in further positions. This approach to content gap analysis can also be very helpful and is worth using. For example, if we would like to find phrases for which our competitors appear in the TOP10 search results, but our domain ranks outside the TOP10, we could use the settings as in the screenshot below:

Checking for which phrases the site shows up outside the TOP10 and the competition in the TOP10 SERP

In this way, we can pull out the keywords for which our domain displays in positions 11 – 50, and both of our competitors’ domains in positions 1 – 10. This approach to content gap analysis is useful in situations where we are looking for phrases that theoretically have the best chance of breaking through to TOP10 in the shortest possible time..

Today, however, we take to the wall a situation in which we are looking for such phrases for which our domain does not appear in the TOP50 search results at all.

Step 3: Data processing in Excel

After we have downloaded the data into Excel, our eyes will see such a view:

Excel table exported from Senuto Competitive Analysis

As I mentioned at the beginning – our analysis will cover the blog section, not all the sub-pages of the site (of course, you can also perform content gap analysis globally for the entire domain, while for the purpose of this article I focus on the analysis of blog articles). For this purpose, I checked (manually) both competing domains for URL structures of blog posts.

  • In the case of, the URL structure for blog entries is of the following form:ł-artykułu/
  • .

  • In the case of, the URL structure for blog entries has the form:ł-artykułu
  • .

Having this knowledge, we can filter the results from the table so that they include only phrases directing to subpages starting with… and….
This way we will find the most relevant blog phrases for which both competing domains display in the TOP10 search results, and our domain does not.

Having the data table prepared in this way, I created a pivot table based on it, in which I assigned ranking phrases for each blog post URL. I also added a column with the total number of searches for all the keywords for which a given subpage displays. Based on this, I can determine the maximum potential of the blog entries in question.

Pivot table created using data from Senuto Competitive Analysis

Using the above data, I can already easily plan themes for blog posts and I have keywords selected for each of them, relevant to competitive analysis. I sorted the data in the table in such a way as to start with those articles for which the total number of searches for all keywords in the TOP10 is the highest (i.e. the potential to bring traffic is the highest).

Picking blog topics a using pivot table and Senuto Competitor Analysis

For the indicated subpages, the sum from the average monthly number of searches is 740. Based on the listed group of phrases, we can create, for example, an article with the topic: Dark kitchen furniture – the most popular arrangements and use the listed phrases in the content of the article.


I consider content gap analysis as an integral part of a content audit for SEO. Competitive analysis is one of the most important aspects of SEO efforts (if not the most important, after all, the entire strategy of SEO efforts is a product of SERP analysis for given groups of queries). Content gap analysis is a source of ideas on how to create better content – which has a chance to fight for high positions in search results and visibility on the widest possible pool of phrases. By understanding the nature of this type of analysis, you will be able to create better quality content and keep up with the competition.

Share this post:  
Dawid Pietkiewicz

SEO & ASO Team Leader w agencji marketingowej Fox Strategy. Szczególnie zafascynowany technicznymi aspektami SEO i ASO oraz nieustannym szukaniu nowych, nieszablonowych rozwiązań.

Try Senuto Suite for 14 days for free

Start the 14-day trial for free

Meet Senuto in 1-hour online training. Free.

Choose a date and sign up