Most migrations go wrong at the DNS step or with email, not with the website files. This checklist follows the order we use when we move our own test sites.
Download the files and database, and restore them somewhere first — a staging site or a local copy. A backup that has never been restored is a hope, not a backup.
Upload files, import the database and update configuration while the old host still serves visitors. Preview the new copy using a temporary URL or a local hosts-file entry.
Reducing the time-to-live on your DNS records to a few minutes the day before makes the switch take effect quickly and lets you roll back fast if needed.
If email is hosted with the old provider, recreate mailboxes on the new one and plan the MX record change separately. Keep the old mailboxes for a week to catch late messages.
Change the DNS records, issue the SSL certificate on the new host, and watch error logs, forms and checkout. Cancel the old plan only after a quiet week.