# SEO migration checklist and launch record

Bejamas · Updated September 8, 2026
Guide: https://bejamas.com/insights/migration/how-to-preserve-seo-during-a-website-migration

Copy this file for your project. Replace the example rows before using it as a launch record. Keep one row per old URL; a redirect is only appropriate when the destination continues the original task.

## Project

- Current hostname:
- New hostname:
- Planned cutover (date, time, timezone):
- Release identifier:
- Launch decision-maker:
- SEO owner:
- Engineering owner:
- Content owner:
- Monitoring owner:
- Rollback decision and procedure:

## Baseline

Use comparable complete periods and record country, device, search type, hostname, and reporting timezone. Export the old URL history before removing the old platform. Preserve raw exports separately.

| Measure | Period | Scope/filter | Evidence file or report | Owner |
| --- | --- | --- | --- | --- |
| Search clicks and impressions | | | | |
| Important queries and landing pages | | | | |
| Successful commercial enquiries | | | | |
| Field performance by template/device | | | | |
| Backlinks to URLs changing or retiring | | | | |

## URL inventory and mapping

The row below is an example only. Keep the map in a spreadsheet or database if the estate is too large for this table.

| Old URL | Original intent | Decision | New URL | Expected response | Reason | Approver |
| --- | --- | --- | --- | --- | --- | --- |
| https://example.com/blog/cms-guide | Compare CMS options | Move | https://example.com/guides/choosing-a-cms | One 301 to a final 200 page | Same guide, new section | Example only |
| | | Keep / move / consolidate / retire | | | | |

Do not redirect every retired URL to the homepage. For a consolidation, record why the destination answers the old query. For retirement, record why a relevant replacement does not exist and approve the intended 404 or 410 response.

## Before launch

- [ ] Inventory includes crawl, sitemap, analytics, search, and backlink sources.
- [ ] Every changed URL has an approved destination or retirement decision.
- [ ] Content owners have reconciled important text, media, links, and downloads.
- [ ] Redirect tests check the final destination, response, and number of hops.
- [ ] Internal links point directly to current pages and valid fragments.
- [ ] Indexable pages have the intended canonical, title, description, and visible content.
- [ ] Production robots settings permit the pages intended for search.
- [ ] Private, preview, application, and thank-you pages follow the agreed noindex policy.
- [ ] Sitemap lists canonical, indexable, successful URLs only.
- [ ] Structured data matches visible content, authors, dates, and claims.
- [ ] Important templates and markets pass the agreed rendering and performance tests.
- [ ] Forms reach the intended destination; the server success event fires once.
- [ ] Analytics separates production from preview and recruitment/tools from commercial demand.
- [ ] Launch owner has reviewed open defects and recovery conditions.

## Test evidence

Example only: a redirect can pass the HTTP check and still fail because the new page serves a different intent.

| Source URL or test | Expected result | Actual result | Checked at | Evidence | Owner | Status |
| --- | --- | --- | --- | --- | --- | --- |
| /blog/cms-guide | 301 then /guides/choosing-a-cms, 200, self-canonical, guide visible | | | | | Pending |
| | | | | | | |

## On production after cutover

- [ ] Recheck important old URLs against the deployed redirect configuration.
- [ ] Crawl the production hostname and test linked assets and fragments.
- [ ] Verify no staging noindex or robots block was carried into production.
- [ ] Fetch the deployed sitemap and submit its canonical URL in Search Console.
- [ ] Inspect representative priority URLs in Search Console and record live-test results.
- [ ] Confirm important content is present in the initial HTML or rendered output used by search.
- [ ] Confirm successful enquiry delivery using the agreed controlled test procedure.
- [ ] Record the deployment time and any accepted exceptions.

A successful live inspection or indexing request is not proof of indexing. Record the actual index status when Search Console reports it.

## Monitoring record

Compare each old/new URL pair as one series. Compare equivalent periods and investigate site changes alongside seasonality and traffic mix. Keep funnel completion rates separate from total submission counts.

| Period | Old + new URL group | Clicks | Impressions | Successful enquiries | Index/crawl findings | Decision and owner |
| --- | --- | --- | --- | --- | --- | --- |
| | | | | | | |

## Exceptions and follow-up

| Issue | User/search impact | Owner | Due date | Accepted by | Resolution evidence |
| --- | --- | --- | --- | --- | --- |
| | | | | | |

Keep redirects and their tests after the launch project ends. Update this record when a destination changes so future teams can explain the mapping.
