Skip to main content

Target Search Queries with Cannibalizing Pages

Priority: Critical

Impact: Negative

What issues it may cause

Cannibalizing pages compete against each other for the same target query, diluting your ranking potential. Instead of one well-supported page ranking strongly, neither page receives the full signal it needs, reducing your chances of ranking competitively.

How do you fix it

  • Review the two competing pages and determine which best serves the intent of the target query
  • Consolidate content onto the stronger page and redirect the weaker one, or differentiate the pages so they clearly target distinct intents

  • Update the title, H1, and meta description of the chosen page to clearly reflect the target query
  • Use Page Relevance diagnostics to compare the component-level scores of both pages before deciding which to consolidate onto

What is the positive impact

Resolving cannibalization consolidates relevance signals behind a single page, giving it a stronger foundation to rank for your target query and reducing intent confusion for both users and search engines.

How to fetch the data for this report template

You will need to run a crawl for report template to generate report. When report has been generated and you have crawl id you can fetch data for the report using the following query:

Operation: query GetReportStatForCrawl( $crawlId: ObjectID! $reportTemplateCode: String! $after: String ) { getReportStat( input: {crawlId: $crawlId, reportTemplateCode: $reportTemplateCode} ) { crawlSearchQueries(after: $after, reportType: Basic) { nodes { searchQuery primaryLandingPageUrl searchVolume searchQueryRelevance primaryLandingPageClicksShare landingPagesCount landingPagesSummary } totalCount pageInfo { endCursor hasNextPage } } } }Variables: {"crawlId":"TjAwNUNyYXdsNDAwMA","reportTemplateCode":"target_search_queries_with_cannibalizing_pages"}
GetReportStatForCrawlTry in Explorer
GraphQL
query GetReportStatForCrawl(
$crawlId: ObjectID!
$reportTemplateCode: String!
$after: String
) {
getReportStat(
input: {crawlId: $crawlId, reportTemplateCode: $reportTemplateCode}
) {
crawlSearchQueries(after: $after, reportType: Basic) {
nodes {
searchQuery
primaryLandingPageUrl
searchVolume
searchQueryRelevance
primaryLandingPageClicksShare
landingPagesCount
landingPagesSummary
}
totalCount
pageInfo {
endCursor
hasNextPage
}
}
}
}