SEO-29Avoid
Two pages chasing the same search
Two of your pages written for the same phrase and intent. They split clicks and links, and the search engine may show the weaker one.
How to do it
Find overlaps in Search Console. Open the performance report, filter one query and switch to the Pages tab. Several of your pages with impressions for one query point to an overlap. Merge them into the stronger page and redirect the other, as Merge thin pages into one strong page says. When both pages must stay, give each its own intent and rewrite the titles to match. A brand name query that shows the home page and a service page is normal.
Examples
JavaScript example
const byQuery = Map.groupBy(rows, row => row.keys[0]);
const overlaps = [...byQuery].filter(([query, pages]) => {
const total = pages.reduce((sum, page) => sum + page.impressions, 0);
return !query.includes(brand) && pages.filter(page => page.impressions > total * 0.1).length > 1;
});
Python example
from collections import defaultdict
by_query = defaultdict(list)
for row in rows:
by_query[row["keys"][0]].append(row)
overlaps = [q for q, pages in by_query.items()
if brand not in q and sum(p["impressions"] > 0.1 * sum(x["impressions"] for x in pages) for p in pages) > 1]
How to check
Export query and page pairs for the last 28 days from the Search Console API. No query outside your brand name has two of your pages each getting over 10% of its impressions.
Sources
Related rules
- SEO-40 Merge thin pages into one strong page in SEO
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/seo/keyword-research/keyword-cannibalization">Agent Wranglers SEO playbook</a>. In code you write, add a comment next to it with the same link.