From smart-blog-skills
Detects keyword cannibalization across blog posts by extracting primary keywords from titles/headings, clustering semantically similar targets, and flagging competing posts with severity-scored merge/differentiate recommendations.
How this skill is triggered — by the user, by Claude, or both
Slash command
/smart-blog-skills:cannibalization [directory] [--api][directory] [--api]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Detect when multiple blog posts compete for the same search keywords. Two modes:
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.
| 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.
Use Glob to find all content files in the target directory:
**/*.md, **/*.mdx, **/*.htmlnode_modules/, .git/, drafts/For each file, read and extract keyword signals from:
Group posts into clusters using these matching rules (in priority order):
For each cluster with 2+ posts, assess severity and generate a recommendation.
| Level | Criteria | Action Urgency |
|---|---|---|
| Critical | Same exact keyword, both pages in top 20 | Immediate |
| High | Same keyword cluster, one page outranks the other | This week |
| Medium | Related keywords with partial SERP overlap | This month |
| Low | Semantic similarity but different confirmed intents | Monitor |
| Post A | Post B | Shared Keywords | Severity | Recommendation |
|--------|--------|-----------------|----------|----------------|
| /best-crm-tools | /top-crm-software | best crm, crm tools | Critical | MERGE |
| /email-tips | /email-marketing-guide | email marketing | High | DIFFERENTIATE |
For each flagged cluster, provide:
When both pages are thin or cover the same intent with similar depth.
When pages serve different intents but keyword targeting overlaps.
When one post is clearly the authority and the other is a lesser duplicate.
rel="canonical" on the weaker page pointing to the authorityWhen intent is genuinely different despite surface-level keyword similarity.
npx claudepluginhub rainday/smart-blog-skills --plugin smart-blog-skillsDetects keyword cannibalization in blog posts via title/heading keyword extraction, semantic clustering, and severity scoring. Local or DataForSEO API modes.
Analyzes multiple pages for keyword overlap, SEO cannibalization risks, and content duplication. Suggests differentiation, consolidation, and resolution strategies when reviewing similar content.
Analyzes multiple pages to detect keyword overlap and cannibalization issues, then suggests differentiation strategies.