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".
This skill detects keyword cannibalization across a set of blog posts, that is, when multiple pages compete for the same search intent and dilute each other's rankings. It solves an SEO content-strategy problem by extracting the primary and secondary keywords from each post's title, headings, first paragraph, and meta description, clustering semantically similar targets, and flagging pages that overlap. The output is a severity-scored report with concrete recommendations such as merge, differentiate, or canonicalize.
It operates in two modes. The default local mode is free and read-only: it uses Glob, Grep, and Read to scan Markdown, MDX, and HTML files, tokenizes and normalizes keyword phrases, and clusters posts using exact, stem, semantic-intent, and subset matching rules, then applies a local severity heuristic. An optional API mode (enabled with a flag) enriches the analysis with DataForSEO's Page Intersection and Ranked Keywords endpoints for SERP-level data at roughly one cent per call, computing a severity score from overlap count, search volume, and ranking-position gap. API mode requires DataForSEO credentials supplied through environment variables and a dedicated local CLI wrapper; the skill is explicit that credentials must never be exposed in prompts or reports and that it should fall back to local mode if no wrapper is present.
The skill targets content marketers, SEO specialists, and technical bloggers managing a corpus of posts. Typical use cases include auditing a blog for competing pages, deciding which thin posts to merge, prioritizing canonical tags, and quantifying the urgency of overlaps before a content consolidation project.
No. Local mode is the default, works without any keys, and analyzes file content for free. The DataForSEO API mode is optional and only needed for SERP-level volume and ranking data.
Roughly $0.01 per DataForSEO call, using the Page Intersection and Ranked Keywords endpoints.
DataForSEO login and password are read from environment variables by a local CLI wrapper. The skill instructs that auth headers, credentials, and encoded values must never be printed in prompts or reports, and to skip to local mode if no wrapper exists.
Markdown, MDX, and HTML files, while skipping node_modules, .git, and drafts directories.
A summary table of overlapping post pairs with shared keywords, a severity level (Critical/High/Medium/Low), and a recommended action such as MERGE, DIFFERENTIATE, CANONICAL, or NO ACTION, plus per-cluster detail.
Quick Setup:
.claude/skills/Repository
agricidaniel/claude-blog