Why your own blog posts fight each other for the same spot
You publish a new post, it ranks on page two, and six weeks later the post you wrote last year is still sitting on page one for the exact same query. Neither one moves. You rewrite the old one. Nothing changes. Sound familiar?
That is keyword cannibalization, and on a blog it is almost guaranteed to happen eventually. Not because you did anything stupid, but because blogs grow the way sedimentary rock does: layer by layer, with no master plan. Google Search Console is where I usually catch it — the same query showing two or three of my URLs, bouncing between positions 4 and 9 depending on the week. When I see that flicker, I know I have a problem before I even open the report.
Let me define the term properly, because it gets stretched in all directions. Keyword cannibalization means two or more pages on the same site compete for the same query and the same search intent, splitting authority, internal links, and click signals between them instead of concentrating everything on one strong URL. Google doesn't punish you for it. It just can't decide, so it alternates. That indecision is the cost.
Key takeaways
- Cannibalization is a same-intent problem, not a same-word problem. Two pages can share a keyword and never compete if the intent differs.
- Search Console is your detection tool: one query, two or more URLs of yours, positions that swap week to week.
- Most "fixes" are merges with a 301. Sometimes the correct fix is doing absolutely nothing.
- Blog-specific triggers: date-stamped posts, series, and old articles updated without a rewrite.
- AI answers and AI Overviews amplify the problem — they pick one source per answer, not two.
What does keyword cannibalization mean, and when is it harmless?
Here's the thing most guides skip: cannibalization only exists when two pages share the same intent. Same keyword, different intent, no conflict.
I have a post on "email list building tools" and another on "how many subscribers you need before monetizing." Both contain the phrase a dozen times. They've ranked side by side for years without cannibalizing anything, because someone searching for the first wants to buy and someone searching for the second wants a number. Two different jobs. No fight.
The real diagnostic signal
Position flip-flopping. Not rank decay — oscillation. If your URL sits at 5 on Monday and a different URL of yours sits at 11 on Thursday for the same query, they are competing. If both stay stable at 5 and 11 respectively and have done for months, Google has already made its choice. Leave it alone.
Second signal: the wrong page ranks. You want your cornerstone guide to own the head term, but an old 600-word post from three years ago keeps showing up. That's cannibalization with a clear loser.
How to find cannibalized pages without buying a tool
You don't need a paid crawler for this. Search Console's Performance report does it, and it's free. Here is the exact sequence I run on every site I audit:
- Open Performance, click the Queries tab, and sort by impressions descending.
- Click a query. Then click Pages. Look at how many URLs appear.
- Two or more URLs with meaningful impressions on the same query? That's your list.
- Cross-check with the Pages tab: pick your best-performing article and see which queries it shares with other URLs.
The filter trick that saves the most time: add a regex on the Pages filter matching your own domain, then export to Sheets and pivot. I've audited blogs with 400+ posts this way in under two hours. Manual clicking is fine for 40 posts. Past that, automate or drown.
Do you need a keyword cannibalization checker?
Third-party checkers exist and some are decent, but understand what they detect: keyword overlap in titles and H1s, which is a symptom, not a diagnosis. I've seen tools flag 60 "conflicts" on a blog where maybe eight were real. Filter everything through Search Console data before you touch a single page.
How to resolve keyword cannibalization?
Four moves, in order of how often they're the right answer. Most people jump straight to the fourth, which is why they break their sites.
| Fix | When it applies | Risk |
|---|---|---|
| Do nothing | Both URLs rank stably; one targets buyers, the other researchers | None |
| Re-optimize the weaker page | Intent is close but distinguishable; the weaker post has decent links | Low |
| Canonical or noindex | Near-duplicate content, one version clearly redundant | Medium |
| Merge + 301 | Same intent, both pages thin, neither dominates | High if done lazily |
Real example from my own site: I had a "beginner's guide" and a "complete tutorial" on the same topic. Classic blog cannibalization, pure duplication of intent. I merged them, kept the URL of the older post because it had 40+ referring domains, and 301'd the newer one. Within five weeks the merged page climbed from position 8 average to position 3. Impressions on that cluster went up about 60%. Nothing else changed.
The merge itself matters more than people think. Do not just copy-paste one article under the other's H1 and call it done. Rewrite the intro, keep the strongest sections from each, and strip anything that repeats. A sloppy merge produces a longer page that ranks worse than either original.
When not to fix anything
If the cannibalized page brings in email signups or sales — even from position 12 — merging it can cost you revenue. I made that mistake once. Killed a low-ranking post that converted at a decent clip because a tool told me it "competed" with my main guide. The main guide never converted the same way. Took me a quarter to rebuild that funnel. Check conversion data before you delete anything.
The three triggers unique to blogs
Date-stamped URLs. "Best tools in 2023" followed by "Best tools in 2024" is cannibalization waiting to happen. Either update the original and change its title, or consolidate into one URL that you refresh annually. I run evergreen URLs now — no year in the slug, ever. Saved me a full audit cycle.
Series posts. Part one and part two often chase the same head term. Give part two a distinct angle in its title, or fold it into the first piece.
And the sneaky one: updating a post without reconsidering its target. You add 800 words, the intent shifts, and suddenly it's competing with a page you wrote deliberately for that intent. Which brings up an obvious question — how do you know what to target in the first place?
What is the 80/20 rule in SEO?
The 80/20 rule in SEO says roughly 80% of your organic traffic comes from about 20% of your pages. In practice, on the blogs I've worked on, it's closer to 90/10. Ten or fifteen articles carry the whole site.
Why this matters for cannibalization: those few pages are the ones worth protecting. When two URLs fight over a query that feeds one of your top performers, fix it immediately. When two minor posts swap positions on a query nobody converts on, add it to a list and get to it in six months. Prioritize by traffic and revenue, not by how annoying the report looks.
How to improve SEO on a blog after cleaning this up
Cleaning cannibalization is a repair job, not a growth strategy. Once it's done, prevent it from coming back:
- Maintain a simple spreadsheet: one row per published post, one column for its target query. Before writing anything new, search that column.
- Give every new post a distinct angle. "Another post on X" is a future problem you're creating today.
- Revisit old posts on a schedule and update them in place rather than publishing a fresh version.
- Watch the AI surface: assistants and AI Overviews cite one source per answer. Concentrating authority on one URL per topic is now more valuable than it was when ten blue links ruled the page.
And keep the honest number in mind: on a blog, the vast majority of overlapping queries are noise. A small minority actually deserve surgery. The skill isn't finding conflicts — Search Console hands you hundreds. The skill is knowing which eight are worth your afternoon.
Which is really the whole job, isn't it? Google doesn't reward the blogger who publishes the most. It rewards the one who knows which page should win.