Skip to content
DNSPeekDocs

Migrate a site

Website migration checklist: a step-by-step playbook

Updated October 2026

A website migration goes wrong in the gap between “the files are copied” and “everyone sees the new server”. This playbook closes that gap: you test the new server while DNS still points at the old one, switch only when everything checks out, and keep the old host until nobody reaches it anymore.

On this page

Every preview link's page has a Migration checklist with the eight steps below: Preview works, Lower TTL, Check the new server, Compare with live, Client sign-off (optional), Prepare DNS records, Switch DNS and Verify & finish. DNSPeek ticks steps off by itself as checks finish, shows how many are done, and opens the current step with its one main action. Steps that depend on you (sign-off, records) have Mark as done; any step you don't need can be skipped. Once the domain points to the new server, steps you left open count as skipped.

1. Lower the TTL a day or two before

The TTL (time to live) of a DNS record tells resolvers how long they may cache it. With a TTL of one hour, some visitors can see the old server for an hour after you switch. A short TTL makes the switch fast, but only once the old, long TTL has expired from caches.

Check the current TTL:

Terminal (macOS / Linux)
# The number after the name is the TTL in seconds
dig example.com A +noall +answer
# example.com.   3600   IN   A   198.51.100.7
PowerShell (Windows)
Resolve-DnsName -Name example.com -Type A | Format-Table Name, TTL, IPAddress

In your DNS provider’s panel, set the TTL of the A record (and AAAA, if you have one) to 300 seconds, still pointing at the old server. Then wait at least as long as the old TTL before switching.

On the link's page, the Lower TTL step reads the TTL straight from your domain's nameserver and shows the change to make (for example 3600 s → 300 s). After you lower it, click I've lowered it, remind me when it's safe: a countdown shows when the old TTL has run out everywhere, and DNSPeek sends you a notification at that moment.

zone file
; Before the move: same IP, short TTL
example.com.   300   IN   A   198.51.100.7

; Switch day: new IP
example.com.   300   IN   A   203.0.113.10

; A few days later: back to a longer TTL
example.com.   3600  IN   A   203.0.113.10

2. Preview the new server

Create a preview link with your domain and the new server’s IP (see Getting started). Click through the pages that matter, sign in, submit a form, and send the link to anyone who should have a look.

3. Run a QA report

Open the link's page from the Links page and click Check the new server (or Run QA report on that page or in the link settings). DNSPeek crawls the site on the new server and lists broken pages, missing files, redirect loops, mixed content, hard-coded temporary URLs and email DNS gaps, with a launch score. Fix critical findings and run it again. Details in QA report.

4. Compare old and new side by side

Available on the Pro, Agency and Provider plans A visual compare screenshots the pages you pick on the live site and on the new server, on desktop and mobile, and highlights every pixel that changed. It catches missing fonts, broken layouts and outdated content that a crawler cannot see. See Visual compare.

5. Get the client’s sign-off (optional)

Available on the Agency and Provider plans Turn on client comments for the link. Your client can pin feedback to any spot on the preview and click Approve launch when they are happy; you get an email. See Client comments.

6. Switch DNS

Freeze content changes on the old site (new orders, comments or posts written there after the final sync would be lost), do a last sync if needed, then change the A record to the new IP.

Before you do, open the Prepare DNS records step. It reads your domain's public records and lists what to change (the A record, a www record with its own address), what needs a decision (an AAAA record left on the old server, an alias elsewhere) and the email records to keep as they are, with a plain verdict on whether email is safe. Copy gives you all of it as a zone snippet for your DNS host. DNSPeek never changes your DNS.

7. Watch propagation

The Switch DNS step opens the switch screen. Change the record, click I've changed the record, and watch the share of public resolvers that return the new IP fill up, resolver by resolver, with the highest TTL still cached. On the Free plan you click Check again; Available on the Pro, Agency and Provider plans on paid plans the DNS alert turns on by itself, the screen re-checks every minute while it is open, and DNSPeek emails you (or calls your webhook) when 90% of resolvers agree. Still seeing the old site? The screen explains how to clear your own DNS cache. See DNS propagation.

Once the domain points to the new server, Verify & finish shows the automatic QA check of the live site, if one ran. Click Finish & get the certificate for a shareable Migration complete page: scores before and after, how long the switch took to spread, the approval and the checklist, without server IPs. Share the link with your client, print it as a PDF, or stop sharing it at any time. The link's page also gives you the site address to paste into an uptime monitor such as Oh Dear or UptimeRobot, so you hear about it if the new server goes down.

8. Cancel the old host, last

Some resolvers and devices hold on to old answers longer than they should. A week after you finish the checklist, DNSPeek reminds you to retire the old host. Before you cancel the old hosting:

  • Wait until propagation is complete, and then a day or two more.
  • Check the old server’s access logs: real visitors should have stopped arriving.
  • Take a final backup of files, databases and mailboxes you might still need.
  • Raise the TTL back to a normal value, such as 3600 seconds.

Copy-paste checklist

checklist
[ ] TTL lowered to 300 s at least one old TTL before the switch
[ ] Preview link opened and key pages clicked through
[ ] QA report: no critical findings left
[ ] Visual compare: no unexpected differences
[ ] Client approval received (if needed)
[ ] Content freeze on the old server
[ ] A / AAAA records updated (all hostnames: example.com, www)
[ ] Propagation complete, alerts received
[ ] No more traffic on the old server
[ ] Backups taken, old hosting cancelled, TTL raised again