This is the sequence we use when moving customers in. It applies equally if you are moving somewhere that is not us. The order is what matters.
Before You Touch Anything
Take your own backup, files and database, and download it to your own machine. Not a backup at the old host, not a backup at the new one. Yours. This is the step people skip.
Then write down what actually exists: every domain and subdomain, every email address on the domain, any cron jobs, any DNS records that are not the obvious ones. Sites accumulate things nobody remembers.
Establish Where Email Lives
The second step people skip, and the expensive one. Find your MX records and confirm whether mail is handled by the same provider as the website.
If it is, moving hosts moves your email, and that needs planning as a separate job. If it is not, note the records exactly so they survive the DNS change untouched. Nothing sours a migration faster than the website moving smoothly and the mail disappearing.
Build And Test
Copy the site to the new host and test it there before pointing anything at it, using a temporary address. Click the pages that earn money, not just the homepage. Forms, checkout, login.
Lower TTL, Then Switch
A day before, drop your DNS TTL so the change propagates in minutes rather than overnight. Then point the domain, at a quiet hour.
Do Not Cancel Yet
Leave the old hosting running for a week. Both hosts serve the same site during the crossover, which is exactly what you want, and if something is wrong you can point back immediately.
Cancel only once you have watched the new one handle a normal week, checked that email is flowing both ways, and confirmed your backups are running in the new place.
Then get your domain auth code and, if you want, move the registration too. Separately, once the dust has settled.