blog-cannibalization
Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize".
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Blog Cannibalization - Keyword Overlap Detection Detect when multiple blog posts compete for the same search keywords. Two modes: local-only analysis (default) and DataForSEO API mode for SERP-level data. ## Two Modes | Mode | Flag | Cost | Data Source | |------|------|------|-------------| | Local | (default) | Free | File content analysis via Grep/Read | | API | `--api` | ~$0.01/call | DataForSEO Page Intersection + Ranked Keywords | Local mode works without any API keys. API mode requires DataForSEO credentials set as environment variables: `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD`. ## Local Mode Workflow ### Step 1: Scan Blog Files Use Glob to find all content files in the target directory: - Patterns: `**/*.md`, `**/*.mdx`, `**/*.html` - Skip files in `node_modules/`, `.git/`, `drafts/` ### Step 2: Extract Primary Keywords For each file, read and extract keyword signals from: - **Title tag** or H1 heading (highest weight) - **H2 headings** (medium weight) - **First paragraph** (supporting signal) - **Meta description** if present in frontmatter Primary keyword extraction method: 1. Tokenize title, H1, H2s, meta description, and first paragraph into 1-gram, 2-gram, and 3-g
- Two Modes
- Local Mode Workflow
- Step 1: Scan Blog Files
- Step 2: Extract Primary Keywords
- Step 3: Cluster by Similarity
- Step 4: Score and Flag
- Step 5: Output Report
- API Mode Workflow (DataForSEO)
- Endpoints Used
- API Analysis Steps
- Severity Scoring
- Severity Formula (API Mode)
- Severity Heuristic (Local Mode)
- Output Format
What does the blog-cannibalization skill do?
Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize".
How do I install it?
Run `npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From AgriciDaniel/claude-blog, a repository with 1,566 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
