Moving hosts doesn't have to mean a maintenance page. This is the exact playbook we follow for every free migration — steal it.
Set your DNS TTL to 300 seconds a full day ahead. TTL is how long the internet caches your DNS — lowering it first means the final switch propagates in minutes, not hours. This is the step everyone skips and regrets.
Files, database, emails, cron jobs, SSL notes. Two copies, and verify the database dump actually opens. A backup you haven't checked is a rumor.
Deploy files + DB to the new host and preview via staging URL or a local hosts-file entry. Never test with live DNS — that's how you get a split-brain site.
Homepage, checkout/contact forms, login, search, email sending, scheduled tasks. Click everything. Then have someone else click everything.
Re-copy only what changed since step 3 — new uploads, orders, comments:
rsync -avz --delete user@old-host:/var/www/site/ /var/www/site/ mysqldump -u user -p dbname > db-final.sql
The --delete flag matters: without it, deleted files resurrect on the new server.
Point the A record at the new IP, then monitor both servers' logs. Some visitors still hit the old box until caches expire — put it in read-only or redirect mode for a day rather than shutting it off.
Don't cancel immediately. A week of overlap is cheap insurance against "wait, the old contact form wrote to a different database" discoveries.
Free migration on every plan: files, database and email moved within 24 hours, tested on staging before DNS flips. Request migration →