1. Take a full backup
Download your website files and export the database. Confirm that the backup can be opened and store it away from the current host.
2. Check compatibility
Compare PHP versions, extensions, database support and storage. Update incompatible plugins in a test environment first.
3. Restore and test
Upload files, import the database and update connection settings. Test logins, links, forms and checkout before sending visitors to the new host.
4. Switch DNS and monitor
Reduce the DNS TTL in advance where possible, switch records, then watch traffic and errors. Keep the previous hosting available during the transition.