seodraft

The harness

  • MCP server
  • The rules
  • Git delivery
  • Editorial calendar
  • All features

What it knows

  • Measured topics
  • SERP brief
  • Evidence bank
  • Cannibalization stop
  • Internal links

Free tools

  • AI crawler checker
  • Sitemap checker
  • Readability checker
  • AI slop checker
  • Meta description checker
  • FAQ schema generator
  • All tools

Learn

  • Claude SEO
  • All courses
ServicesAgentsPricingBlog

EN/ES

Log inCreate account
Create account
seodraft

Your agent writes. The rules decide. You approve.

EN/ES

Product

  • Features
  • MCP server
  • Editorial calendar
  • SERP brief
  • Evidence bank
  • Git delivery

Agents

  • Slack (eve)
  • Claude
  • ChatGPT
  • Cursor
  • Grok Bot
  • Codex & VS Code
  • Setup guides

Free tools

  • AI crawler checker
  • Sitemap checker
  • Readability checker
  • AI slop checker
  • Meta description checker
  • FAQ schema generator
  • All tools

Compare

  • Outrank
  • Surfer SEO
  • Jasper
  • Frase
  • Writesonic
  • Copy.ai
  • All alternatives

Company

  • Blog
  • Pricing
  • Services
  • Case studies
  • AI info
  • Write skill
  • llms.txt
  • Log in
  • Create account

Learn

Claude SEOAll courses
Featured onFeatured on CodeHypeVerified on directreeFeatured on SaaSearch

Privacy·Terms·Support·© seodraft

October 11, 2026· Written by Chorch

How to fix keyword cannibalization on a small blog

Learn how to fix keyword cannibalization on a small blog: spot synonym clashes, pick a winner, merge and redirect, then lock the topic bank.

On this page

  1. Spot the clash when the words look different
  2. Decide which URL keeps the intent
  3. Merge the loser and leave a clean redirect
  4. Harden the topic bank so the clash does not reopen
  5. Which collision to fix first this week

In short

Fix keyword cannibalization on a small blog by spotting synonym clashes (word overlap 0.00 / classifier 0.97 on a CRM pair), keeping one URL, merging the rest, and locking the topic bank.

You shipped a post on "CRM rollout mistakes in a clinic" and, three weeks later, another on "common failures when putting a practice management system live." They look different. Google and your own agent treat them as the same question.

To fix keyword cannibalization on a small blog, start with that clash: two URLs fighting for one intent. On a site with thousands of pages the noise washes out. With 12 or 20 posts, every collision shows in Search Console and in model citations. That small-blog math is why SaaS SEO as a solo founder starts with one question per URL.

We measured a real pair in seodraft. The word-overlap check scored 0.00 between "errores al implementar un CRM en una clínica" and "fallas frecuentes al poner un sistema de gestión en un consultorio". seodraft's semantic classifier caught that pair at 0.97.

Below you will spot synonym clashes, pick a winning URL, merge and redirect the loser, harden the topic bank, and choose which collision to fix first. If you want the product feature, see keyword cannibalization in seodraft.

  • Spot the clash when the words look different
  • Decide which URL keeps the intent
  • Merge the loser and leave a clean redirect
  • Harden the topic bank so the clash does not reopen
  • Which collision to fix first this week

Spot the clash when the words look different

The word-overlap check scored 0.00 between two CRM phrases that ask the same question.

That 0.00 is the blind spot. A filter that only counts matching tokens lets synonyms through. The classifier caught that pair at 0.97, and seodraft's own reference article scored 0.90 on first-hand facts. The 0.97 says same question; the 0.90 confirms the strong draft rests on measurable facts.

Before you schedule a new term, run it against the bank. Low lexical overlap plus high semantic score means one post, already written.

If you have no classifier, read both titles out loud and ask whether a reader who landed on one already has the answer from the other. If yes, log the pair in an editor note so you do not replan it next week. A one-line note with both titles and the semantic score is enough for the next planning pass.

Decide which URL keeps the intent

Keep the URL with stronger first-hand evidence and fuller intent coverage.

Publish date is a weak tie-breaker. Prefer the draft that already carries first-hand numbers and named cases. The thinner sibling becomes the merge source. On a 15-post blog, that choice also decides which URL will collect the shared Search Console impressions after you clean up.

The scorecard: first-hand facts beat freshness, and a post that already passes the rules beats one still stuck in writing. Write the winner's articlePostId next to the topic in the bank before you touch redirects.

If both posts are thin, pause the merge and bank one more measured fact into the survivor first.

Merge the loser and leave a clean redirect

Move useful sections into the survivor, then point the old URL at the winner with a 301 or a canonical.

Copy the sections that still add a fact, a FAQ, or an example the survivor lacks. Drop the filler that duplicated the same steps. Unify the brief so the survivor opens with one angle. Then leave a 301 from the old URL, or a canonical if both must stay live for a short window.

After the merge, move internal links that pointed at the loser over to the survivor. In seodraft, the internal linking rules check that every link in a draft resolves. Update any CTA or related-reading block that still names the old slug. Re-check Search Console queries for both URLs a week later to confirm the winner now collects the shared impressions.

Leaving both pages live "just in case" usually leaves two half-finished answers for the same reader. One survivor with a redirect is easier for Google and for the next agent pass.

A short checklist:

  • Winner: the post with more first-hand facts and fuller intent coverage.
  • Loser: merged; old URL redirects.
  • Bank: one term, one post id, status written.

Harden the topic bank so the clash does not reopen

Lock each open question to one articlePostId and refuse a second draft on the same intent.

In seodraft the bank stores the term, the status, and the articlePostId. When a topic already has an article, the next similar angle is flagged as overlap or merged. Chorch's rule for that bank, in his words: se mantiene o se reordena pero no se cambia (it stays or gets reordered, but it does not change). If the question still matters, move the date.

Measuring a keyword batch with DataForSEO costs about USD 0.11 per batch, and a SERP brief about USD 0.004 when the topic already has metrics. That read is cheap insurance before you open a second post on the same intent.

The writing workflow fits the same pattern: profile, evidence, brief, then the rules. I cover that flow in how to make AI write without sounding generic. The bank decides what to write; the rules decide whether the draft is ready. Why the bank and the rules sit behind your agent instead of a dashboard is in Agent-first: why seodraft killed most of its web UI.

Which collision to fix first this week

Start with the pair that already splits Search Console impressions across two thin URLs.

Next step: open Search Console, sort queries by impressions, and find any query that lands on two of your posts. Compare that pair with the bank. High semantic overlap means merge this week.

If the slot is free for a new question, write the brief before the body and run the rules. That order keeps the calendar full without reopening a clash you just fixed.

If you want to try the loop with your own agent (Claude, Cursor, or ChatGPT on Business, Enterprise or Edu), connect seodraft, load the topic bank, and let dedupe stop the next duplicate before it hits the calendar.

Frequently asked questions

What is keyword cannibalization in SEO?
It is when two or more URLs on your site compete for the same search intent. On a small blog it is enough that they answer the same reader question, even when the keywords differ.
How do I spot cannibalization when the keywords look different?
Run the new term against the bank. If word overlap is low (like the 0.00 CRM pair) and a semantic classifier scores high (0.97 on that same pair), it is the same question in different wording.
What should I do if I already published two overlapping posts?
Keep the URL with stronger first-hand evidence, merge useful sections into it, and leave a 301 or canonical from the old URL. Keep one articlePostId in the bank for that question.
How many keywords can one post cover after a fix?
One open intent per URL. Extra phrasings can live as synonyms or FAQs inside the survivor; they do not open a second URL.

About the author

Chorch · Founder of seodraft

Chorch builds seodraft. He has spent more than fifteen years building digital businesses, and he answers seodraft's support himself at chorch@seodraft.app.

XLinkedInGitHub

All posts

Your agent writes. The rules decide. You approve.

Turn the Claude or ChatGPT you already pay for into an SEO agent: measured topics, your own evidence, and rules that check every draft.

Create account

7 days free, no card needed. Then $9/month if you subscribe.

Log inCreate account
Create account
Create account

7 days free, no card needed. Then $9/month if you subscribe.

  • Log in
  • Create account