Inventory before transfer
List domains, subdomains, databases, users, cron jobs, mailboxes, forwarding rules, certificates, runtime versions, and DNS records. Check case sensitivity, storage consumption, and large-file limits on both systems.
Lowering DNS TTL can shorten a later cutover, but it does not move users instantly and must be done before caches have populated with the old value.
Copy and validate without traffic
Transfer into a destination that is not yet authoritative. Compare file counts and hashes where practical, import databases, recreate scheduled jobs in a disabled state, and test through a hosts-file override or temporary hostname.
For changing databases, plan a final synchronization or a short write freeze. A one-time early copy is not a consistent cutover.
- Confirm application and PHP versions.
- Test login, write paths, email delivery, and scheduled jobs.
- Issue certificates before enforcing HTTPS when possible.
- Keep the source intact during the rollback window.
Cut over with observable checks
Change only the intended DNS records and monitor resolution from multiple networks. Watch HTTP errors, latency, mail queues, background jobs, and database writes. Do not cancel the old service because the homepage loads.
After the agreed rollback window, take a final archive, revoke migration credentials, and document the new recovery procedure.
Resolve the domain through multiple public resolvers, submit a real application write, receive a test email, run scheduled work, and confirm logs show traffic on the destination.