What is Keyword Cannibalization?
Keyword cannibalization occurs when two or more pages on your website rank for the same keyword. As a result, search engines like Google struggle to determine which page to prioritize, which may lead to lower rankings across all the pages that share these keywords.
This is a less than ideal situation. So how the heck do we get multiple pages vying for the same queries?
Well, here’s a bit of tough love.
Keyword cannibalization is the direct consequence of poor content planning.
Specifically, page cannibalization happens because:
- You failed to plan properly. Odds are, your posts don’t clearly address the user intent, which results in vague, confusing, and overlapping content.
- Sometimes your keyword tools are wrong, and you weren’t aware that related keywords had any search volume.
- You don’t understand keyword planning, and every piece you’re creating targets the same intent with a different angle. You want to avoid this situation, so be sure to read up on keyword planning and intent targeting.
Okay, but is keyword cannibalization really that bad, you ask? Generally, yes. Here’s why:
- You’re diluting your authority between two or more pages rather than one.
- You’re sending mixed signals to search engines. Google wants to ensure the top 3 results are the best 3 pages. If you have multiple posts addressing the same intent with different angles, chances are, you’re not addressing the intent properly in any of the pages.
Looking beyond keyword targeting, conversion rates, whether lead generation or sales aren’t really caused by cannibalization, but can arguably be affected by it.
It comes down to what you want to rank on what keyword. Say you decide to rank a how-to guide instead of a conversion-optimized landing page on a high intent keyword. That doesn’t really have anything to do with cannibalization. It’s just bad marketing. But you might end up with two pages competing for the same keyword, one of which is conversion-oriented. Hence the confusion.
Crawl budget isn’t an issue for blogs. It’s more of a problem for massive sites with (hundreds of) thousands of pages generated dynamically and with very similar content. If you’re running human-created content (i.e. a blog), crawl budget shouldn’t really be of any concern. If you’re running a massive site with tons of dynamically generated pages, crawl budget is a very real concern. But odds are any cannibalization issues you might have are less due to poor planning (which really is what we address here) and more due to content quality.
How to Detect Keyword Cannibalization? Free Keyword Cannibalization Checker
Conceptually, we’re looking for keywords for which you have two or more URLs significantly ranking.
We say significantly since Google may decide to show a page for specific reasons, not necessarily indicating cannibalization.
Google customizes search results extensively based on past browsing and search history (when available). This can cause Google to consider one of your posts to be more accurate in very specific cases. Nothing to worry about.
The problem with existing solutions
It’s standard advice to google the keyword and see if you have several results in the SERPs.
You’ll often read you should run a site query
site:themetablog.io keyword cannibalization with your keyword.
The problem is it doesn’t mean your pages will rank for that keyword without the site: filter. It really only tells you Google considers this page somewhat relevant for that keyword.
Hardly helpful… You probably knew that when building your cluster.
Another suggestion is to list all your keywords and look for duplicates manually. Then, check each keyword for the ranking URL.
That much works. But it’s slow, inefficient, and only makes sense if you already know you have cannibalization issues and have an idea where to look.
Also, you almost always have duplicates with a few impressions – because Google customizes search results for each user – making filtering and analysis even harder.
Fundamentally, detecting cannibalization is as simple as finding what pages are ranking for each one of your keywords and then revising the volume of impressions for each of these page/keyword combinations. For example:
- If you have two pages on the same keyword, it could be problematic.
- If both pages have a similar volume of impressions for that keyword, it’s a lot more likely there’s a problem somewhere.
Summing up, our input is:
- Keyword and page couples
- Impressions for each page/keyword couple
- A cut-off number: let’s say 10%. If the volume of impressions for the second page is more than 10% of that of the first page, there might be something wrong.
Getting keyword and page couples with impressions
While this next step may sound technical, be assured that you’ll be able to access this data in 3 clicks taking no longer than 2 minutes.
But before we go there, two things to note:
- Time range: You need to select a time range that’s long enough to gather significantly sufficient data. If you’re working on your site a lot, you’ll want fresh data. So looking beyond the past 30 to 60 days may not be helpful. You need to find the right balance here.
- Cut-off point: Not all keywords are created equal. Some get hundreds of impressions, while others get 1 or 2. You’ll need to decide where you stop fixing issues, depending on your current traffic and overall volume of impressions.
Follow this tutorial to get keyword and ranking page data. It’s brilliant. It works perfectly and only takes a few minutes to complete.
Checking for cannibalization: the actual logic
Export your Google Data Studio report as a CSV file.
Create a local copy of this spreadsheet
Import your CSV data into the sheet called “Data.” Position your selector in cell A2, and then File > Import > Upload > Drag your CSV file > Replace data at selected cell.
While the Cleanup sheet is fully automated, you’ll need to drag down the formulas in the “Cannibalization checker” sheet. There are many aggregate calculations in this tab, and having them run on the whole column makes the spreadsheet really slow. Every formula in a blue column needs to be dragged down to the last row.
The spreadsheet template has 50 000 rows in the “Cleanup” sheet. If your dataset is bigger, the rows won’t be automatically added, so you’ll need to remove keywords (make the time range shorter) or add the rows yourself by going to the Cleanup sheet and adding the appropriate number of rows in the sheet.
Next, head over to the “Cannibalization checker” sheet. This is where the magic happens.
You should have a list of unique keywords on the first column – but filtered.
There’s a default “cut-off” point set to 100 on the “Settings” sheet. This is the number of impressions/keywords (for all pages) under which the sheet will not look for cannibalization issues. Depending on your volumes, it might make sense to increase or decrease this cut-off point.
The formulas in columns B – I are quite costly so we didn’t drag them all the way down on the template to avoid freezing the spreadsheet. You’ll have to do that too for the spreadsheet to start working on all those formulas.
Google sheets constantly re-evaluates functions, so it’s probably a good idea to copy-paste (values only) after you’ve got results if you’re dealing with a big dataset. Be sure to keep the first row dynamic, it’ll load fast enough, and you’ll keep the formulas if you need to refresh.
Head over to the “Output” sheet, and you’ll have a list of keywords with probable cannibalization issues. For each keyword, the URL with the most impressions, and one or two competing URLs, with their respective number of impressions.
Keep in mind that there might be cases where Google is simply stacking results, which you would not want to do anything about! Site links are the most common case, but you could also get lucky. Google explicitly declared it would only rank two URLs per domain back in June 2019. So two is definitely still on the table.
If you want to edit this dataset, e.g., order, filter, etc., we strongly recommend you make a copy as value on a new sheet.
By default, issues are shown when a page has over 10% of the impressions of the main page on a given keyword. You can change the “Intro” tab limit to be more or less aggressive on what you consider cannibalization.
When to Check for Keyword Cannibalization?
The issue with keyword cannibalization is that it’s one of those obscure SEO topics hardly talked about.
Cannibalization isn’t supposed to happen if you plan your content production properly—targeting a different intent for each new page or post you create.
It only makes sense to look for cannibalization in a few instances, as outlined below.
1. You used to have a good position in the SERPs, and now you don’t anymore
When your rankings tank, it may not be the latest algorithm change. It could be cannibalization issues.
If your position on a high-value keyword suddenly drops, especially if you’ve been working on that content cluster recently—it could be caused by a poor analysis of the keyword and intent.
Another reason is if you’ve been trying to go up in the SERP for a while, and you feel you should be ranking higher than you are with that post.
2. You have more than 200 posts, and you haven’t checked for cannibalization in over 6 months
Let’s face it. You can plan as much as you want, but you’re still going to miss things. We all do.
There’s no point in checking for cannibalization every day. But reviewing every once in a while can be a valuable exercise.
Whether it’s part of a broader SEO audit or simply part of your yearly routine, it’s good to spot the cannibalizations before it becomes a more significant issue.
3. You have over 2,000 pages, and you think you have crawling issues, or part of your pages aren’t getting indexed
Indexing issues don’t exactly qualify as cannibalization, as the cause is often related to the amount and specificity of the content on pages.
This doesn’t affect blogs where content is planned and written. Think instead of data-generated content like big directories, eCommerce, and UGC (User Generated Content) sites.
Identifying these issues is paramount to long-tail success, and looking for cannibalization should more often than not lead you to the correct actions.
How to fix keyword cannibalization: an actionable checklist
There are 3 things you can do to fix cannibalization issues. Let’s look at each approach in more detail.
1. To redirect, or not to redirect
There are two options here. Keep all the pages competing with each other. Or pick one page to keep and direct the others to this page.
If both pages target the exact same user intent and keyword, you’ll be better off keeping one in most cases. To determine whether the intent is really the same, you can evaluate the following criteria:
- A keyword that both posts rank for (and the ones that only one post ranks on)
- The angle of your posts
- What ranks on the first SERP for those keywords
You’ll be left with 2 paths here:
- You’re confident that you can make both posts work on different keywords and/or intents. In which case, you can keep both and move on to step 2 and 3.
- You don’t think you can keep both posts, and you want to kill one in favor of the other. Be sure to keep as much of the content you’re discarding as you can by merging it with the page you’re keeping. Then 301 the one you’re deleting to the “master” post.
Note 1: It’s typically best practice to keep the existing URL. The oldest URL will have the most links and history.
Note 2: It might make sense to see if you can retarget the cannibalized pages first. If it doesn’t seem to work after a few weeks, move on to redirections and more aggressive decisions.
2. Repositioning content
Re-purpose your content to match the user intent more accurately.
It’s not (only) about removing keywords and re-optimizing for different keywords. Re-arranging and chaining the post structure can bring a lot of value too.
When optimizing on-page content, address in this order:
- H1 and meta title
- H2s and meta description
- Rest of the post
There are two types of links to review for cannibalization, internal and external.
Strategy for internal links
Change all of your internal links to have very optimized anchor text, so the message is clear for Google. The easiest way to do this is to go to GSC and take the top 10 keywords the page ranks for (ordered by impressions) that don’t have any kind of cannibalization issue.
Strategy for external links
It’s harder to convince bloggers to change an anchor text because you messed up your content planning. But it can be worth a shot if you have a good relationship from past link-building partnerships. This usually works best if you have another collaboration offer to pitch when reaching out.
Don’t sleep on keyword cannibalization
By auditing your blog for keyword cannibalization, you’ll not only identify issues to fix and potentially improve your rankings, but you’ll also become a better content planner and producer.
Doing this work forces you to deeply understand the user’s intent for queries related to your site, which is key for creating and optimizing content moving forward.
So go ahead and download our free keyword cannibalization checker and start tightening up your content.