Find Keyword Cannibalization With an AI Agent and MCP
Use SEO Perception MCP to find keyword cannibalization: competing URLs, preferred pages, intent differentiation, and internal links that reinforce a clear owner.

Share this article
Keyword cannibalization sounds dramatic. People talk about it like a penalty.
It usually is not a penalty.
It is a clarity problem: more than one URL on your site earns attention for the same query, so Google has to choose, and your own site may be arguing with itself about which page is the answer.
Sometimes that is fine. Large sites can rank multiple URLs for related queries. Sometimes it is wasteful: two almost-identical articles, a blog post fighting a product page, a thin support note siphoning impressions from the guide that should own the intent.
The useful work is not “find every duplicated word.” The useful work is:
- Find queries with multiple competing URLs
- Name a preferred page
- Decide: consolidate, differentiate, or leave alone
- Reinforce the decision with internal links and on-page clarity
You can do that with spreadsheets. You can also do it faster with an AI agent that calls SEO Perception MCP—as long as the agent is reading stored evidence, not inventing a SERP story.
What SEO Perception means by cannibalization
In SEO Perception, keyword cannibalization opportunities come from stored weekly Search Console facts: the same query earning traffic across more than one crawled URL in the relevant window. The system picks a preferred page using recent clicks, then better average position, then impressions. Non-preferred pages get the conflict context (including preferred and competing URLs).
That is documented in Keyword cannibalization across URLs and surfaced in SEO Possibilities.
MCP exposes the same class of persisted conflicts through seoperception_find_cannibalization. It does not call Google live. It does not refresh Search Console. It reads what you already collected.
That matters. An agent that “checks the SERP” is guessing under a different job description. An agent that reads your stored conflicts is helping you clean your own site.
Setup (once)
- Paid plan
- Create a token under Account → MCP
- Connect your MCP client (docs)
- Start with
seoperception_list_sitesto getsiteId
Privacy note: tool results are site analytics. Your client may send them to a model provider. Treat them accordingly.
The deep workflow
1. Pull the conflict list
Tool: seoperception_find_cannibalization
Prompt:
Find keyword cannibalization for this site. For each conflict, list the query, preferred URL, competing URLs, and a plain-language summary of why this might matter. Group conflicts by preferred URL so I can fix pages, not isolated keywords. Paginate if needed. Do not invent conflicts that are not returned by the tool.
What good output looks like: A table-like narrative grouped by owner page. Bad output looks like generic advice (“add canonical tags everywhere”) with no URLs.
2. Separate real conflicts from harmless overlap
Not every multi-URL query needs a project.
Often you can leave alone when:
- intents are already different and both pages are useful
- one URL is a thin alternate that barely moves
- the query is branded and users are navigating, not researching
- you intentionally rank a hub and a spoke for adjacent needs
Escalate when:
- two pages try to be the same guide
- a blog post and a money page fight for the same commercial query
- titles and H1s are near-duplicates
- internal links point at the weaker URL
- content briefs keep proposing “new” pages in the same cluster
Prompt:
From the cannibalization list, split into: act now, monitor, ignore. For act-now items, say whether the likely fix is consolidation, differentiation, or redirect. Cite preferred vs competing URLs.
3. Confirm the preferred page with diagnostics
Tool: seoperception_get_page_diagnostics
The preferred page from stored rules is a strong default. Still verify it can carry the job: indexable, coherent title/H1, not a dead-end orphan, not a worse user experience than a competitor URL on your own site.
Prompt:
Diagnose the preferred URL and the top competing URL for query “[query]”. Compare crawl metadata, top queries, and open opportunities. Recommend whether to keep the current preferred page or intentionally switch ownership—and why.
Switching ownership is allowed. Doing it silently while your internal links still promote the old winner is how conflicts persist.
4. Check the query evidence around the conflict
Tool: seoperception_search_queries
Cannibalization rows are the alert. Query search is the context: related queries, content match, CTR, position patterns.
Prompt:
Search queries related to “[query]” for this site. Show which URLs they land on and whether the query language appears in content. Tell me if we are looking at one intent or two adjacent intents that deserve separate pages.
This is the fork:
- One intent, many URLs → consolidate or redirect
- Two intents, muddy pages → differentiate
- One intent, weak packaging → keep one URL, improve title/content, starve the other with links/redirects
5. Decide the fix type (be explicit)
Write the decision down before anyone edits copy.
Consolidate
Merge the best unique sections into the preferred URL. Update the loser: redirect if it has no distinct job, or demote it to a clearly different topic. Remove duplicate FAQs that restate the same answer.
Differentiate
Give each URL a single sentence job. Change titles, H1s, intros, and examples so a human can tell them apart in ten seconds. If you cannot write two distinct jobs, you do not have two pages—you have one page and a duplicate.
Redirect
Use when the competing URL has no durable unique value. Redirects are cleaner than endless “rel=canonical” debates on thin clones—follow your CMS/server realities, and make sure internal links are updated too.
Leave alone
Valid. Record why, so next month’s agent does not reopen a closed decision.
6. Reinforce with internal links
Tool: seoperception_suggest_internal_links
Ownership that exists only in a spreadsheet will lose to whatever your site keeps linking.
Prompt:
Suggest internal links that reinforce the preferred URL for these cannibalization decisions. Flag any suggestions that would strengthen a competing URL we are trying to demote. Propose natural anchors.
Internal linking is not housekeeping. It is how your site explains which page is the answer. Longer take: Internal links are how your site explains itself.
Practical rules:
- From related articles, link to the preferred URL when the reader needs that intent
- On the competing URL (if kept), link up to the preferred page with clear contextual language
- Stop exact-match spamming the loser
- After publishing link changes, crawl again when you can so stored structure catches up
7. Close the loop with opportunities
Tool: seoperception_list_opportunities
After you fix a cluster, re-list opportunities filtered by severity if useful. The point is not to watch a dashboard celebrate. The point is to see whether the same conflict class is still open, and what else is blocking the preferred page (title issues, content gaps, technical problems).
Prompt:
List high-severity opportunities for this site that mention these URLs or related cannibalization. What still blocks the preferred pages from being clear winners?
A worked conflict pattern (illustrative, not a traffic claim)
Pattern you will recognize:
- Query family around “how to connect Google Search Console”
- Preferred:
/docs/connect-search-console/ - Competing:
/blog/search-console-tips/and an older/resources/gsc-setup/
Agent recommendation that is actually useful:
- Prefer the docs URL as the setup owner
- Retitle the blog post toward tips/advanced troubleshooting only if that intent is real; otherwise redirect
- Move any unique setup steps from the resource page into docs, then redirect the resource URL
- Add internal links from getting-started docs and related blog posts to the preferred setup page
- Do not publish a fourth “GSC setup” article
That is cannibalization work. It is mostly editing and redirects, not “more content.”
What to tell the AI agent not to do
- Do not invent competing URLs that the tool did not return
- Do not claim live rankings or traffic deltas MCP did not provide
- Do not recommend stuffing the same keyword into every title
- Do not treat every multi-URL query as an emergency
- Do not “fix” cannibalization by generating another overlapping article
Agents are strong at grouping conflicts and drafting differentiation outlines. Humans still own redirects, brand voice, and which URL deserves the commercial intent.
How this fits the rest of MCP
Cannibalization is one workflow. It pairs with:
- content briefs that refuse to create overlapping URLs (Turn GSC queries into content briefs with MCP)
- the broader Cursor playbook (7 SEO workflows from Cursor with MCP)
- in-product prioritization via SEO Possibilities
If you only run one MCP workflow this month, run this one on your top commercial and setup themes. Clarifying ownership often unlocks CTR and content work that was previously diluted across three almost-right pages.
For product behavior detail, see Keyword cannibalization across URLs. For setup, see MCP integration and MCP for Cursor.
Frequently asked questions
Is keyword cannibalization a Google penalty?
No. It is a description of split ownership: multiple URLs on your site earning the same query. Google still picks a result. Your job is to make the best page the obvious owner when the overlap is harmful.
How does SEO Perception choose the preferred page?
From stored weekly Search Console facts in the same window used for other GSC possibilities: prefer higher recent clicks, then better average position, then impressions. Details: Keyword cannibalization across URLs.
Can an AI agent change my preferred page?
The agent can recommend a switch after diagnostics. SEO Perception’s stored preferred page is evidence-based defaults for conflict detection. Publishing redirects, consolidations, and link changes is still your implementation work.
Does find_cannibalization call Google live?
No. MCP tools read stored data only. If the list is empty, you may lack overlapping query evidence in the retained window, or Search Console/crawl data is not ready yet.
Should I always redirect competing URLs?
No. Redirect when the URL has no distinct job. Differentiate when intents are real and separable. Consolidate content first when each page has unique useful sections that belong together.
How do internal links help after I pick a preferred page?
They teach users and crawlers which URL is the answer. If your site keeps linking to the loser, you are funding the conflict. Use seoperception_suggest_internal_links and the principles in Internal links are how your site explains itself.
Share this article
Evidence and update policy
These articles are written from crawl diagnostics, Search Console interpretation, and cited public documentation when platform behavior is referenced. Guidance is updated when source platforms change materially.