Agent Wranglers

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

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.