Two pages targeting the same primary keyword split click-through, link equity, and ranking signals — Google arbitrarily picks one to surface and suppresses the other, and the winner rotates over time so neither page builds stable authority. Common causes are legacy blog posts overlapping with new pillar pages, or tag archives competing with category pages. The result is persistent rank volatility on your highest-intent commercial queries.
Low because cannibalization shifts rankings between internal pages without removing the domain from results.
Consolidate overlapping pages into a single canonical URL and 301 the losers, or retarget each page to a distinct long-tail variant. When consolidation isn't viable, set alternates.canonical on the secondary page:
// app/blog/seo-tips/page.tsx
export const metadata = {
alternates: { canonical: 'https://yoursite.com/resources/seo-guide' }
}
seo-advanced.link-architecture.keyword-cannibalizationlow<title> tag and first <h1> from every indexable page. Count all pages and list their primary keyword/intent (derived from title, meta description, and h1). Enumerate any pages that share the same primary keyword or overlapping search intent."2 cannibalization pairs found — /resources/seo-guide and /blog/seo-tips both target 'best SEO practices'".title and h1 to target distinct keywords. Use canonical tags in app/[page]/page.tsx if consolidation isn't possible.