You have three articles about “Claude API,” all targeting the same intent, and none of them rank in the top 20. In Search Console you see them flickering: article A at position 23 today, B at 38 tomorrow, C at 31 the day after. Google can’t decide which page is the canonical answer, so it keeps swapping them and none accumulates enough authority to rank.
Fastest fix: confirm it is real cannibalization (one query, two or more of your URLs, positions that swap week to week), then pick the single best page as the pillar, 301-redirect or re-aim the rest, and point internal links at the pillar. Consolidating three half-ranked pages into one focused page is the move that recovers position; everything else is cleanup.
This is keyword cannibalization. When multiple pages on your site compete for the same query, Google splits the ranking signal across them and no single page earns enough to win. The rank swapping is the giveaway: as of June 2026, Google’s own cannibalization-troubleshooting guidance describes the same pattern, where it alternates which near-duplicate it shows.
Which bucket are you in?
Run the confirmation in Step 1 first, then match your situation:
| Symptom in GSC / on site | Most likely cause | Go to |
|---|---|---|
| One query, 2+ of your URLs, positions swap week to week | True cannibalization | Steps 1 to 4 |
| Pages have near-identical titles / H1 | Duplicate intent never differentiated | Causes 1, 3 |
| Page Indexing shows “Duplicate, Google chose different canonical than user” | Your canonical is being ignored; pick a real winner | Cause 5, Step 5 |
| Page Indexing shows “Duplicate without user-selected canonical” | No canonical set; signals fully split | Cause 5, Step 5 |
| One query swaps, but positions are #1 to #3 (both your pages on page one) | Not a problem; leave it alone | Prevention |
That last row matters: if both your URLs sit in the top few results for a query, you own the SERP and you should not “fix” anything. Cannibalization only hurts when the split keeps every version off page one.
Common causes
Ordered by hit rate, highest first.
1. Multiple articles share near-identical titles / H1s
“How to use Claude API,” “Claude API guide,” “Using Claude API in 2026” read like one article rewritten three times. Google can’t tell which is the answer, so it shows whichever appeals to a query that day.
How to spot it: list your titles and group by topic. Three or more titles in one group is a cannibalization risk.
2. No internal linking concentrates authority on a pillar
Each article links to whatever the author remembered. With no deliberate pillar, no page gets the lion’s share of internal links and authority spreads thin.
How to spot it: run an internal-link audit. If your “Claude API” articles all have similar inbound counts with no clear leader, authority is fragmented.
3. Unique intent per article was never designed
You wrote three articles assuming each would find its own audience. In reality they all target the same intent (“learn Claude API”). The differentiation existed only in your head.
How to spot it: for each article, write its query intent in one sentence. If three intent sentences are paraphrases of each other, intent design failed.
4. Search Console shows the pages on the same queries
Look at the actual data:
Query: claude api
- Page A: avg position 23, 50 impressions, 1 click
- Page B: avg position 38, 30 impressions, 0 clicks
- Page C: avg position 31, 45 impressions, 1 click
Three pages, one query, none ranking. That is the canonical cannibalization signature.
How to spot it: GSC Performance report, click the query, then open the Pages tab (current UI as of June 2026). Two or more of your pages for one query is the bug.
5. Canonical is wrong, missing, or being overridden
If all three pages self-canonicalize, Google treats them as three competing pages. If one canonicaled to the pillar, the others would consolidate signal. But canonical is a hint, not a rule: Google can pick its own winner, which surfaces in the Page Indexing report as either Duplicate, Google chose different canonical than user (you set a canonical, Google ignored it) or Duplicate without user-selected canonical (you set none, so signals split fully).
How to spot it: in GSC open Page Indexing and look for those two statuses, or use the URL Inspection tool on a candidate URL and compare “User-declared canonical” against “Google-selected canonical.” If they differ, Google is overriding you, which usually means the page isn’t distinct enough to deserve its own canonical.
6. The cluster was designed by AI / SEO tools that suggest “more content”
Some SEO tooling recommends “write 5 articles on related sub-topics.” Naive execution produces overlapping articles instead of distinct sub-intents. The tool’s advice was directional; the execution missed the differentiation.
How to spot it: you followed a tool’s “topic cluster” suggestion and produced multiple articles in one batch. Re-read the suggestions and check whether they actually mapped to distinct intents.
Shortest path to fix
Ordered by ROI. Step 1 confirms the cannibalization; Steps 2 to 4 resolve it.
Step 1: Confirm cannibalization pairs in Search Console
Search Console -> Performance -> Search results
Click into a target query
Open the "Pages" tab
If two or more of your URLs appear for that one query, you have a pair. Cross-check the rank-swap signal: switch the date range to “Compare” the last 3 months against the previous 3, and watch whether the same query’s winning URL changes between periods. Stable winner = not cannibalization. Swapping winner = cannibalization. Export your top queries and triage the worst offenders first (highest impressions, lowest average position).
Step 2: Pick the pillar per cluster
For each cannibalization group, decide which page becomes the canonical pillar:
Criteria for pillar (in priority order):
1. Highest current ranking (Google already prefers it)
2. Best content quality (depth, examples, length)
3. Most internal-link inbound count
4. Best URL (shortest, cleanest, oldest = most backlinks)
One pillar per intent. The rest become satellites or get merged.
Step 3: Re-aim the others at sub-intents OR merge
For each non-pillar article:
Option A: Re-aim at a distinct sub-intent
- "Claude API guide" (pillar) -> overall how-to
- "Claude API streaming" (satellite) -> specific feature
- "Claude API rate limits" (satellite) -> specific concern
- "Claude API vs OpenAI API" (satellite) -> comparison
Each satellite targets a clearly different query.
Rewrite title + H1 + intro to reinforce the new intent.
Option B: Merge into the pillar
- Fold the satellite's best material into the pillar
- 301-redirect the satellite URL to the pillar
- One stronger page beats two weaker ones
Use Option B (merge) when the satellite has no genuinely distinct query to own. Use Option A only when you can name the satellite’s query in a sentence that does not paraphrase the pillar’s.
Step 4: Consolidate internal links onto the pillar
# Find articles that link to any of the cannibalizing URLs
grep -rln "/articles/claude-api-guide/\|/articles/using-claude-api/\|/articles/claude-api-2026/" src/content/
# For each match, repoint the link to the pillar only
The pillar should accumulate the large majority of internal links to its topic. Surviving satellites link up to the pillar from their intros, never the reverse.
Step 5: Use canonical (or redirect) while a merge is in progress
If you can’t merge immediately, set a canonical on the satellites so Google consolidates signal while they are still live:
<!-- in each satellite's <head> -->
<link rel="canonical" href="https://yoursite.com/articles/claude-api-guide/" />
Canonical is the right tool while you decide; a permanent 301 redirect is the right tool once you have decided. Per Google’s consolidate-duplicate-URLs guidance, a 301 redirect is the strongest consolidation signal, rel=canonical is a strong hint, and a sitemap entry is a weak one. These signals stack, so do not send contradictory hints (for example, a canonical pointing one way and a sitemap implying another). Once a satellite is permanently gone, replace the canonical with a 301 to the pillar.
Step 6: Audit before publishing new cluster articles
Before adding a new article to a cluster, search your own site:
site:yoursite.com claude api streaming
If you already have a page targeting that intent, expand it instead of writing a new one. New articles only when they fill a distinct gap.
How to confirm it’s fixed
Cannibalization fixes are slow because Google has to re-crawl and re-consolidate, so verify in stages:
- Same day: in URL Inspection, confirm the merged/satellite URL now reports the pillar as the Google-selected canonical (for redirects, confirm a single
301hop with no chain). Request indexing on the pillar. - 1 to 2 weeks: in the Page Indexing report, the
Duplicate, Google chose different canonical than usercount for those URLs should start dropping as Google honors the redirect/canonical. - 3 to 6 weeks: in Performance, re-run the query’s Pages tab. Success looks like one URL (the pillar) holding a stable position and its impressions consolidating, instead of the old week-to-week swap. A rising average position on the pillar confirms the signal recombined.
If positions still swap after 6 weeks, the satellite was probably re-aimed at an intent that still overlaps the pillar. Tighten its title/H1 further, or merge it.
Prevention
- Before writing a new article, search your own site for an existing page on the same intent.
- Give each cluster one explicit pillar plus clearly distinct satellites, and design the intent before writing.
- Concentrate internal links on the pillar; satellites link to the pillar, not the other way around.
- Audit GSC quarterly for cannibalization pairs (one query, two or more of your pages with swapping positions).
- Use
canonicalto consolidate signal while content merges are in progress, then switch to a301once a page is permanently retired. - Don’t follow “write 5 related articles” advice naively; naive execution produces overlap, not coverage.
FAQ
How do I tell cannibalization apart from normal ranking noise? Real cannibalization shows two or more of your URLs on the same query in the Performance Pages tab, with the winning URL swapping between time periods. A single URL whose position drifts a few spots week to week is ordinary volatility, not cannibalization.
Is two of my pages ranking for one keyword always bad? No. If both sit in the top few results you own more SERP real estate, which is good. It is only a problem when the split keeps every version off page one. Don’t merge pages that are jointly winning.
Should I 301-redirect or set a canonical?
Canonical while you are still deciding and want to keep the page live; 301 once you have committed to retiring it. The 301 is the stronger signal and is what Google recommends for a permanent merge, but it removes the page, so don’t use it until you are sure.
Why does Search Console say “Google chose a different canonical than user”? Google evaluated your canonical as a hint and overrode it, usually because the page isn’t distinct or authoritative enough to deserve its own canonical. Either make the page genuinely different (unique angle, examples, intent) or accept Google’s choice and consolidate onto the winner it picked.
How long until the fix shows up in rankings? Expect days for URL Inspection to reflect the new canonical, one to two weeks for the Page Indexing counts to move, and three to six weeks for Performance to show a stable consolidated position. Requesting indexing on the pillar speeds the first step but not the ranking recovery.
Do noindex tags fix cannibalization?
They can, but bluntly: noindex drops the page from search entirely and does not pass its signals to the pillar the way a 301 does. Prefer merge-plus-redirect when the page has any accumulated value; reserve noindex for pages you want gone with nothing worth preserving.
Related
- Too many thin pages
- Duplicate titles across many pages
- Duplicate without user-selected canonical
- Topic cluster too shallow
Tags: #SEO #Troubleshooting #Cannibalization #Content strategy