Grzegorz Graczyk8 min read
Merging the wrong pages can erase useful search coverage. Before you redirect anything, establish whether your URLs genuinely compete for the same task and whether that overlap is associated with weaker performance.
Google Search Console gives you the query and page evidence to investigate. The useful output is a short decision list: consolidate overlapping pages, differentiate pages with distinct roles, or leave healthy rankings alone.
Keyword cannibalization is harmful competition between pages on your own site targeting the same search intent. Two URLs earning impressions for one query are only candidates for investigation. They might serve different needs, appear for different audiences, or have received impressions at different points in the reporting period.
Our guide to tracking keyword rankings by landing page explains how to organize ongoing monitoring around intended URLs. Here, reverse that approach: start with a suspicious query and investigate every page receiving visibility for it.
Look for three things together: substantial intent overlap, a persistent pattern of competing visibility, and evidence that useful search performance is suffering. Search Console alone cannot prove that one page caused another to decline.
Open Performance → Search results and select the Web search type. For a US-focused business, filter the country to United States. Review mobile and desktop separately when investigating a suspected conflict; keep those settings unchanged across comparisons.
Start with the latest completed 28 days versus the previous 28 days. This is a practical review window, not a diagnostic threshold. Extend it for low-volume queries, and consider a year-over-year comparison for seasonal demand. Avoid drawing conclusions from preliminary data.
Enable clicks, impressions, average CTR, and average position. Google's Performance report documentation explains these metrics and their aggregation.
Open the Queries tab and export it to a spreadsheet. Prioritize commercially relevant queries, terms losing clicks, and searches where the expected destination appears to have changed.
Click a query to apply its filter, or add a query filter using Exact query. Check the filter before proceeding; a broad “contains” filter can combine searches with different intentions.
With that query filter active, switch to Pages. Review which URLs received impressions and clicks.
Export the Pages table. Add the filtered query and reporting settings to the exported rows yourself.
Repeat for the comparison period and the remaining priority queries. If you use the date-comparison view, retain both periods' columns.
Exporting the unfiltered Queries and Pages tabs separately does not create query–page pairs. Those are separate summaries. The query filter is what ties each page row to the search term you're investigating.
Use one row per query, URL, and reporting period. Keep these fields:
Query, reported URL, and intended URL
Period, country, device, and search type
Clicks, impressions, CTR, and average position
Reader task, suspected issue, and proposed action
Also save the query's overall performance without a page filter. You'll need it to judge whether visibility shifting between URLs coincides with a wider loss.
All numbers and URL paths below are invented for illustration; they aren't an actual audit export. Use the exact query “customer onboarding checklist,” with United States, mobile, and Web filters throughout. Period A is the previous completed 28-day window; Period B is the following completed 28-day window. In this example, the intended destination is /guides/onboarding-checklist, an instructional guide; /templates/onboarding-checklist offers a downloadable asset. The shared query and filters apply to every row.
Period | Reported URL path | Clicks | Impressions | CTR | Avg. position |
|---|---|---|---|---|---|
A | /guides/onboarding-checklist | 60 | 1,000 | 6.00% | 7.0 |
A | /templates/onboarding-checklist | 20 | 600 | 3.33% | 10.0 |
B | /guides/onboarding-checklist | 25 | 700 | 3.57% | 9.0 |
B | /templates/onboarding-checklist | 57 | 1,100 | 5.18% | 6.0 |
Keep a separate table for the query-filtered chart totals, with no page filter. These illustrative property-level figures represent that separate report; the impressions and positions are not calculated from the page rows.
Period | Query-level clicks | Query-level impressions | CTR | Avg. position |
|---|---|---|---|---|
A | 80 | 1,200 | 6.67% | 6.5 |
B | 82 | 1,300 | 6.31% | 6.2 |
The guide loses 35 clicks while the template gains 37. Query-level clicks rise from 80 to 82, impressions increase, and average position improves slightly, although CTR falls. Adding page impressions would produce 1,600 and 1,800, neither of which equals the separately retained query-level total. Both URLs can receive an impression in the same search.
Record observe as the initial decision. This comparison doesn't establish a query-level loss or repeated switching between URLs. Before editing either page, inspect weekly patterns and each URL's other queries, then check whether the guide and template genuinely serve distinct tasks. The intended guide losing traffic is a reason to investigate; these numbers don't justify a redirect.
Before recommending a merge, remove the query filter, filter to one candidate URL, and open Queries. Repeat for the other URL. A page that looks redundant for one broad term may attract a valuable, distinct group of searches.
For larger audits, the Search Analytics API supports grouping by query and page, with date available for time-based analysis. Request those dimensions together rather than trying to join unrelated totals. The API still has data limitations and doesn't guarantee every row.
A monthly report containing two URLs doesn't establish that they repeatedly traded places. Break the period into weekly windows, or inspect daily patterns when volume supports it. Record which URL receives the query's clicks and impressions in each window.
A sustained shift toward a less suitable page deserves attention. A brief appearance by another URL, followed by the usual pattern, gives you little reason to intervene. Check recent URL migrations, redirects, and canonical changes before treating a replacement as an editorial problem.
Read the pages side by side. Compare their promises, main sections, and next steps. Then inspect the live search results for the query in your target market.
Two “how to build a customer onboarding checklist” guides may perform essentially the same task despite different titles. An onboarding tutorial and a downloadable checklist may serve distinct needs. If the results include both guides and templates, that mixed intent strengthens the case for keeping separate pages with clear boundaries.
Don't assume your preferred product page deserves the query just because it converts well. If searchers are looking for instruction, an educational page may be the better destination.
Compare the query's overall clicks, impressions, CTR, and position under matching filters. If one URL loses clicks while another gains them and total performance remains healthy, you haven't established a loss. If total clicks fall, inspect whether demand, CTR, or positions changed alongside the URL shift.
Handle these reporting details carefully:
Aggregation: Two pages appearing in one search can each earn a page-level impression, while the property-level view counts one. Don't sum page impressions and label the result unique search exposure, or take a simple average of page positions.
Canonical attribution: Search Console assigns most performance data to the canonical URL. The reported page isn't necessarily the exact URL every visitor opened.
Missing data: Query tables omit anonymized queries and some rows. An absent query doesn't prove it stopped ranking. Google also notes that unavailable values shown as “~” or “-” become zeros in exports; treat unavailable position as missing, never rank zero.
These checks help you separate a content conflict from a reporting artifact. A broad decline across unrelated queries should also prompt a wider technical and performance review.
The following examples are hypothetical. Use them to classify the evidence rather than applying an automatic “multiple URLs equals merge” rule.
Evidence | Likely decision | Next step |
|---|---|---|
Two guides answer the same task, repeatedly exchange visibility, and the query group is weakening. | Consolidate | Check each page's unique value, then build one stronger destination. |
A tutorial and template overlap in their introductions but serve different tasks. | Differentiate | Make each page's purpose explicit and link between them. |
A homepage and feature page receive branded-query traffic with healthy results. | Leave alone | Keep monitoring; preserve useful coverage. |
A second URL has scattered impressions with no sustained pattern or clear loss. | Observe | Collect more evidence before changing the pages. |
Choose the destination using intent fit, the full query portfolio, relevant backlinks, and business value. Today's highest position shouldn't decide the URL on its own.
Move useful material into the surviving page, retire the redundant page with a relevant permanent redirect, and update internal links to point directly to the destination. Review sitemap and canonical signals for consistency. Our content audit checklist provides a broader framework for deciding what to preserve before retiring a URL.
Google's canonicalization guidance identifies redirects and canonical annotations as strong signals for duplicate or very similar pages. A canonical tag isn't a general remedy for two distinct articles sharing keywords. Google also advises against using noindex to select a canonical page within your site.
Change the substance, not just the keyword wording. Give the tutorial the explanatory steps and worked examples. Give the template page the usable asset, preview, and instructions specific to that asset.
Align titles, headings, and internal-link anchors with those roles. Reduce repetitive sections and direct readers to the sibling page when they need its depth. Each URL should have a clear reason to exist independently.
Keep complementary pages when each satisfies a meaningful need and you have no convincing evidence of harm. Multiple results for branded searches are a common example, as Semrush's cannibalization guide explains. Record the decision and revisit it if intent or performance changes.
For each intervention, record the hypothesis, affected URLs, baseline query group, owner, and change date. Verify redirects or content changes immediately, then compare completed periods after enough new data has accumulated. Low-volume pages need longer observation.
Track the same queries under the same country and device settings. Our ProjectHQ rank tracker automatically monitors keyword positions and retains historical trends, with country, region, and device targeting. Use those consistent checks alongside your Search Console query–page sheet; keep tracker observations separate from Search Console averages.
Judge success across the affected query group and both pages' former coverage. A surviving URL gaining the headline keyword isn't enough if valuable long-tail traffic disappears.
Prevent repeat overlap by attaching an intended URL and distinct reader task to every content brief. Our workflow for AI-assisted content gap analysis without redundant pages helps turn apparent keyword opportunities into create, update, or consolidate decisions before drafting begins.
Start with a handful of valuable queries showing suspicious URL changes. Export their page evidence, review the competing tasks, and choose one justified intervention at a time so you can evaluate what changed.

Grzegorz is the founder of ProjectHQ and has spent 15+ years in SEO — from technical audits to content strategy that ranks. He builds the product he writes about, so the playbooks here come from running real campaigns, not theory.
Write SEO-optimized articles and track your rankings with ProjectHQ.
Get started