Most failed moves are not technical failures. Something was forgotten: an email account, a scheduled task, a DNS record. Work through this list in order.
A week before
- List everything the old host does: websites, databases, email accounts, cron jobs, SSL certificates, 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 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.
The week after
- Watch the old server for new comments, orders or form entries during 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.
Something out of date? Software changes. If a step no longer works, tell us and we will check it and update the page.

