Keyword cannibalization: when your own two pages fight each other
The mistake I keep making
I run a handful of content sites. Every one of them has at least one pair of pages that target the same keyword. Sometimes I forgot I’d already written about it. Sometimes I thought a slightly different angle would “capture more intent.” It doesn’t. It splits the signal Google needs to decide which page deserves the click, and both pages end up ranking worse than one page would have.
Keyword cannibalization isn’t a penalty. Nobody at Google flags your site for it. It’s a mechanical outcome of how ranking works. When two URLs on the same domain are relevant to the same query, the algorithm has to pick one to show. Sometimes it shows both, lower down. That’s its own problem. Splitting your backlinks, internal links, and topical relevance across two pages instead of consolidating them into one usually means neither page has as strong a case as a single merged page would.
How it actually happens on a site you control
This isn’t the classic story about two different writers on a big team stepping on each other. I write these sites myself. It happens through a few very specific habits.
I publish a piece, forget the exact title six months later, and write something close enough in scope that it overlaps. Search Console shows both URLs against the same query. Impressions split roughly in half. Average position for the query ends up worse than either page would get alone.
I write a broad guide, then later write a narrower page on a sub-topic that ends up matching the same search intent instead of a genuinely different one. The narrower page was supposed to catch a long-tail variant. But if the searcher’s intent is identical to what the guide already answers, Google treats them as competitors, not complements.
I update an old page’s title and H1 to chase a keyword, without checking whether a newer page on the site already targets that exact phrase. This one’s the sneakiest. Nothing about either page looks wrong in isolation. You only see it when you pull the query report.
The diagnostic that actually works
Guessing which pages cannibalize each other from memory doesn’t work once a site has a few hundred posts. The way to find it is in Google Search Console’s Performance report. Filter by query. Look at the individual URL breakdown for that query. Watch for two or more URLs from your own domain both getting impressions for it. If the ranking position bounces around between the pages week to week, that’s the tell. Google is testing which one to trust and hasn’t settled.
A site:yourdomain.com "exact phrase" search in the browser will also show you which pages Google has indexed as relevant to that phrase. It’s a rougher tool than the Performance report. It reflects indexing, not ranking behavior.
I don’t trust rank tracker “cannibalization reports” that flag any two URLs sharing a keyword. Two pages can legitimately share a keyword if the intent is different. A comparison post and a single-product review might both mention the same product name, for instance. The report that matters is the one showing both URLs actually competing for clicks on the same query with the same apparent intent.
Fixing it: the four real options
Consolidate into one page. This is the fix I use most often because it’s the most honest one. If both pages answer the same question for the same searcher, merge the better content from both into whichever URL has more backlinks or more history. Then 301 redirect the other one to it. You lose one URL. But the combined page usually ranks higher than either did separately, because it now carries the full weight of both pages’ links and relevance.
Differentiate the intent, genuinely. Sometimes two pages deserve to exist because they serve different searchers who happen to use similar words. “Best CRM for small business” and “best CRM for freelancers” can coexist if the content, not just the title, actually serves those two audiences differently. If you rewrite the narrower page and it still reads like a slightly shorter version of the broad guide, you haven’t fixed anything. You’ve just made the merge harder later.
Canonicalize, but only when the pages are near duplicates. A canonical tag tells Google which version to index when two pages are close to identical, like a print view and a normal view of the same article. It’s the wrong tool for two genuinely different articles that happen to overlap on one keyword. A canonical tells Google to stop indexing the other page for anything, not just that one query. I’ve used canonicals to fix cannibalization exactly twice. Both times, I’d accidentally published near identical drafts under two URLs.
Adjust internal linking and re-target the on-page signals. If you decide to keep both pages, make sure your internal links, anchor text, and title tags point unambiguously to which page owns which keyword. If your own site’s navigation and internal links treat both pages as equally relevant to the same phrase, you’re telling Google the same confused story your content is telling it. Pick a primary page for the keyword. Link to it from elsewhere on the site using that keyword’s phrasing. Link to the secondary page using different anchor text tied to its narrower intent.
What I don’t do anymore
I used to write a new page every time I found a keyword variant in a research tool, on the theory that more pages meant more chances to rank. That’s dead as a tactic on a site with real topical depth. Once you’ve covered a subject reasonably well, new pages on close variants of the same query don’t add reach. They add competition against your own content. The keyword research tool doesn’t know what’s already on your site. You have to check that yourself before you write, not after.
I also stopped trying to fix cannibalization with content alone, tweaking words on both pages to feel “different enough.” Google isn’t parsing your intent. It’s evaluating relevance signals: title, headings, internal and external links, and how searchers behave after they click. If those signals still overlap after your rewrite, the pages will keep competing no matter how carefully worded the difference feels to you.
Before you merge anything, check the numbers
Before I 301 redirect one page into another, I check which URL has more backlinks. A free backlink checker or Search Console’s own links report is enough for this. I also check which one has the longer indexing history. The redirect should point the lower-authority URL at the higher-authority one, not the other way around. Get that backwards and you throw away the exact signal you’re trying to consolidate. I’ve made that mistake once. I redirected the well-linked page into a newer thin one because the newer one had a better title. The merged page ranked worse than the original well-linked page had on its own, for a few weeks, before it recovered.
Keyword cannibalization on your own site isn’t a sign you’re bad at SEO. It’s a sign you’ve written enough content that overlap became inevitable. The fix is boring. Find the actual competing pages in Search Console. Decide honestly whether they serve different searchers. Merge or redirect the ones that don’t.
If you want more of this kind of unglamorous, self-inflicted-mistake SEO, The SEO Desk covers the operator side of keyword research, link building, and technical SEO. It’s the stuff you find out by running your own sites, and eating the cost when you get it wrong.