blog-cannibalization

Detect keyword cannibalization across blog posts using local file analysis or DataForSEO API.

Updated Jul 10, 2026
One-click install
npx skills add https://github.com/captaindevv/SEO-ajaypipes --skill blog-cannibalization-captaindevv
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: blog-cannibalization
Source: https://github.com/captaindevv/SEO-ajaypipes/tree/main/skills/blog-cannibalization
Command: npx skills add https://github.com/captaindevv/SEO-ajaypipes --skill blog-cannibalization-captaindevv

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Multiple blog posts targeting the same keywords compete against each other in search results, splitting rankings and traffic. This Skill identifies which posts overlap on primary keywords and search intent, then recommends whether to merge, differentiate, canonicalize, or leave them alone. ## Core Features & Use Cases - Local Keyword Extraction: Scans .md, .mdx, and .html files to extract primary keywords from titles, H1s, H2s, and meta descriptions, then clusters posts by exact, stem, semantic, and subset matches. - DataForSEO API Mode: Uses Page Intersection and Ranked Keywords endpoints (~$0.01/call) to find shared ranking keywords with search volume and position data for severity scoring. - Severity-Scored Reports: Outputs a summary table and per-cluster recommendations (MERGE, DIFFERENTIATE, CANONICAL, NO ACTION) with Critical/High/Medium/Low severity levels. - Use Case: A content team with 100+ published posts suspects traffic dilution. Run the Skill against the content directory to find that 14 posts all target "best pipe company in India", then follow the merge recommendation to consolidate them into one authoritative post. ## Quick Start Run the blog cannibalization skill on my content directory to find posts competing for the same keywords.

Frequently Asked Questions about blog-cannibalization

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find keyword cannibalization on my blog?▼

Run the analysis against your blog directory containing .md, .mdx, or .html files. The Skill extracts primary keywords from titles and headings, clusters posts by keyword similarity, and flags clusters of 2+ posts competing for the same search intent with severity scores.

What is the difference between local mode and DataForSEO API mode?▼

Local mode is free and analyzes file content via keyword extraction and clustering heuristics. API mode uses DataForSEO Page Intersection and Ranked Keywords endpoints (~$0.01/call) to add real SERP data like shared ranking keywords, search volume, and positions.

Does keyword cannibalization detection work without API keys?▼

Yes, local mode works without any API keys using file content analysis. API mode requires DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD environment variables; if credentials are missing, the Skill automatically falls back to local mode.

What should I do when two blog posts target the same keyword?▼

The Skill recommends one of four actions per cluster: MERGE thin overlapping posts with a 301 redirect, DIFFERENTIATE by shifting one post to a long-tail keyword, add a CANONICAL tag when one post is the clear authority, or take NO ACTION when intents genuinely differ.

Why does cannibalization analysis fail on my site?▼

Analysis requires at least 2 blog posts in .md, .mdx, or .html format. If your posts live on a CMS like WordPress rather than local files, there is no directory to scan; use WebFetch against live URLs or the API mode instead.