1. Take a complete inventory of what’s running
A site is not just PHP files or a public folder. You must identify the domain, the DNS zone, the certificates, the cron jobs, the storage files, the email accounts and the database. Without this inventory, oversights are revealed after production is put into production.
2. DNS, SSL and database failover
Migration often depends on details deemed to be secondary: DNS TTL too long, certificate not regenerated, incomplete dump, old application cache or forgotten environment variables. We must reduce the number of unknowns before the change window.
3. Always keep backspace simple
The true sign of healthy migration is not the absence of risk, it is the ability to return to the previous state quickly if something fails. So keep a usable backup, a previous DNS pointing and a person capable of proofreading the procedure.