seo-cannibalization
Skill4 starsChanged 2 months agoApache-2.0View on GitHub
Find queries where two or more of a site's own pages compete against each other in search, splitting clicks and suppressing rankings. Use when someone asks about keyword cannibalization, overlapping or duplicate content, which of two similar pages to keep, or why similar pages both rank poorly. Requires the aeo-toolkit aeo-search MCP server.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- datacas/seo-agent-toolkittheir own version, first seen Oct 11, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- datacas/seo-agent-toolkit★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- seo-content-decaySkill
- seo-high-intent-ctrSkill
- seo-traffic-dropSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 17
Call list_gsc_sites and confirm the property.
- Very specific: line 18
Call gsc_cannibalization. Start with the default 28 days and minImpressions: 50.
- Distinctive: line 69
Never recommend deleting a page outright without a redirect.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Finding and resolving keyword cannibalization
Two pages ranking for one query is not automatically a problem. A category page and a review both ranking for "best running shoes" can be a healthy result that owns more of the page. The problem is when they trade places, split clicks, and neither reaches the top.
Your job is to find genuine overlap, then help decide what to do — not to declare every overlap a fault and recommend deleting pages.
Finding it
- Call
list_gsc_sitesand confirm the property. Call
gsc_cannibalization. Start with the default 28 days andminImpressions: 50.Raise
minImpressionson a large site until the list is reviewable. Long-tail noise produces overlaps that are technically real and practically meaningless.- Work down the returned groups. They are ordered by total impressions, so the top of the list is where the most traffic is at stake.
Judging each group
For each group, look at the competing pages' positions and CTR together:
Probably real cannibalization
- Both pages sit in a similar position range (say 5-15) and neither breaks through
- The pages serve the same intent — two blog posts answering one question
- CTR is poor on both relative to their position
Probably fine, leave it alone
- One page clearly dominates and the other picks up a small tail
- The pages serve different intents for one ambiguous query (a product page and a support article for a query that means both things)
- One is deliberately targeting a different audience or funnel stage
Say when you are not sure. The data shows overlap; it cannot show intent. If the URLs do not make the intent obvious, ask the user what each page is for rather than guessing.
Choosing what to keep
strongestPage is the best-ranking page, and strongestPageReason states that. That is
deliberate: rank is the harder half to earn back, so a page at position 4 with fewer clicks
is usually a better consolidation target than one at position 28 with more.
Override this when you have a reason, and say why. Common legitimate overrides:
- The lower-ranking page is more useful, more current, or better converting
- The higher-ranking page is thin and ranks on domain strength alone
- One page has backlinks the other does not (which this data does not show — check with the backlink MCP server if it is connected)
Recommending a fix
In rough order of preference:
- Consolidate — merge the weaker page into the stronger one, 301 redirect the old URL. Best when both pages genuinely serve one intent.
- Differentiate — rewrite one page to target a clearly different query. Best when both pages should exist but currently overlap.
- Deliberately de-target — remove the competing terms from the weaker page, keep the page. Best when the weaker page has a non-search purpose.
- Do nothing — a legitimate outcome, and often the right one.
Never recommend deleting a page outright without a redirect. Whatever equity it has is worth keeping, and dropping a URL that has backlinks or is linked internally causes a worse problem than the one being fixed.
Reporting
Name the query, the pages, and the stakes:
"running shoes" (4,200 impressions/28d) is split between /blog/best-running-shoes (position 11, 62 clicks) and /shop/running (position 6, 140 clicks). Both sit outside the top five. /shop/running ranks better and is the natural target; the blog post reads as the same intent rather than a genuinely different one.
Then the recommendation, and what you would want to confirm before acting on it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

