Website migration checklist

Everything to check before, during and after moving a website to a new host, so nothing is forgotten and nothing breaks.

3–4 minutes
Desk with a monitor showing code and small plants

Most failed moves are not technical failures. Something was forgotten: an email account, a scheduled task, a DNSDNS The internet’s phone book. It turns a name people can remember, like example.com, into the number address computers use to find the server. More about DNS → record. Work through this list in order.

How to use this checklist

Moves go wrong in the gaps: the cron jobCron job A task the server runs by itself on a timetable, like an alarm clock for jobs. For example, making a backup every night at 3 a.m. More about Cron job → nobody remembered, the email forwarder set up years ago, the redirect added to .htaccess by a long-gone developer. The point of the checklist is to write down everything the old host does before you start, so nothing silently stops working. Tick items as you go, and keep notes of passwords and settings somewhere safe as you collect them.

A week before

  • List everything the old host does: websites, databases, email accounts, cron jobs, SSL certificatesSSL/TLS certificate The small file that proves a website is really who it says it is and turns on the padlock (HTTPS). More about SSL/TLS certificate →, FTP accounts.
  • Export a copy of every DNS record from your current DNS provider.
  • Check the new server runs the same major versions of PHP and the database, or newer versions your software supports.
  • Note any special server settings: upload limits, PHP extensions, redirects, rewrite rules.
  • Decide whether email moves too. If it does, read moving email first.

A day before

  • Lower the TTLTTL How long other computers may remember a domain setting before checking again, in seconds. Short means changes show up faster. More about TTL → on records you will change to 300 seconds.
  • Take a full backup of the old site and keep a copy off both servers.
  • Tell anyone editing the site about the content freeze.

Moving day

  • Copy files and databases to the new server. See moving WordPress.
  • Recreate cron jobs, email accounts and any other services.
  • Test the new server through your hosts file before changing DNS.
  • Check forms send email, logins work, and uploads succeed.
  • Switch DNS records to the new server.
  • Issue SSL certificates on the new server once DNS points to it.

If the URL changes too

Moving to a new domain, or changing from http to https or between www and the bare domain, needs extra care for search engines:

  • Set up permanent (301) redirects from every old address to its new one, page by page, not all to the home page.
  • Update internal links and canonical tags to the new address.
  • Add the new domain in Google Search Console and use its Change of Address tool if the domain changed.
  • Submit the new sitemap.
  • Keep the old domain registered, and its redirects running, for at least a year.

Rollback plan

Decide before moving day what you will do if the new server fails:

  • Keep the old server untouched and running until the move is confirmed.
  • Note the old A recordA record The line in a domain’s settings that says which server’s address to send visitors to. Like a forwarding address card for your website. More about A record → values so you can switch back in one edit.
  • Know which data might be lost in a rollback (orders, comments, form entries made on the new server) and how you would copy it back.

With a low TTL and the old server still running, rolling back takes five minutes.

The week after

  • Watch the old server for new comments, orders or form entries during propagationPropagation The waiting time after you change a domain’s settings, while copies saved around the internet expire and everyone sees the new version. More about Propagation →.
  • Check error logs on the new server for missing files and permission problems.
  • Confirm backups are running on the new host.
  • Raise DNS TTLs back to normal.
  • Take a final backup of the old account, then cancel it.

What people most often forget

  • Cron jobs and scheduled tasks, such as backups, newsletters and feed imports.
  • Email forwarders and aliases, as distinct from mailboxes.
  • DNS records unrelated to the website: verification TXT recordsTXT record A domain setting that holds a line of text. Services use it to check you own the domain, and email uses it for SPF, DKIM and DMARC. More about TXT record →, DKIM keys, subdomains pointing at other services.
  • FirewallFirewall A gatekeeper that decides which connections are allowed into a server and blocks the rest. More about Firewall → allow-lists at payment providers or APIs that only accept requests from your old server’s IP.
  • Hard-coded IP addressesIP address The number address of a device on the internet, like 203.0.113.10. Computers use it to find each other, the way post uses street addresses. More about IP address → in configuration files or other systems.
  • SFTPSFTP A secure way to copy files between your computer and a server. Like dragging files into a folder, but the folder is on the server. More about SFTP → logins for developers or partners.
  • Renewal dates: the old host may auto-renew before you cancel.

Official documentation

Something out of date? Software changes. If a step no longer works, tell us and we will check it and update the page.