Two "related" posts quietly cap each other's ceiling. Neither ranks where it should. Traffic goes to the wrong URL. Google shuffles them every two weeks and neither one builds equity. Nobody on the team notices because the aggregate traffic looks fine. Here is how we surface it, what we do about it, and the cheapest check you can run before publishing the next post.
Cannibalization is not two posts fighting for the same keyword. That is the definition most SEO tools still use, and it is why their alerts are useless. Real cannibalization is two posts satisfying overlapping query intents to such a degree that Google cannot confidently decide which one to rank, and chooses neither with full conviction. The symptoms are not loud. The numbers quietly underperform a ceiling nobody can see.
Every library past 40 posts has at least two pairs. Usually more. The shape is always the same. There is a post from 2022 called something like "The complete guide to onboarding emails", and there is a post from 2024 called something like "How to write onboarding emails that convert." The two posts are authored by different writers. The keyword overlap at the query level is 60 to 85 percent. Google's ranking URL for the head query fluctuates between them week over week. Neither ever gets to position one. Neither ever earns more than half the click-through rate they should.
The aggregated traffic looks fine because you are adding the two URLs together. The per-post traffic looks mediocre on both, which the team explains with vague hypotheses about seasonality or algorithm volatility. The real explanation is that you have two posts where you should have one, and every month that you leave them both up is a month of compounding you are not getting.
Cannibalization is not usually a strategy failure. It is a coordination failure. Most libraries accumulate it through three mechanisms:
Open Search Console. Filter by page on your suspected post. Export the top 50 queries. Do the same for the other suspected post. Intersect the query lists. If you have more than 30 percent of queries appearing in both top-50 lists, you have a cannibalization pair. That is the one check that matters, and it takes eight minutes per pair.
For a larger library, the cheap pre-filter is title similarity. Posts with overlapping titles almost always have overlapping queries, because writers tend to target the same language. That is the pre-filter the tool below runs: trigram overlap on the two titles. If the overlap is above 60 percent, the two posts are very likely cannibalizing at the query level and the Search Console check is worth the 8 minutes. Below 40 percent, the pair almost certainly is not cannibalizing.
The decision tree is simple and it is the same on every library we touch:
| Situation | Action |
|---|---|
| One post dominates (carries 3x+ the traffic) | 301 redirect the weaker URL into the stronger. Keep the best paragraphs from the weaker post and merge them in. |
| Posts are roughly equal but target slightly different intents | Split the intents cleanly. Rewrite titles and H1s to make each post's scope unambiguous. Update internal anchors accordingly. |
| Posts are roughly equal and target the same intent | Merge into one canonical post under whichever URL has better backlinks. Redirect the other. |
| Both are weak | Merge, rewrite the consolidated post against a clearer intent, and ship the Boost structural upgrades on the survivor. |
The typical pattern we see in Search Console after consolidating a cannibalization pair: the surviving URL gains 30 to 80 percent over the sum of the two pre-merge URLs within 45 to 90 days. Impressions tend to move first. Clicks follow once Google settles on the consolidated URL as the confident answer. Keyword depth (the number of long-tail queries the URL ranks for) typically expands by 40 percent or more.
The lift is larger when the consolidated URL also gets the Boost structural treatment at the same time (question H2s, FAQ block, summary-first paragraphs). It is smaller when the merge is just a redirect with no content consolidation. But the merge alone, done correctly, almost always outperforms leaving the pair in place.
This is the part most teams skip, and it is the part that pays back every quarter. Before you assign a new post, run the trigram overlap check between the proposed title and the titles of every post in the same cluster. If any existing title scores above 55 percent, the proposed post is at risk of cannibalizing on publish. Do one of the following:
This is the loop that separates libraries that compound from libraries that tread water. Every new post you publish competes with everything you already own. The check takes a minute. Skipping it costs you the ceiling on two URLs for as long as both remain up.
If you want one number that tells you whether your library is accumulating cannibalization debt, track query-to-URL confidence. For each top 50 query in Search Console, what fraction of its clicks go to a single dominant URL? Healthy libraries run above 80 percent. Libraries with compounding cannibalization debt run at 55 to 70 percent. Pulling that number up is one of the most durable metrics you can move in an SEO program, and it does not require publishing anything.
None of this is complicated. It just requires a team that looks at what they already own before they publish the next thing. That is most of what The Boost Framework actually does.