← All posts

Keyword Cannibalization in Search Console (The Honest Test)

Two of your pages ranking for one query usually isn't cannibalization. Here's the honest test, run on your own Search Console data.

QueryScope team · · 12 min read ·
search console gsc cannibalization rankings

Keyword cannibalization is when two or more of your own pages genuinely compete for one query and split the authority that should sit on a single page. The catch is that most of what gets flagged as cannibalization isn't. Two of your pages showing up for one search is normal, and Google says so directly.

That gap between the test everyone runs and the test that's actually right is what this post is about. You'll get the three gates that separate a real conflict from a false alarm, a worked example from a live account where one flag was real and one wasn't, and the honest limit on what Search Console can tell you here.

TL;DR:

  • Two pages ranking for one query is not automatically a problem. Google's John Mueller on three pages in one result: it "doesn't seem problematic to me just because it's 'more than 1'."
  • The condition that makes it real is same intent. Two pages answering the same query the same way dilute each other. Two pages answering it differently are coverage.
  • The honest test has three gates: both pages genuinely rank, the query has real volume, and the pages serve the same intent. Most flags fail at least one.
  • Search Console drops data from the exact view you need for this, the page-and-query join, twice over: once for privacy, once for compute. Your cannibalization list is always partial.

What is keyword cannibalization in Search Console?

Keyword cannibalization is two or more of your own pages competing for the same query with the same intent, splitting impressions and authority so none of them ranks as well as one consolidated page would. In Search Console it shows up as a single query returning several of your URLs, each with real impressions and a mediocre position.

The word does a lot of unearned work. It names a symptom (more than one of your URLs on one query) and implies a diagnosis (they're hurting each other), but those two things come apart constantly. Google's search results routinely show several pages from one site because several pages are genuinely useful. That is not a bug you need to fix.

The useful version of the term is narrower: not "two pages appear," but "two pages that should be one page are splitting a query neither of them wins."

Is two of your pages ranking for one query actually a problem?

Usually not. Google's position is that multiple pages from one site appearing for one query is normal. Asked about it directly, John Mueller said that "if you have 3 different pages appearing in the same search result, that doesn't seem problematic to me just because it's 'more than 1'," and that "pages aren't duplicates just because they happen to appear in the same search results page."

His cheese example makes the point better than a rule does: one query can reasonably return shops, recipes, suggestions, and knives, all from one site, without any of them duplicating each other. Different pages, different jobs, same words.

But Google has not said cannibalization is imaginary, and the honest read carries both halves. In an earlier office-hours answer, Mueller described what happens when the pages do overlap: with multiple pieces of content ranking for the same query with the same intent, "you're essentially kind of diluting the value of your, the content that you're providing across multiple pages." He contrasted that with pages built for very different intents, which he called reasonable. So the line isn't the page count. It's whether the pages are doing the same job.

Practitioner data points the same way. Ahrefs studied their dataset of roughly 9,700 cases of sites ranking with multiple pages, then hand-reviewed a sample: "when I spent a day carefully reviewing a sample of 80 keywords with multiple rankings, I found only one case that needed action." Their conclusion was that "classic SEO theory is wrong" and you don't need to fix every keyword with multiple rankings. Treat that as directional rather than a law: it's one analyst's judgment on 80 keywords, not a controlled test, and your site's ratio will differ. But the direction is the part that matters, and it lines up with what Google says. The default flag over-fires.

What separates a real conflict from a false alarm?

Three gates, and a flag has to clear all three. Miss one and you're about to merge two pages that were fine.

  • Both pages genuinely rank. One page at position 4 and another at position 47 are not competing. The second one isn't taking anything from the first; it's just present. A page earns "competing" status only if it ranks somewhere a human might actually see it and it draws real impressions on that query. A stray three-impression appearance is noise.
  • The query has real volume. Two pages splitting a query that gets nine impressions a quarter is not a problem worth an afternoon. Conflicts matter in proportion to the traffic they're splitting.
  • The pages serve the same intent. This is the gate that does the real work, and it's the one Search Console can't answer for you. A comparison page and a how-to guide ranking for one query are covering two different needs. Two how-to guides ranking for one query are one guide too many.

Only the first two gates are numeric, which is why the tooling can screen for them and you still have to make the call on the third. If you want the intent read as a first-class check rather than a gut feel, the same question drives pages ranking for the wrong intent, where the mismatch is between a page's job and the searches it pulls. The intent mismatch guide covers how to classify a query's intent from the query text itself.

What does this look like on a real account?

Both answers at once, on the same site. When we ran a 30-day read on a live SaaS, Search Console surfaced two query-level conflicts that a page-count test would have scored identically. One was real. One was nothing.

The real one: nine URLs from the site competing for "fastlane mcp" across 637 impressions and zero clicks. Most of them were the same automation post plus its own in-page section anchors. Google was choosing between fragments of one page and landing on none of them well. Nine URLs, real impressions, one intent, zero clicks. That clears all three gates and then some.

The false alarm: the brand query returned the homepage, the about page, the API page, and a mockup page, all at position 1, with only the homepage taking the clicks. Four pages, one query, and by the naive test that's worse than a two-page conflict. But nothing is wrong. That's Google giving one site a block of results for its own brand name, and the homepage is winning the click exactly as it should. Merging anything there would destroy something that works.

Same account, same shape in the data, opposite verdicts. The page count told you nothing; the intent and the click pattern told you everything.

Try it

Read your own Search Console, not just an essay about it.

QueryScope brings your real Search Console data into Claude Code or Cursor, so your agent reads it for you. From $14.99/month.

What do you do once you've confirmed a real conflict?

Pick the survivor, then either merge or differentiate. Those are the only two honest moves, and which one you take falls out of the third gate. If the competing pages serve one intent, they should be one page. If they serve different intents that happen to collide on one query, they should stay separate and get sharper.

Merging means choosing the strongest page as the canonical one, folding the best of the others into it, and redirecting the losers to it so their links and history land on one URL instead of being spread thin. The decaying-page playbook covers the mechanics and the two cautions worth repeating: redirect straight to the final URL rather than through a chain of hops, and only merge pages that genuinely serve one intent.

Differentiating means keeping both and making each unambiguous about its own job: retarget one at the query it actually satisfies, and stop writing both at the same search. This is the move for the case Mueller described as reasonable, where two pages address genuinely different needs that share a keyword.

The special case worth naming, because it bit the account above: sometimes the competing URLs are not separate pages at all. They're anchors, parameters, or fragments of one page. There's nothing to merge. The fix is to stop Google treating fragments as candidates, not to consolidate pages that were never separate.

What can't Search Console tell you about cannibalization?

The biggest one first: it can't tell you whether merging will help. The payoff of consolidating depends on what you're up against on that results page, and Search Console shows you none of it. Not the competing sites, not their backlinks, not whether the query is locked up by pages you won't outrank either way. It shows your pages and nothing else's. A merge is a bet you place and then measure.

Three more limits ride along:

  • The view you need is the one Google degrades most. Cannibalization only appears when you join page to query, and Google states plainly that "when you group by page and/or query, our system may drop some data in order to be able to calculate results in a reasonable time using a reasonable amount of computing resources," and that grouping this way "may result in some data loss." That's on top of privacy filtering, which drops any query not issued by more than a few dozen users over a two-to-three month period. Two independent reasons your conflict list is incomplete, stacked on the same view.
  • Query-level data always under-counts. Anonymized queries are omitted from the tables while still counting in your totals, and they run close to half of all clicks on a typical property. A conflict hiding entirely in anonymized queries is invisible here, so read volume at page level and treat the query table as the alignment signal, not the count.
  • Position is a blended average. Google defines the reported position as "the topmost position occupied by a link to your property or page in search results, averaged across all queries." A page's headline position tells you little about where it sits on the one query in question, so read each conflict at the query level.

And the limit under all of them: Search Console stops at the click. It can show you two pages splitting a query. It cannot tell you which of them converts, and the one earning fewer clicks is sometimes the one worth keeping.

Doing this without checking every query by hand

Run by hand, this is the tedious one. There's no view that says "show me every query where more than one of my pages ranks." You filter to a query, switch to the pages tab, read the URLs, judge the intent, then do it again for the next query, and again, forever. It's the check that gets skipped every week, which is how nine URLs quietly split one query for a month.

That's what QueryScope does from your editor. It reads your real Search Console data, groups your URLs by query, and applies the numeric gates before it says a word: a page only counts as competing if it genuinely ranks with real impressions on that query, and the query itself has to clear a volume floor. What survives is a short list worth your judgment, with the intent call left to you, because that's the gate the data can't close. It's honest about the ceiling too: it can tell you two pages are splitting a query, not whether merging them will win it. For the one-line meaning of impressions or position, the Search Console glossary defines each metric with its caveat.

Sources

  • Search Engine Journal, Google Answers SEO Question About Keyword Cannibalization (September 22, 2025; John Mueller: "If you have 3 different pages appearing in the same search result, that doesn't seem problematic to me just because it's 'more than 1'," and "pages aren't duplicates just because they happen to appear in the same search results page." The cheese example is his).
  • I Love SEO, John Mueller Says Keyword Cannibalization Will Dilute The Ranking Strength of Your Pages (reporting a Mueller office-hours answer, around the 29:36 mark: with multiple pieces of content ranking for the same query with the same intent, "you're essentially kind of diluting the value of your, the content that you're providing across multiple pages." Pages with very different intents he called reasonable. Reported second-hand, no primary video link published).
  • Ahrefs, Keyword Diversification: Cannibalization's Good Twin ("when I spent a day carefully reviewing a sample of 80 keywords with multiple rankings, I found only one case that needed action"; "classic SEO theory is wrong". A hand-reviewed sample of 80 drawn from roughly 9,700 multiple-ranking cases, so directional judgment, not a controlled test).
  • Google Search Console API, Getting your performance data ("When you group by page and/or query, our system may drop some data in order to be able to calculate results in a reasonable time using a reasonable amount of computing resources"; "grouping by page with page/query dimensions may result in some data loss").
  • Google Search Central, A deep dive into Search Console performance data filtering and limits (anonymized queries are those not issued by more than a few dozen users over a two-to-three month period; omitted from tables, counted in totals).
  • Google Search Console Help, What are impressions, position, and clicks? (position is "the topmost position occupied by a link to your property or page in search results, averaged across all queries").
Try it

Read your Search Console where you code.

Ask your coding agent how your site is doing. QueryScope reads your real Search Console data in the terminal: clicks, queries, intent, and indexing. From $14.99/month. One to ten sites.