Free • No signup • Instant results

Keyword Cannibalization Checker

Find the pages on your site that are competing with each other for the same search. This free tool crawls your public pages, compares topic and intent, and tells you which pages to consolidate, re-optimize or leave alone.

Analyze Your Site For Cannibalization

Enter a website below to receive a full keyword cannibalization report

Use the homepage for a site-wide check, or a section URL to start the crawl deeper in the site.

Up to five, separated by commas. You get a breakdown of which pages target each one.

Larger crawls take longer. Fifty is usually enough to see the pattern.

One request at a time with a delay between them, so the site being analyzed is not put under load.

Why Run a Cannibalization Check

Keyword cannibalization is when two or more pages on your site target substantially the same search intent, so a search engine has to pick between them instead of you deciding. For the full explanation of why it happens, what it costs and how to fix it, read Keyword Cannibalization: What It Is, Why It Hurts Your Rankings, and How to Fix It. This page covers the tool: what it measures, how it scores, and how to read what it gives you.

Finding these conflicts by hand means opening pages side by side and making a judgment call on each pair. On a fifty-page site that is over a thousand pairs. Here is what the checker does that a manual pass or a keyword-matching tool does not.

  • It compares intent, not just words

    Matching keywords across pages produces a long list of pairs that share vocabulary and nothing else. Every page is classified into an approximate search intent first, so a guide and a service page on one topic are not treated the same as two service pages chasing one query.

  • It removes what every page shares

    Your site name is stripped from titles before they are compared, and any text block appearing on half or more of your pages is dropped as boilerplate. Without that step your navigation, footer and brand suffix make every pair look related, which is where most naive tools generate their false positives.

  • It shows its working

    Each flagged pair reports all seven signal scores, the adjustments applied, and a confidence rating. You can see which part of the overlap produced the number and disagree with it, rather than being handed a score with nothing behind it.

How the Keyword Cannibalization Checker Works

The checker works entirely from what is publicly visible on your site. It needs no analytics access, no Search Console property, and no paid data source.

Step 1: Crawling

The tool requests the URL you entered, then follows internal links to discover more pages up to the limit you chose. If an XML sitemap is available it is used to seed the queue, so coverage follows your own priorities rather than whatever the navigation happens to link first. Requests go out one at a time with a delay between them, and robots.txt rules are honored including any crawl-delay directive. Non-HTML files and cart, checkout, login and account paths are skipped, because they add nothing to a topical comparison.

Step 2: Extraction

For each page the parser pulls the title tag, meta description, H1, H2 and H3 headings, canonical tag, robots directives, declared language, structured data types, internal links with their anchor text, image alt text and the main body content. Navigation, headers, footers, sidebars, forms and scripts are removed first, so the comparison runs on what the page is about rather than the template it sits in.

Step 3: Normalization

Raw text makes for poor comparisons, so several cleanup passes run before anything is scored:

  • The shared brand suffix is stripped from titles. If every title ends with your company name, that ending alone would make every page resemble every other page.
  • Text blocks appearing on half or more of the crawled pages are treated as site-wide boilerplate and removed. A repeated call to action is not evidence of overlap.
  • Terms appearing on more than three quarters of your pages carry almost no weight, because a term that is everywhere cannot distinguish anything.
  • Generic marketing vocabulary is downweighted. Words like solutions, quality, professional and results appear on nearly every commercial site and rarely indicate a real topical match.

Step 4: Comparison

A cheap pre-filter discards pairs with no meaningful relationship, then every surviving pair is scored across the seven signals below. On a fifty-page crawl that is well over a thousand comparisons, which is why the filtering matters.

Step 5: Scoring and recommendations

The weighted signals produce a score out of 100, which is then adjusted up or down by evidence about whether the overlap matters in practice. Each pair also receives a confidence rating reflecting how many independent signals agree and whether both pages had enough content to compare reliably. Every flagged pair arrives with the evidence that produced its score and an action matched to the situation rather than applied as a blanket rule.

What the Tool Checks

Seven signals are compared for every page pair. Each is reported as a percentage in your results, so you can see which part of the overlap is driving the score rather than taking the number on trust.

  • Topic overlap Weight 22

    The heaviest signal, and the one that catches conflicts the others miss. Each page gets a weighted profile of the terms that make it distinct, scored by where a term appears and by how rare it is across the rest of your site. A word in the H1 counts far more than the same word in the fourth paragraph, and a word on every page counts for almost nothing.

    A high value means two pages cover the same subject even when they share little literal wording. This is what identifies a rewritten page competing with the original.

  • Title overlap Weight 17

    Titles are the clearest statement of what a page claims to be. Comparison is on shared concepts rather than exact strings, so "SEO Services for Dentists" and "Dental SEO Services" register as the close relatives they are.

  • H1 overlap Weight 15

    The H1 usually states the page promise more honestly than the title, which is often written for click-through rather than accuracy. When titles differ but H1s match, the two pages were generally written for the same query with different metadata bolted on.

  • Search intent similarity Weight 14

    Each page is classified using URL patterns, headline phrasing, structured data, and page signals such as visible pricing or a booking call to action. This is the signal that separates a real conflict from healthy topical clustering.

    Two pages on one topic with clearly different intents are usually a good structure, so a mismatch pulls the score down hard. Same topic plus same intent is the definition of the problem, so a match pushes it up.

  • Content similarity Weight 13

    Body content is broken into overlapping five-word sequences and hashed, then the two sets are compared. A high value turns a topical overlap into a near-duplicate problem and raises the score accordingly. It is the signal that catches templated location and service pages.

  • Prominent term overlap Weight 10

    This looks only at the terms each page emphasizes most across its title, H1, headings, opening content and anchor text. It answers a narrower question than topic overlap: are these two pages trying to be known for the same phrases?

  • Heading structure overlap Weight 9

    Two pages covering the same sub-topics in the same order indicates duplicated planning rather than duplicated wording. It is the usual fingerprint of an article written without checking what already existed.

Signals that adjust the weighted score

The score drops when one page canonicalizes to the other, when one page carries a noindex directive, when each headline has a distinctive qualifier the other lacks, when the pages are different page types, when they answer different kinds of search, or when they already link to each other and so declare a hierarchy.

The score rises when the body content is substantially similar on top of the topical overlap, or when internal links across your site describe both pages with the same anchor text, which tells search engines that two different URLs are the answer to the same thing.

Alongside the pair scoring, the report records indexability details for each page, including canonical tags, noindex directives, word counts and detected page type. A conflict involving a noindexed page is a different problem from one between two fully indexable pages, and the report treats it that way.

How to Read Your Report

The report is a shortlist, not a verdict. Here is how to work through it in the order that wastes the least time.

Start with the overall score, but do not act on it

The number at the top combines the highest single conflict on your site with how widespread the overlap is across the pages crawled. It is a temperature reading. Nothing on your site gets fixed by looking at it, so read the summary line and move to the pairs.

Work top down and stop at moderate

Pairs scoring 70 and above deserve attention now. Between 50 and 69 is worth a quick review. Below 50 is context for future content planning rather than a task list. Use the band filters to narrow the list instead of scrolling through everything.

Read the evidence before the score

Expand each pair and look at which signals drove it. This changes what you should do. A pair driven by content similarity is a near-duplicate problem. A pair driven by intent match with low content similarity is a positioning problem, where the pages are different but aimed at the same searcher. The same score can mean either.

Check the confidence rating

High confidence means at least three independent signals agreed and both pages had enough content to compare reliably. Low confidence usually means one page is very thin, or a title or H1 was missing, and the comparison had less to work with. Treat low-confidence pairs as prompts to look at the pages yourself rather than as findings.

Confirm in Google Search Console before you change anything

This tool reads on-page signals. It cannot see your rankings, so it cannot tell you whether two pages are actually competing in results. Open the Performance report, filter by the query the pair appears to share, then switch to the Pages tab with that filter still applied. If both URLs show impressions for the query, the conflict is real. If one URL owns it cleanly, the pages may simply look alike without competing, and the correct action is none.

Use the recommended action as a starting point

Each pair carries one of six actions: consolidate, re-optimize, differentiate, fix the internal links, monitor, or no action. These are chosen from the evidence, not applied as a rule, and the suggested primary page is inferred from depth, content length and internal links. The tool has no access to your performance data, so confirm that suggestion against your own numbers before retiring anything. Each action is explained in detail in the guide, including when a redirect is appropriate and when it destroys a useful page.

Export before you start

Download the CSV so you have a dated baseline, then change one thing per conflict rather than several at once. Re-run the check after four to six weeks. Consolidation effects take time to settle, and judging too early leads to reversing changes that were working.

How we calculate cannibalization risk

Every score is built from the seven weighted signals described above, and each one is shown as a percentage alongside your results so you can disagree with the conclusion. What follows is what the bands mean, where the method stops being reliable, and what happens to your data.

Risk bands

Score ranges and what they mean
Score Band What to do
0 to 29 Low risk Related terminology, different jobs. No action needed.
30 to 49 Possible overlap Worth noting when you plan new content on the topic.
50 to 69 Moderate risk Sharpen titles, H1s and opening content to separate the two pages.
70 to 84 High risk Confirm in Search Console, then consolidate or re-optimize.
85 to 100 Very high risk Usually a merge candidate. Check ranking data before removing anything.

What this tool cannot do

  • It analyzes publicly accessible page content only. It cannot see pages behind a login, in staging, or blocked by robots.txt.
  • It does not know how any search engine ranks your pages, and it has no access to impressions, clicks, positions or search volume.
  • It cannot confirm that cannibalization is actually happening in search results. Only ranking data can do that.
  • It reads server-rendered HTML. Content injected purely by JavaScript after page load may not be counted.
  • Intent classification is a heuristic. It is right often enough to be useful for prioritizing, and wrong often enough that you should read the evidence rather than the score alone.
  • A crawl limited to 50 pages sees 50 pages. On a large site, run several crawls starting from different sections.

Privacy

The checker requests publicly accessible pages on the website you enter, the same pages any visitor or search crawler can already reach. It reads titles, headings, meta tags, links and visible body text in order to build the report.

Crawl data is held in temporary storage so the report can be reloaded, then deleted automatically after 60 minutes. Full page content is discarded as soon as the report is generated, and the report itself is only accessible to the session that requested it.

Reports are not published, not indexable and not shared. Requests are sent one at a time with a delay between them so the site being analyzed is not put under load.

Keyword Cannibalization: Frequently Asked Questions

Direct answers to the questions we hear most often from teams running their first cannibalization check.

What does this keyword cannibalization checker do?

It crawls the publicly accessible pages on the site you enter, builds a topic and intent profile for each one, then compares every plausible page pair on seven weighted signals. The result is a shortlist of pairs that show signs of competing for the same search, each with a risk score, the evidence behind it, a confidence rating and a recommended action.

How many pages can the checker crawl?

You can choose 10, 25, 50 or 100 pages. The default is 50, which is usually enough to reveal the pattern on a small or mid-sized site. On a larger site, run several checks starting from different sections rather than one shallow crawl of the whole domain. Unlimited crawling is not offered because it would put unnecessary load on the site being analyzed.

Does the tool use Google ranking data?

No. It analyzes on-page signals only. It does not know your rankings, impressions, clicks or search volume, and it never claims a search engine has confirmed a conflict. Use it to build a shortlist, then confirm that shortlist in Google Search Console by checking which URLs receive impressions for the same query.

How accurate is the risk score?

The score is a weighted combination of measurable on-page signals, and every component is shown so you can judge it yourself. It is a prioritization aid, not a verdict. Each conflict also carries a confidence rating reflecting how many independent signals agree and whether both pages had enough content to compare reliably.

Why did the checker flag two pages I think are fine?

Usually because the pages share vocabulary and structure even though you know they serve different readers. Expand the pair and look at the intent similarity score. If it is low, the tool already discounted the pair and is reporting it as context rather than a problem. If a pair is clearly wrong, the evidence panel will normally show which signal caused it, which is often two pages sharing a long boilerplate block the crawler could not identify as template.

Why did it miss a conflict I already know about?

The three most common reasons are that one of the pages was outside the page limit, that it sits behind a path the crawler skips such as a login or cart route, or that its content is injected by JavaScript after load and so is not in the HTML the tool reads. Raising the page limit or starting the crawl from that section usually resolves it.

Will the crawler slow down my website?

It should not. Requests are sent one at a time with a delay between them, the page limit is capped, and the crawler honors robots.txt including any crawl-delay directive. It behaves like a single slow visitor rather than a load test.

Can I check a website I do not own?

Yes, as long as the pages are publicly accessible. The tool only reads what any visitor or search crawler can already see, and it respects robots.txt. It cannot access password-protected areas, staging environments or internal network addresses.

Can I export the results?

Yes. Every report has a CSV download containing each page pair, its score and band, the individual signal percentages, the detected signals and the recommended action, plus a separate block for the target keyword analysis. You can also print the report or save it as a PDF from your browser.

What do the target keywords field do?

Adding up to five keywords produces a separate breakdown showing which crawled pages target each term, whether the term appears in the title and H1, how relevant each page is, and what intent each page serves. It answers a different question from the pair analysis: not which pages overlap, but how many pages are chasing a term you care about.

What happens to the data from my analysis?

Crawled page content is processed to produce the report and held in temporary storage only long enough for you to read and export the results. Full page text is discarded as soon as the report is generated, the stored data expires automatically, and the site owner can switch off result storage entirely so nothing persists at all.

How often should I run a check?

A quarterly check suits most sites. Run one sooner if you publish frequently, operate a large blog alongside service pages, run multiple location pages, or have recently migrated or restructured. Those are the conditions where overlapping pages appear fastest. Also run one when you notice the ranking URL for an important query alternating between two of your pages.