Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+20 more

    Fix Keyword Cannibalization Using Google Search Console

    1

    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

    Secure checkout via Stripe

    Money-back guarantee

    Converts to your local currency at checkout

    Security scanned
    Fix Keyword Cannibalization Using Google Search Console

    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

    SeverityQueryURLsPrimary click shareSpreadAction
    HIGH 13.2best running shoes for flat feet364% of 66 clicks7.4 posSUPPORT: link the others to /blog/flat-feet-running-shoes
    MEDIUM 10.2trail vs road running shoes271% of 773.6SUPPORT
    MEDIUM 8.9how to clean running shoes276% of 1591.6CANONICAL (trailing-slash variant)
    MEDIUM 7.6running shoes flat feet277% of 394.2SUPPORT
    LOW 5.6how long do running shoes last384% of 838.9SUPPORT

    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):

    1. Rows read 28 · queries 16 · cannibalised queries 7 (HIGH 1, MEDIUM 3, LOW 3) · page pairs 8
    2. HIGH 13.2 "best running shoes for flat feet": 3 URLs, the primary holds 64% of 66 clicks, spread 7.4 positions
    3. /blog/replace-running-shoes <> /blog/shoe-lifespan: 86% overlap → MERGE (301 the weaker page after checking backlinks + conversions)
    4. /blog/flat-feet-running-shoes <> /shoes/stability: blog vs category → DIFFERENTIATE (keep both)
    5. /blog/clean-running-shoes vs /blog/clean-running-shoes/: URL variants → CANONICAL
    6. /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. 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. 2

      Sign in to Agensi

      Your agent shows a sign-in link. Sign in and click Allow.

    3. 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

    Listed13 days ago
    Updated3 days ago

    What's inside

    Frequently Asked Questions