Website migration checklist for speed and search

A step-by-step checklist for moving a site to a new host, domain, platform or design without losing addresses, search visibility or speed.

IntermediateChecklist6 min readUpdated October 30, 2026

In this guide
  1. How to use this list
  2. Before: decide and record
  3. Staging: build and test
  4. Launch: switch and check
  5. After: watch and finish
  6. Mistakes to avoid
  7. Check your own page
  8. Sources

How to use this list

Every step links to the guide that explains it. Skip the items that do not apply, such as language links on a one-language site. The order matters: the staging block must come off at launch, and the redirects must exist before the old address stops answering.

Before: decide and record

Staging: build and test

You can check the redirect map with this script, which reads a file of old,new pairs and reports every row that is not a single permanent redirect to a page that answers. It needs Node 18 or later:

// check-redirects.mjs: node check-redirects.mjs redirects.csv https://www.example.com
// redirects.csv holds one "old-path,new-path" pair per line, for example: /old-page/,/new-page/
import { readFileSync } from 'node:fs';

const [file, origin] = process.argv.slice(2);
const rows = readFileSync(file, 'utf8').trim().split('\n').map((line) => line.split(',').map((s) => s.trim()));

for (const [from, to] of rows) {
  const first = await fetch(origin + from, { redirect: 'manual' });
  const location = first.headers.get('location');
  const target = location ? new URL(location, origin).href : null;
  const second = target ? await fetch(target, { redirect: 'manual' }) : null;
  const ok = first.status === 301 && target === new URL(to, origin).href && second && second.status === 200;
  console.log(ok ? 'ok     ' : 'PROBLEM', from, '->', first.status, location || '-', second ? '->' : '', second ? second.status : '');
}

I tested it against a small test server with five rows. It passed the one correct redirect and flagged a 302, a chain of two redirects, a redirect to a page that returned 404, and an old address that did not redirect at all.

Launch: switch and check

After: watch and finish

Mistakes to avoid

Check your own page

Run the free audit on your most important page now, before any move, and save the report. After the move, run it again on the same page and compare, and check that the new address still answers with a 200 and the old one with a 301.

Sources

Start here

Free website audit

Live Google data for any public page: mobile and desktop.

Mobile + desktop · Lighthouse lab test · Real-user Chrome data when Google has it

Rather have this done for you? Technical SEO · Book a call

Related guides

All guides →