agentsclimarketplace

30x seo cannibalization

Skill norahe0304-art/30x-seo/skills/30x-seo-cannibalization

Detect keyword cannibalization - multiple pages competing for the same keyword. Identifies cannibalizing URLs and provides resolution strategies (merge, redirect, differentiate, or delete).From its SKILL.md

Install
npx -y skills add norahe0304-art/30x-seo --skill 30x-seo-cannibalization

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • runs commandsInstructs the agent to run 3 commands, including `/seo cannibalization --gsc [csv-file]` and 2 more.

SKILL.md

5.0 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

Keyword Cannibalization Detection

Find pages competing for the same keyword

What is Keyword Cannibalization

Problem: Multiple pages on your site targeting the same keyword.

/blog/best-crm-software     → Target: "best crm"
/guide/crm-comparison       → Target: "best crm"
/products/crm               → Target: "best crm"

Consequences:

  • Google doesn't know which to rank → none rank well
  • Internal link equity is diluted
  • Confusing user experience
  • Wasted crawl budget

Detection Methods

Method A: With GSC Data (Recommended)

Import GSC "Queries" report
↓
Group by keyword
↓
Find keywords with multiple URLs
↓
Analyze each URL's:
- Impressions
- Clicks
- Average position
- Position fluctuation
↓
Identify cannibalization

Cannibalization Signals:

  • Same keyword has 2+ URLs with impressions
  • Ranking fluctuates frequently (Google is indecisive)
  • Both pages stuck at positions 5-15

Method B: Without GSC Data

Input target keyword list
↓
For each keyword:
- site:domain.com "keyword" search
- Analyze multiple results returned
↓
Check content overlap between pages
↓
Identify potential cannibalization

Output Format

# Keyword Cannibalization Report

## Found X Cannibalization Groups

### Group #1: "best crm software"

| URL | Position | Impressions | Clicks | Content Angle |
|-----|----------|-------------|--------|---------------|
| /blog/best-crm-2024 | #8 | 5,000 | 120 | Review article |
| /guide/crm-comparison | #12 | 3,200 | 45 | Comparison guide |
| /products/crm | #15 | 1,800 | 30 | Product page |

**Diagnosis**: Three pages have different angles but titles/H1s all target "best crm"

**Recommendation**: Differentiation strategy
- /blog/best-crm-2024 → Keep, primary target for "best crm software"
- /guide/crm-comparison → Retarget to "crm comparison guide"
- /products/crm → Retarget to brand term "YourBrand CRM features"

---

### Group #2: "how to use crm"

| URL | Position | Content Overlap |
|-----|----------|-----------------|
| /blog/crm-tutorial | #11 | 80% |
| /help/getting-started | #14 | 75% |

**Diagnosis**: Two pages with highly overlapping content

**Recommendation**: Merge strategy
- Merge into /blog/crm-tutorial (higher traffic)
- 301 redirect /help/getting-started to merged page
- Or: Rewrite /help/getting-started as product-specific tutorial

---

## Solution Summary

| Keyword | Strategy | Keep URL | Action for Others |
|---------|----------|----------|-------------------|
| best crm software | Differentiate | /blog/best-crm-2024 | Update titles |
| how to use crm | Merge | /blog/crm-tutorial | 301 redirect |
| ... | ... | ... | ... |

Four Resolution Strategies

1. Merge

When: Content overlap >70%

A + B → A (the better one)
B → 301 to A

Steps:

  • Pick the page with better traffic/ranking
  • Merge unique content from the other page
  • Set up 301 redirect
  • Update internal links

2. Redirect

When: One page is clearly weaker

Weak page → 301 to strong page

Steps:

  • 301 redirect directly, no content merge
  • Ensure strong page covers weak page's intent

3. Differentiate

When: Two pages serve different intents

A → Keyword X
B → Keyword Y (related but different)

Steps:

  • Modify title, H1, meta description
  • Adjust content angle
  • Update internal link anchor text

4. Delete

When: Page has no value

Low-quality page → Delete or noindex

Steps:

  • 410 delete (explicitly tell Google)
  • Or noindex (keep but don't rank)

Usage

# With GSC data
/seo cannibalization --gsc [csv-file]

# With keyword list
/seo cannibalization --keywords "keyword1, keyword2, ..."

# Analyze entire site
/seo cannibalization https://example.com

Prevention

Keyword Mapping

Before writing new content, check if existing pages cover that keyword:

| Target Keyword | Existing Page | Status |
|----------------|---------------|--------|
| best crm | /blog/best-crm-2024 | Covered |
| crm pricing | — | Available |
| crm vs erp | /blog/crm-erp-difference | Covered |

Content Planning Principles

  1. One keyword = One page
  2. Check keyword mapping before new content
  3. Run cannibalization detection regularly
  4. Keep internal link anchors consistent with target keywords

Related Skills

SkillRelationship
30x-seo-keywordsBuild mapping during keyword research
30x-seo-internal-linksUpdate links after fixing
30x-seo-redirectsExecute 301 redirects
30x-seo-content-writerRewrite for differentiation

[PROTOCOL]: Update this header on changes, then check CLAUDE.md

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most marketing audience skills give in ~1.2k tokens

Counted across 690 of the 894 authors here whose files we hold, read 2026-08-07

  • Apply Poppins font to headingsin 41 of 690, across 6 files
  • Apply Lora font to body textin 41 of 690, across 6 files
  • Use Arial fallback for headingsin 39 of 690, across 4 files
  • Use Georgia fallback for body textin 39 of 690, across 4 files
  • Maintain text hierarchy and formattingin 39 of 690, across 4 files
  • Use accent colors for non-text shapesin 38 of 690, across 3 files
  • Use RGB values for precise color matchingin 38 of 690, across 3 files
  • Use brand colors for primary text and backgroundsin 36 of 690, across 1 file
  • Read product marketing context file before asking questions, starting, or auditingin 35 of 690, across 23 files
  • Use active voice instead of passive voicein 26 of 690, across 10 files
  • Implement or generate appropriate JSON-LD structured datain 24 of 690, across 17 files
  • Prioritize clarity over clevernessin 22 of 690, across 8 files

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.