- Home
- Skills
- Marketing & SEO
- Fix Keyword Cannibalization Using Google Search Console
Works with the AI Agents you already use
Fix Keyword Cannibalization Using Google Search Console
Keyword cannibalization checker for Search Console: find queries where 2+ of your pages split clicks, scored HIGH/MED/LOW, with one fix per page pair: merge, canonical or differentiate.
$6
Fix Keyword Cannibalization Using Google Search Console
Example session with this skill installed
Check stridelab for keyword cannibalization with examples/gsc-query-page.csv (28 query + page rows: clicks, impressions, CTR, position). Brand is stridelab. (The bundled demo export is fictional. Use your own GSC export.)
- Read your context and instructions
- Compiled the fix keyword cannibalization
Keyword cannibalization report: StrideLab (fictional demo export, 28 rows)
Script: cannibalization_finder.py --brand stridelab v1.0.1, 21 Oct 2026 → 16 queries · 7 cannibalised (HIGH 1, MEDIUM 3, LOW 3) · 8 page pairs
| Severity | Query | URLs | Primary click share | Spread | Action |
|---|---|---|---|---|---|
| HIGH 13.2 | best running shoes for flat feet | 3 | 64% of 66 clicks | 7.4 pos | SUPPORT: link the others to /blog/flat-feet-running-shoes |
| MEDIUM 10.2 | trail vs road running shoes | 2 | 71% of 77 | 3.6 | SUPPORT |
| MEDIUM 8.9 | how to clean running shoes | 2 | 76% of 159 | 1.6 | CANONICAL (trailing-slash variant) |
| MEDIUM 7.6 | running shoes flat feet | 2 | 77% of 39 | 4.2 | SUPPORT |
| LOW 5.6 | how long do running shoes last | 3 | 84% of 83 | 8.9 | SUPPORT |
Page pairs:
- /blog/replace-running-shoes <> /blog/shoe-lifespan: 2 shared queries, 86% overlap →
MERGE (301 the weaker page after checking backlinks + conversions)
- /blog/flat-feet-running-shoes <> /shoes/stability: 65% →
DIFFERENTIATE (blog vs category, keep both, link the article to the money page)
- /blog/best-running-shoes-2026 <> /blog/flat-feet-running-shoes: 56% →
DIFFERENTIATE (the smaller dedicated page wins: trim the overlapping section on the list post)
- /blog/clean-running-shoes <> /blog/clean-running-shoes/ → CANONICAL
- /blog/best-running-shoes-2026 <> /shoes/stability: 14% → MONITOR
Re-check: export the same date range 4–8 weeks after the changes and re-run. Every number above comes from the export. No traffic gain is promised.
Connects securely to your tools. The creator never sees your data.
About this skill
Unlike keyword-cannibalization prompts and SEO-tool reports that only show "2 URLs rank for this keyword", this skill runs a bundled script on your own Search Console query + page export. It scores each competing query by how the clicks are split, then gives every page pair a single action: MERGE (301), CANONICAL, DIFFERENTIATE or MONITOR. It never merges a blog post into a category page, and every number comes from your export.
Sample run (bundled demo export, fictional StrideLab store, real script output v1.0.1, 21 Oct 2026):
- Rows read 28 · queries 16 · cannibalised queries 7 (HIGH 1, MEDIUM 3, LOW 3) · page pairs 8
- HIGH 13.2 "best running shoes for flat feet": 3 URLs, the primary holds 64% of 66 clicks, spread 7.4 positions
- /blog/replace-running-shoes <> /blog/shoe-lifespan: 86% overlap → MERGE (301 the weaker page after checking backlinks + conversions)
- /blog/flat-feet-running-shoes <> /shoes/stability: blog vs category → DIFFERENTIATE (keep both)
- /blog/clean-running-shoes vs /blog/clean-running-shoes/: URL variants → CANONICAL
- /blog/best-running-shoes-2026 <> /shoes/stability: 14% overlap → MONITOR
Real-world spot check (Brave Search top 20, US English, 21 Oct 2026, not Google; public pages; not affiliated): for "content cannibalization seo", nightwatch.io ranks two of its own posts, /blog/content-cannibalization/ at #5 and /blog/keyword-cannibalization/ at #16. Two URLs from one site in the top 20 is only a hypothesis. This skill confirms or rejects it with the site's own GSC clicks and impressions before anyone merges anything.
Works in Claude Code, Cursor and Codex · SKILL.md + 1 Python script (stdlib only, no network, no API keys, no Google login) · same export → same answer · v1.0.1, updated 21 Oct 2026 · questions answered via Agensi messages within 24h · Run it on 100k+ rows in the cloud with our Apify actor (first 5 issues free per run): https://apify.com/cygnix_labs/keyword-cannibalization-finder · Free no-API-key SEO MCP server with a GSC cannibalization tool: https://github.com/cygnixlabs-cmd/cygnix-seo-mcp
What it does
- Reads a Search Console export with query AND page columns (API, Search Analytics for Sheets, Looker Studio or BigQuery bulk export). templates/gsc-query-page-export-steps.md shows how to get one.
- Scores each cannibalised query HIGH / MEDIUM / LOW: (1 − primary URL's click share) × log10(impressions). It names the winning URL and the position spread.
- Catches technical duplicates (trailing slash, case, index.html, utm/gclid parameters) that only need a canonical.
- Pairs competing pages and picks one action for each pair: MERGE (same section, 50%+ overlap, the stronger page wins), DIFFERENTIATE (blog vs category, or 20–49% overlap), CANONICAL or MONITOR (under 20%).
- Plans the fix and the proof: a fix playbook (301, re-angle, canonical, internal-link anchors) and a re-check 4–8 weeks later on the same date range.
Who it's for
SEO leads, agencies and bloggers with years of overlapping posts who want evidence before they merge or prune. It is not a rank tracker, and it never deletes pages: every merge goes through a 301.
Pairs well with (Cygnix Labs, on Agensi)
- Find Decaying Pages: GSC Triage + Content Refresh Plan (agensi.io/skills/find-decaying-pages-gsc-triage-content-refresh-plan): for pages losing traffic after the fix
- Search Console Quick Wins: Striking-Distance + CTR Fixes (agensi.io/skills/search-console-quick-wins-striking-distance-ctr-fixes): from the same GSC export
- SERP Intent Mapper — Keyword → Page Type Match (agensi.io/skills/serp-intent-mapper-keyword-page-type-match): decides which page type should own the query
- Plan 301 Redirects for a Site Migration Without Losing SEO (agensi.io/skills/plan-301-redirects-for-a-site-migration-without-losing-seo): for the merges
- Find Orphan Pages and Fix Your Internal Linking (agensi.io/skills/find-orphan-pages-and-fix-your-internal-linking): re-points links to the kept page
- Keyword Clusters + Intent Map: No Paid SEO Tool Needed (agensi.io/skills/keyword-clusters-intent-map-no-paid-seo-tool-needed): plans new pages so they don't overlap
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before any payment.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill goes through the trust checks below.
Security scanned
Checked by our 8-point scan before listing
Fresh listing
Recently published to Agensi
Money-back guarantee
Doesn't do what its page promises? You get your money back.
Trust & safety
Security scan
Security scan passed with 2 warnings 3 days ago