ShipworkSite inspection
Cannibalization

Crawlability

PaginationAre paginated pages set up right?Internal searchIs site search eating crawl budget?URL parametersAre parameters creating duplicates?Log analyserWhat does Googlebot actually crawl?Robots builderNeed a robots.txt file?Soft 404sAre pages “not found” but returning 200?JavaScriptCan crawlers see it without running JS?FreshnessIs my site quietly going stale?Robots.txtDoes robots.txt say what I think?

Indexing

Sitemap lastmodAre my sitemap dates valid?SitemapIs my sitemap actually fetchable?IndexingIs Google allowed to index my pages?CanonicalsIs Google indexing the wrong URL?Index signalsDo sitemap and index signals agree?Sitemap generatorNeed a sitemap.xml for my site?Bulk URL statusWhere does each of these URLs really land?Redirect builderNeed the redirect rules?RedirectsAre my URLs answering directly, over HTTPS?

On-page

Keyword ideasWhat are people searching for?SERP previewHow does my page look in Google?Content qualityAre your pages too thin or too alike?Image weightAre images slowing the page?CannibalizationAre pages competing with each other?On-page checkDoes the page use its target phrase?ImagesAre my images accessible and loading?Meta tag builderWhat should my title and share tags say?DuplicatesDo my pages compete for one query?

Links

Orphan pagesWhich pages can no link reach?Link graphHow deep do your pages sit?Anchor textDo links say what they point at?Outbound linksAre external links still alive?Broken linksAre internal links sending visitors nowhere?

Structured data

Rich resultsIs my markup eligible for a rich result?Structured dataIs my product schema valid?Schema coverageDo my key pages carry structured data?Social previewHow does my page look when shared?Schema vs pageDoes markup match the page price?Schema builderNeed valid JSON-LD?

International

Hreflang sitemapDo page and sitemap hreflang agree?HreflangDo my language versions link back?Hreflang builderNeed the hreflang tags?Page DoctorWhy is this page not doing well?Redirect planMy site has dead links — what redirects do I write?Sitemap diffIs anything missing from my sitemap?Robots simulatorWhat does my robots.txt actually block?Can Googlebot?Can Googlebot fetch this URL?
Every error, explainedGuides
Pricing Learn Error guides Run free audit

+1 free check

Welcome to Shipwork

Sign in free and your next check this month is on us.

Continue with GoogleContinue with email

We email you a 6-digit code. No password.

No card needed. Reports and watches follow you to any device.

Are your pages competing with each other?

When two pages target the same query, Google has to choose one, and it may choose the page you did not want. The pages split their own signals and neither ranks as well as a single, focused page would.

Compares the titles and H1s of a set of your pages for overlapping intent. Saved to your account if you are signed in to a paid plan.

How this check works

Shipwork reads the title and H1 of a set of your pages, extracts the significant words, and measures how much any two pages overlap. Pages whose titles and H1s overlap heavily are likely competing for the same query. It is a fast signal from what a crawler reads first, not a full keyword analysis.

What the keyword cannibalization checker compares

The check reads the title and H1 text captured from a set of crawlable pages, extracts significant words, and compares the resulting token sets pair by pair. When two pages cross the tool's overlap threshold, it reports that their titles and H1s target overlapping keywords. If no pair crosses that threshold, it reports that no checked pages target the same keywords.

This is a fast on-page signal, not a query report. It does not read your Search Console performance data, determine which URL ranks for a search, interpret body copy for every page, or prove that Google treats two pages as competitors. Similar title/H1 language is a reason to investigate intent, not an automatic instruction to merge pages.

How to interpret an overlap finding

Open both URLs and ask what job each page serves. Two product pages with similar names may represent distinct products, while a blog guide and a collection page may be trying to answer the same query with different formats. Check the actual query and page data in Search Console if available: repeated alternation between your URLs for the same query is stronger evidence than a title comparison alone.

A clean result means only that no pair in the checked set crossed this text-overlap threshold. It does not prove that no cannibalization exists: pages can compete through different wording, and the crawl may not include every URL. Conversely, shared brand names or standard template wording can create overlap without a real intent conflict. Review both the finding and the page purpose before changing URLs.

Common causes and why they matter

Sites often accumulate two pages for one topic over time: an old campaign page remains live after a new category page launches, several blog posts answer the same question, or location pages use almost identical headings. If the pages satisfy the same intent, signals such as links and relevance can be divided, and a search engine may select a less useful URL. That can also make internal links and analytics harder to interpret.

The opposite mistake is treating every repeated phrase as a problem. Product templates naturally repeat brand and category terms, and similar wording alone is not a reason to delete valid pages. Keyword cannibalization describes competing intent, not simply repeated text. Duplicate titles and near-identical body copy are related checks with different evidence; use the duplicate content check when that is the concern.

Fix the actual intent conflict

If both pages satisfy the same need and one can replace the other, choose the stronger URL, move any unique useful content to it, update internal links, and redirect the retired URL with a permanent redirect. Update the sitemap so it lists the kept canonical page. Before redirecting, confirm there is no distinct product, language, legal or user need that requires both pages.

If both pages deserve to exist, clarify their roles in titles, H1s and body copy. For example, make one a category for browsing products and the other a guide explaining how to choose among them. Add contextual links between them and ensure each page offers content specific to its purpose. A canonical is for duplicate or substantially equivalent URLs, not a general tool for resolving two pages with different content and goals.

When to use related checks

Use this checker to shortlist pages with overlapping title and H1 language. Use content quality to inspect other on-page content concerns and duplicate content for repeated titles or descriptions. Use canonical check to verify which URL a page declares as canonical after you decide that URLs are duplicates or alternate versions.

For query-level evidence, connect Search Console and compare the URLs shown for the same query over time. The keyword cannibalization guide covers how to choose between consolidating, differentiating and re-aiming pages. Shipwork's checker is a diagnostic lead; the page-level decision depends on the search intent and business role of each URL.

Questions

What is keyword cannibalization?
Two or more pages on your site targeting the same search intent. They compete for one query and split the signals that would have made one strong page, which is why a keyword cannibalization checker flags the pairs so you can merge or re-angle them.
How do I fix it?
Usually merge the pages into one, or make each clearly different and link between them. Pick the page you want to rank and consolidate authority onto it.
Is this the same as duplicate content?
Related but not the same. Duplicate content is identical text; cannibalization is two pages aiming at the same query even when the words differ.
How do I check for keyword cannibalization on my website?
Run the checker on your site to compare the titles and H1s of the pages it can read. It flags pairs whose significant words overlap heavily. Then inspect those URLs and, where possible, check Search Console to see whether both receive impressions for the same query. The text comparison is a shortlist, not proof by itself.
Does keyword cannibalization checker use Google Search Console data?
No. This check compares title and H1 text from a set of crawlable pages. It does not query Search Console or identify which URLs rank for a query. Search Console can add evidence by showing whether two pages receive impressions for the same search, but that is a separate analysis.
Should I merge pages with overlapping titles?
Not automatically. First decide whether the pages satisfy the same search intent and whether both have a distinct purpose. Merge and redirect only when one page can replace the other; if they serve different users or stages, make their focus clear and link them contextually. Similar titles can be a template artifact rather than a real conflict.
Is keyword cannibalization the same as duplicate content?
No. Duplicate content means pages repeat substantially the same material; cannibalization means pages target the same search intent, even if their text differs. A site can have either issue or both. Use title/H1 overlap as a clue, then compare page purpose and query performance before selecting a fix.
Can a canonical tag fix keyword cannibalization?
A canonical can consolidate duplicate or equivalent URL versions when one should represent the content. It is not a general fix for two distinct pages aimed at similar queries. Decide whether to merge, differentiate or re-aim the pages first, then use a canonical only when the URLs are truly alternate versions of substantially the same page.

Keep reading

What this reads

  • Reads public pages from outside your network, the way a crawler does.
  • No signup, and nothing is stored on the free checks.
  • One of 83 checks across discovery, content, markup, trust and catalogue data.
83checks
0signups needed
0stored on free checks
Cool, just ran an audit and got some insights! Let’s see if I can fix them :)
Tenta Dev, @DevTenta
Whoah! this site is crazy, nothing to roast at all
Ainreek, @AinreekAI
cool as heck, tried it on my blog and the insights it gave are helpful and not bluff.
Refaat 🍉 (Mouse), @1Mouse__