Keyword Research
Keyword Research
Live

GSC Cannibalization Tracker

Spot URL pairs competing for the same query in Search Console.

GSC export CSV

Header: query,page,impressions,clicks,position (with the page column included)

9
Rows
3
Conflicts
590
Lost clicks (est)

"hiking boots"

3 pages · 1,110 clicks
PagePosImpClicksRole
/blog/best-hiking-boots4.08,400820
primary
/blog/hiking-boots-202612.03,200210
redirect/merge
/blog/buyers-guide18.51,10080
redirect/merge

"trail running shoes"

2 pages · 720 clicks
PagePosImpClicksRole
/blog/trail-shoes5.24,200540
primary
/products/x-ultra-411.01,800180
redirect/merge

"hiking boots beginners"

2 pages · 540 clicks
PagePosImpClicksRole
/blog/best-hiking-boots3.53,200420
primary
/blog/beginners-guide9.01,400120
redirect/merge

Start here · How is this different from generic cannibalization?

Search Console already tells you which queries earned impressions per landing page. When two URLs earn the same query, you may be splitting signals.

Paste a CSV whose header includes query,page,impressions,clicks,position. The tool groups rows by query and surfaces groups with more than one page.

It picks a primary row using best average position then clicks, lists the other pages as consolidate candidates, and estimates split traffic for discussion.

When to use this tool

  • Weekly GSC hygiene

    Export the performance table with query and page dimensions, paste here, and triage the worst conflicts first.

  • Before deleting a URL

    Confirm whether a page still earns meaningful clicks on queries you thought belonged elsewhere.

  • International duplicates

    If country folders appear as separate pages for one query, the table shows impressions per path so you can plan hreflang or consolidation.

  • Pitch decks

    Use the lost-clicks estimate stat to explain why cannibalism matters without building a full Looker Studio dashboard.

Examples

Walk through these with the form above — they are practice scenarios, not live data.

Performance export

Try this

Start from the bundled sample, then replace with your CSV keeping the exact header row names.

What to look for

Conflict cards show page paths, position, impressions, and clicks plus primary versus consolidate roles.

Focus on one query manually

Try this

Filter your spreadsheet externally to one query, paste those rows, and confirm the primary pick matches intuition.

What to look for

Smaller pastes run faster and help verify sorting logic before you paste thousands of rows.

Short tutorial

Follow in order the first time you use the tool; later you can skip to the step you need.

  1. Step 1 — Export from Search Console

    Include query and page dimensions plus impressions, clicks, and position columns.

  2. Step 2 — Normalize the header

    Column names must match what the tool expects; rename in Sheets if exports differ.

  3. Step 3 — Paste into the textarea

    Processing stays local to your browser; no Google login inside this page.

  4. Step 4 — Read conflict tables

    Primary rows are strongest by position. Consolidate rows are alternate landings to merge or retarget.

  5. Step 5 — Pair with site changes

    Use Internal link recommender or Content consolidator patterns next when you execute fixes.

More detail

New here? Skim Start here first, then run one Examples scenario in the form above.

GSC Cannibalization Tracker does one job: spot URL pairs competing for the same query in Search Console. It lives under Keyword Research on SEOToolkits, where the beginner idea is simple: Keyword research is how SEOs understand the words people use and the intent behind those words.

FAQ

Can I omit impressions?
The parser reads whatever columns exist. Impressions improve weighting in the summary stats.
Why is lost clicks an estimate?
It sums clicks on non-primary pages in conflict groups as a directional total, not a Google-provided metric.
Does this auto-fix pages?
No. It only highlights conflicts. You still choose redirects, merges, or copy differentiation.
What delimiter does the CSV use?
Comma-separated rows as shown in the sample. Convert other separators before pasting.

Same workflow cluster on SEOToolkits — open another module without leaving context.