All free tools
Free · no signup

Keyword Cannibalization Checker

Paste a Search Console export that pairs queries with pages, and see every query where more than one of your URLs is earning impressions — with the split between them. Runs in your browser; the file is never uploaded.

Your Search Console export

38 rows read

Read queries, pages, clicks, position.

Your export never leaves this page — the file is read and analysed in your browser, and nothing is uploaded.

3queries with a split35queries checked15,000impressions involved

what is a crm

2 URLs7,100 impressions1,100 off the leader
/blog/what-is-a-crm4.56,0003205.3%
/blog/crm-basics15.21,10030.3%

free crm software

2 URLs4,900 impressions800 off the leader
/trial11.24,100140.3%
/pricing19.180020.3%

best crm for small business

2 URLs3,000 impressions900 off the leader
/best-crm-small-business3.22,10021010.0%
/blog/best-crm-startups18.490020.2%

Two URLs on one query is a flag, not a verdict — Google swaps between pages over time and across devices, and an export covering 90 days will show both even if only one ever ranks on a given day. Search Console reports position as an average over impressions, not a rank the page held. A query sitting at 11.4 may never have been at 11 — it could be 4 on mobile and 30 on desktop, or 8 last week and 15 this week.

Share this result

Posts the numbers below and nothing you typed or pasted, and you get to edit it before it goes out.

3 of my 35 queries have more than one of my own pages competing for them, across 15,000 impressions. Took one Search Console export to find.

Start here: your export probably won’t work

This is the part most guides skip, and it will save you twenty minutes. Search Console’s export doesn’t pair queries with pages. The Performance report gives you a Queries tab and a Pages tab, and exporting produces one file of each — queries with their metrics, pages with theirs, and nothing connecting the two.

Cannibalization is a question about the connection. You cannot answer “which pages competed for this query” from a file that never recorded which page a query belonged to. So the first job is getting an export that carries both:

  • Filter by page, export the queries. In the Performance report add a Page filter for one URL and export its queries. Repeat for the pages you care about and paste the files one after another — this tool reads them as a single dataset. Tedious, but it needs no tooling.
  • Query the Search Console API. Requesting the query and page dimensions together returns the pair in one response.
  • Use the BigQuery bulk export, which stores the pair for every row and is the right answer for a large site.

If you paste a queries-only file, the tool says so rather than showing an empty table — an empty table would read as “no cannibalization found”, which would be a lie about a question it never had the data to ask.

What the tool is actually looking for

It groups your export by query and keeps the queries where two or more of your URLs earned impressions. For each one it shows every competing URL, its average position, its impressions and its clicks, and marks the one earning the most clicks as the leader.

The number worth looking at is the impressions on everything exceptthe leader. That’s the audience that saw a page of yours other than the one you’d have chosen. It isn’t a loss estimate and the tool doesn’t pretend it is — there is no cannibalization score here, because the underlying data doesn’t support that kind of precision and inventing one would imply it does.

Why a flag isn’t a diagnosis

Two URLs on one query is normal in more cases than people expect.

  • Google swaps pages over time. An export covering 90 days shows every page that ranked at any point in those 90 days. Two URLs in the list may mean Google tested one, changed its mind, and settled — which is resolution, not a problem.
  • Results differ by device and country. The same query can return your product page on mobile and your guide on desktop, and both are recorded.
  • Some queries genuinely deserve two pages. A broad term can legitimately surface a category page and a comparison article, and Google shows whichever fits the searcher.

The pattern actually worth acting on is a query where two URLs both earn real impressions, both sit in mediocre positions, and neither pulls away. That’s the shape of a split signal. One page at position 3 and another at 47 is not cannibalization; it’s a page that ranks and a page that doesn’t.

Remember too that these positions are averages over impressions, not ranks held — so “both around 12” may be two pages alternating between 5 and 20 rather than two pages sitting together.

Before you consolidate

The instinct is to merge the weaker page into the stronger one and redirect. Often right, occasionally expensive: the page losing this query may be earning far more across a dozen others, and folding it away costs you all of them to win one.

So check what each URL ranks for in total before you delete anything. Organic Keywords lists every keyword a page earns, which turns a one-query decision into an informed one. Afterwards, rank tracking is how you confirm the surviving page actually took the position rather than both of them dropping.

If you came here from a page-two list, the striking distance finder uses the same export and flags which of those queries have more than one of your URLs behind them — often the real reason a page won’t move. The post on which page-two wins are real makes the case that this check belongs beforeany content work, not after it hasn’t worked.

Questions

What is keyword cannibalization?
When more than one page on your site competes for the same query, so neither accumulates the relevance and links it would have had on its own. The symptom is usually two URLs trading places in the results over weeks, with both ranking lower than one good page would.
Why does my Search Console export not work with this tool?
Because the Performance report exports one file of queries and one of pages, and neither says which page ranked for which query. You need an export carrying both dimensions: filter by page and export its queries one page at a time, or request query and page together from the Search Console API, or use the BigQuery bulk export. Any tool claiming to find cannibalization from the plain queries file is guessing.
Is two URLs for one query always a problem?
No. Google swaps between pages across devices and over time, so a 90-day export shows both even when only one ranks on any given day. It's also normal for a category page and a review to both appear for a broad query. Treat it as a flag worth opening, not a verdict.
How do I know which page to keep?
The tool marks the URL earning the most clicks as the leader, which is usually the one to keep — but check what else each page ranks for before deciding. A page with a lower position on this query may be earning far more across a dozen others, and consolidating into the wrong one costs more than the split did.
How do I fix cannibalization once I've found it?
Usually by consolidating: merge the weaker page into the stronger one and redirect it, so the links and relevance land in one place. Sometimes the answer is the opposite — the two pages should serve different intents and the fix is to make them genuinely different rather than to delete one. Rewriting titles and internal links to point at the intended page is the low-risk first move.
Does the tool tell me how much the split is costing?
It shows the impressions earned by every URL other than the leader, which is the honest version of that question. It does not compute a cannibalization score, because the data doesn't support that kind of precision and a made-up index would imply it does.
Is my Search Console data uploaded?
No. The file is parsed and analysed in your browser, and nothing is sent anywhere.

More free tools

Which page should win?

Deciding what to consolidate needs to know what each page earns everywhere else, not just on the query they're fighting over. Organic Keywords shows every keyword a URL ranks for.

7-day free trial Cancel anytime