Assuming you do not have shell access on each host,
1. Disable all caching and security plugins on the source site.
2. Export your datababase via phpmyadmin, downloading the .sql file
3. Using your favorite FTP client (e.g., filezilla), download all files from the soruce site.
4. On the new host, create a new empty database.
5. Import the .sql file you downloaded in 2.
6. Edit the downloaded wp-config.php file to match the DB* parameters you used when you created the database in 4.
7. Via FTP, upload all files and directories from 3.
8. Change your DNS to point to the new host.
That should be it.
Once the DNS change propagates, login, re-enable caching and security. You can help with the DNS propagation time by changing the TTL for the domain’s A record to 60 minutes a day or so prior to the migration.
The biggest time sink on this is the download/upload time and depends on the speed of your internet connection. Because you’re moving the database, all IDs are preserved, as are logins, etc.
]]>