About the Cannibalization Checker
This keyword cannibalization checker finds queries where more than one page on your site is competing for the same result, using the real query and page data from your own Google Search Console rather than a guess. Keyword cannibalization happens when two or more URLs match the same search intent, so instead of one strong page earning the click, several weaker pages split impressions, swap places from day to day and each rank lower than a single consolidated page would. Search engines are left unsure which URL to show, internal links and backlinks are divided between them, and the click-through you would have earned is spread thin. To use the checker, upload a Query + Page export from Search Console (see the guide below for the quickest ways to get one), and it groups your rows by query, keeps the URLs that each earn a meaningful share of that query’s impressions at positions close to each other, and ranks the results by an estimate of the clicks a single consolidated page could win back. Brand queries are separated out, because two of your own pages appearing for your own name is normal, and a URL that shows up for only a token share of a query’s impressions is ignored — false positives are the fastest way to lose trust in an audit, so the thresholds are visible and adjustable. Each flagged query expands to show every competing URL with its clicks, impressions and average position, plus a plain-language suggestion: consolidate when the impressions are split evenly and the positions are close, or differentiate when one page clearly leads and the others should target something different. Not every multi-URL query is a problem — a comparison page and a review page can legitimately share vocabulary — so treat the output as a prioritised review list and check the live results before merging anything. The clicks-lost figure uses a generic click-through-rate-by-position curve and is an estimate for ranking issues, not a forecast. Your data is processed entirely in your browser and is never uploaded. There is also a manual keyword-map mode for when you have no Search Console data: paste URLs with their target keywords and it flags near-duplicate targets.
How to use the Cannibalization Checker
- Export a Query + Page table from Search Console (Looker Studio or the Search Analytics for Sheets add-on both provide one) and save it as CSV.
- Drop the CSV onto the box, or click “Try sample data” to see an example first.
- Check the thresholds: minimum impressions per URL, minimum share of the query, and the brand terms to exclude.
- Open each flagged query to see the competing URLs and the suggested action, then decide whether to consolidate, redirect, differentiate the intent or rewrite a title.
- Export the list as CSV to work through it or share it with your team.
Frequently asked questions
What is a keyword cannibalization checker?
A keyword cannibalization checker finds queries for which several URLs on the same site are ranking, so that they split clicks and rankings between them. This one uses your own Search Console query and page data, so it reports what Google is actually doing rather than what your keyword plan says should happen.
Is there a free keyword cannibalization tool that uses Search Console data?
Yes — this one is free, needs no account and runs in your browser. Upload a Query + Page export and it analyses it locally; nothing is sent to a server.
Is every query with two URLs a cannibalization problem?
No. Brand queries, queries with mixed intent and queries where a second URL shows only occasionally are all normal. That is why the tool ignores URLs with a token share of impressions, separates brand queries and lets you tune the thresholds.
How do I fix keyword cannibalization?
If two pages serve the same intent, merge the useful content into the stronger one, 301-redirect the other and update internal links. If they serve different intents, differentiate their titles, headings and internal anchor text so each targets its own query.
Why does it need a Query + Page export?
Cannibalization means one query being answered by several URLs, so the data must say which URL ranked for which query. The default Search Console exports list queries and pages separately, so use Looker Studio or the Search Analytics for Sheets add-on to get both in one table.
How is “estimated clicks lost” calculated?
It compares the clicks the competing URLs actually earned with what a single URL might earn at the best position they reached, using a generic CTR-by-position curve. It is a way to rank issues by size, not a prediction.