Cannibalization & consolidation
How to Merge Pages Without Losing Rankings
A runbook for executing a page merge once you've decided to: a query-preservation map, a merge spec, a launch-day checklist, what Search Console should show in the weeks after, and how to tell a normal dip from a merge that went wrong.
8 min read
You lose rankings in a merge for four reasons: the merged page no longer answers queries the old pages ranked for, the redirects are wrong or slow, signals around the pages still point at the old URLs, or someone panics at a normal dip and changes things mid-recrawl. This guide is the runbook for avoiding all four once you have decided to merge: capture a baseline, build a query-preservation map, write a merge spec, follow a launch-day checklist, and know what Search Console should show in the weeks after.
Whether to merge at all, and which page should survive, is covered in content consolidation: when to merge, prune or leave a page alone. If you are merging because two pages compete for the same searches, start with how to find and fix keyword cannibalization.
The merge, end to end
Baseline
Queries, clicks, links and events for every page involved
Query-preservation map
Every query worth keeping gets a home on the merged page
Merge spec
Winner, outline, redirects, links, sitemap, owner, date
Launch day
Content, redirects, internal links, sitemap, recrawl, annotation
Monitor
Week 1, weeks 2 to 6, month 3, against the combined baseline
Before you start: confirm it is one intent
A merge only works when the pages serve the same search intent. Two pages that rank for overlapping words but answer different needs, such as a template and an article about writing one, should be differentiated, not merged. A quick test: search the main query of each page and compare the top ten results. If they show mostly the same pages, searchers treat the queries as one need and one page can serve both. If the results are different, keep two pages. The search intent guide covers how to read the results page in more detail.
Step 1: Capture the baseline
Once the redirects are live, the old URLs’ data stops growing, and over the following months the history you need to judge the result becomes harder to pull together. Export it first, for every page involved, the winner included:
- Query-and-page pairs for the last three months from the Search Analytics API, Looker Studio or the BigQuery export. The interface export gives separate query and page tables, not the pairs you need.
- Clicks, impressions and average position per page, weekly, for the last 16 months if you can, to see seasonality.
- Search features each page holds today: a featured snippet, a video, an image.
- Links from other sites to each URL, from a backlink tool.
- Internal links pointing at each source URL.
- Key events by landing page from GA4, so you measure business value and not just clicks.
Remember that query rows will not add up to page totals: Google leaves anonymized queries out of query-level tables but counts them in totals, as explained in its performance data deep dive. Use page totals for the before-and-after comparison, and query rows for the preservation map.
Step 2: Build the query-preservation map
This is the step most merges skip, and the main reason they lose traffic. Each source page ranks for queries the winner does not. If the merged page has nowhere that answers them, those clicks are gone, no matter how good the redirects are.
List the queries that bring each source page its clicks. A practical cut-off: the top queries that together make up about 80% of each source page’s clicks, plus any query where the page sits in the top five. Then give every query a home on the merged page:
| Query | From | Clicks, 3 months | Home on the merged page |
|---|---|---|---|
| expense policy template | Winner | 2,940 | H1, intro and the template itself |
| expense policy examples | Tips post | 610 | New section: three examples, kept from the tips post |
| per diem policy | Per diem post | 420 | New section on per diem rules |
| what to include in an expense policy | Tips post | 180 | Existing checklist, extended with two items |
| per diem rates denmark 2026 | Per diem post | 95 | Not kept: belongs on the rates page, which gets a link instead |
These numbers are illustrative. The last row matters as much as the others: deciding a query does not belong on the merged page is fine, as long as you decide it and point it somewhere. What you must avoid is losing a query by accident because its section was cut during editing.
Step 3: Write the merge spec
One page, agreed before anyone edits. It keeps writers, developers and SEO working from the same plan:
| Field | What to write |
|---|---|
| Winner URL | The URL that stays. Keep an existing one unless none fits the merged scope. |
| Source URLs | Every URL being retired, including old variants that already redirect to them. |
| Outline | Built for the merged topic, with each preserved query mapped to its section. |
| Keep and cut | What each source uniquely contributes, and what goes: duplicate introductions, outdated figures. |
| Title and H1 | Written for the main query of the merged page, not copied from the winner. |
| Redirect map | Each source URL to the winner, permanent, one hop. |
| Internal links | Every page linking to a source URL, with the new anchor text where the scope changed. |
| Sitemap, canonical, structured data | Sources out of the sitemap, winner’s lastmod updated, self-referencing canonical, dateModified set. |
| Owner and launch date | One person accountable, and a date that avoids a peak season for the topic. |
A merge is a substantial change, so the winner’s visible updated date and dateModified should move. See what counts as a real content update.
Step 4: The launch-day checklist
Do these in order, on the same day. The order matters: the merged content must be live before anything redirects to it.
- Publish the merged content on the winner URL and check it renders, with its self-referencing canonical.
- Switch on the redirects. A permanent, server-side 301 or 308 from each source straight to the winner. Google’s redirect documentation treats both as a strong signal that the target is canonical, and temporary redirects as a weak one.
- Flatten old chains. Any older URL that redirected to a source should now point directly at the winner.
- Test every redirect: a single 301 or 308, landing on a 200. Test again after the next deploy or CDN change.
- Update internal links to point at the winner directly. Redirects handle links you cannot edit; your own should not depend on them.
- Update the sitemap. Remove the source URLs and update the winner’s lastmod. Google’s site-move guidance suggests keeping a temporary sitemap of old URLs while you monitor, so they are recrawled and the redirects are seen sooner; remove it after a few weeks.
- Request indexing for the winner with URL Inspection. Google says crawling can take from days to weeks and asking again does not speed it up.
- Annotate the date in Search Console with a custom chart annotation, and log the merge in your redirect log: source, target, date, reason.
Keep the redirects for at least a year; Google’s site-move guidance says generally at least one year, and from a user’s point of view indefinitely is better if other sites still link to the old URLs.
Step 5: What to expect in the weeks after
Google has to recrawl each source URL to see its redirect, then reprocess the winner. During that time the numbers move around. The timings below are rules of thumb for a merge of a few pages on a site Google crawls regularly; Google’s own documentation only says that changes can take days to weeks to be picked up, and that rankings can fluctuate while a move is processed.
| When | What is normal | What to check |
|---|---|---|
| Week 1 | Source URLs still appear for some queries; combined clicks wobble | Redirects work, winner is indexed, no 404s in the logs |
| Weeks 2 to 6 | The winner takes over the sources’ queries; position may dip and recover | Winner’s queries against the preservation map, weekly |
| Month 3 | A settled picture | Winner’s clicks and key events against the combined baseline |
Compare like with like. The baseline is the sum of all pages involved over the same weeks before the merge, or the same weeks a year earlier for seasonal topics. Comparing the winner after with the winner before makes every merge look like a win; comparing it with the old winner alone hides losses on the sources’ queries.
Normal dip or real problem?
Do not change the merged page in the first two weeks unless something is clearly broken. After that, these patterns point to specific causes:
| Symptom, after week 3 | Likely cause | Fix |
|---|---|---|
| A source URL still shows in results | Redirect is temporary, chained or not served to Googlebot; or internal links and the sitemap still point at it | Check the redirect with URL Inspection; clean up links and the sitemap |
| Google picks a source URL as canonical | Conflicting signals: canonical tags, links or sitemap entries pointing at the source | Make every signal point at the winner |
| A preserved query lost most of its clicks | The section that answered it was cut or buried | Restore the material and give it a clear heading |
| The winner dropped for its own main query | The merged page lost focus: the intents were not really the same | Tighten the page around the main intent; move the rest to a linked page |
| Search Console reports a redirected URL as a soft 404 | The target does not serve the same need as the source | Redirect to a closer page, or let the source return 404 or 410 |
Undoing a merge is rarely the answer, because it puts Google through a second round of reprocessing. Consider it only when the month-three comparison is clearly worse and the cause is the last-but-one row: two intents that should never have shared a page.
Where Morrison fits
Morrison connects to Search Console, so chat can pull the queries for each page involved and draft the preservation map, read the pages themselves to list what each uniquely contributes, and check backlinks through Ahrefs. Morrison writes the merge spec as a document in the canvas, ready to download as Markdown. Its site index shows the HTTP status and redirect target of every URL, so after launch you can filter for source URLs that are not yet redirecting, and a weekly automation can report the winner’s clicks against the baseline. For a site-wide consolidation programme, a workflow can pull the top Search Console queries for every page in a segment, up to 500 pages a run, so you can spot the overlaps and then plan each merge in chat. See content consolidation planning.
Key takeaways
- Baseline first: export query-and-page pairs and page totals for every URL before any redirect goes live.
- Preserve queries on purpose: every query worth keeping gets a section on the merged page, or a deliberate home elsewhere.
- One spec, one launch day: content, permanent one-hop redirects, internal links, sitemap, recrawl request, annotation.
- Measure against the combined baseline after about three months, and diagnose by symptom rather than reacting to week-one noise.
Sources and further reading
- 1Redirects and Google SearchGoogle Search Central
- 2How HTTP status codes, and network and DNS errors affect Google SearchGoogle Search Central
- 3Site moves with URL changesGoogle Search Central
- 4How to specify a canonical URL with rel="canonical" and other methodsGoogle Search Central
- 5Build and submit a sitemapGoogle Search Central
- 6Ask Google to recrawl your URLsGoogle Search Central
- 7A deep dive into Search Console performance data filtering and limitsGoogle Search Central Blog
- 8Custom chart annotations in Search ConsoleGoogle Search Central Blog

CEO, Morrison
Ulrich is CEO of Morrison and founded Bonzer in 2017, growing it into one of Scandinavia's leading SEO agencies with 900+ clients across Copenhagen, Oslo, and Stockholm. At Morrison he leads strategy, operations and go-to-market, bringing years of hands-on SEO and content work to the platform side of the business.