Migrating a Website Without Downtime
21/07/2026
Migrating a website sounds alarming and is in practice routine. Downtime only happens when someone changes DNS first and starts copying files afterwards. Reverse that order and visitors notice nothing.
The golden rule
Build a complete working copy on the new server, test it, and only then switch DNS. Everything else is detail. In this model the old site keeps serving traffic until the new one is fully ready.
A few days before: lower the TTL
This is the step people skip and the one that helps most. TTL (Time To Live) determines how long DNS resolvers worldwide cache your record. The default is often 14,400 seconds — four hours. That means after the switch, some visitors keep hitting the old server for four more hours.
A day or two before the migration, drop the TTL to 300 seconds. Once that propagates, the cutover takes five minutes instead of half a day. Restore the normal value after a successful move.
Step 1: copy everything
- Files — the whole of public_html over FTP, or faster, as an archive created in File Manager and downloaded in one go
- Database — export via phpMyAdmin or mysqldump
- Mailboxes — the list of addresses, and where possible the mailbox contents
- DNS records — screenshot or write down every existing record, especially MX (email), TXT (SPF, verifications) and any subdomain A records
If you are moving to us, you can skip this part entirely — free migration is included with all plans and we handle the whole process.
Step 2: set up on the new server
Upload the files, import the database, create the database user, and write the new credentials into wp-config.php (or the equivalent config file). Then recreate the same mailboxes with identical addresses.
Step 3: test before switching
Here is the key trick. Edit the hosts file on your own machine so your domain resolves to the new server''s IP:
- Windows: C:\\Windows\\System32\\drivers\\etc\\hosts
- macOS and Linux: /etc/hosts
- Add the line:
123.45.67.89 yourdomain.com www.yourdomain.com
You now see the new server while the rest of the world still sees the old one. Walk the whole site: homepage, contact form, admin login, cart and checkout if you run a store, images, menus. When it all checks out, delete that line again.
Step 4: switch DNS
Change the A record (and AAAA if you use IPv6) to the new IP. Only change MX records if you are also moving email. Traffic shifts over the next 5 to 60 minutes.
Do not cancel the old hosting for at least 7 days. While DNS fully propagates, some visitors still land on the old address — far better they see a working site than an error.
Step 5: after the migration
- Install SSL on the new server — with us it is issued automatically and free
- Confirm http redirects to https and that there is no mixed content
- Send a test email both ways and verify SPF and DKIM records exist
- Watch the Search Console crawl error report for a week
- Measure speed against the old setup — if you moved for performance, TTFB should visibly improve
- Check cron jobs still run (scheduled posts, WooCommerce tasks)
What usually goes wrong
- Forgotten MX records — the site works, the email vanishes. Always test mail separately after a move.
- Wrong file permissions — directories should be 755, files 644.
- Absolute URLs in the database — if the domain changes too, run a search-replace through WP-CLI or Better Search Replace, never plain SQL, because that breaks serialised data.
- Cancelling the old host too early — the most expensive mistake, because without access to the old server there is nothing to roll back to.
If you are considering a move, see what is included on our SEO hosting page — and if you would rather not do it yourself, contact support and we will migrate the site for you.