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
}
}
}
}