All you really have to do is download the files from your current host and upload them to our host servers via any ftp client ( filezilla, cuteftp or wsftp ) or web publisher, all depends on how complex your website is or what apps you have used to build your website. With that being said here is a more step by step guide.
Backup Backup Backup is Key
Make sure you always have the latest backup if you haven't been diligent at always creating backups. This way you've got a lot of insurance to fall back on. If you haven't made any backups and before you do anything else, make a backup now. Backup all your files anything and everything you can and don't forget any databases you may have that your site relies on. Save 2 copies and store tem in separate places. One will be your working copy and the other an archive. Never underestimate how simple it is to overwrite these files as you make changes or simply mess everything all up.
Not all hosts control panels (cpanel) are the same so it is a good idea to also make a manual backup by downloading all your files as different control panels may not be able to restore the backups made by your old hosts backup wizards. They may also have different directory structures which will put your files trees in a mess. If necessary make a small file in notepad with memos for you to remember the old host server configurations. Don't forget to make the right file transfer type (ASCII, Binary or Auto) as you download. If this is not right chances are you will have hard time getting your site to work on the new host server. Also if you are using a certain script/program/software that is powering your website, you will want to be sure that it is compatible with your new host specs and configuration.
If it is important to you or your business, remember to back up your host account server log files. Log files may not be transferable because different host may log things differently. Best thing to do is to download anyway if you wish and if they have important information you would like to keep and then use a log analyzer on your computer to look at those logs at a later date.
Gathering Information & Tools
1. A Good FTP program which you should have by now. (see above)
2. Get your new host server's DNS
3. A script that tells you the server environments that are installed on your new host server
4. Get the temporary URL IP on your new host so you can check your site before you make DNS changes
5. If your host has control or ownership of the domain name, inform them not to change your DNS until you instruct them to.
6. If you run scripts:
6a. Get a copy of the original sript and instal guide. Sometimes after moving the scripts they just might not work right so you might need to instal from scratch.
6b. Get a list of all server paths such as Perl, Sendmail and Home directory on your new host server
6c. If your script requires special server modules or programs, ensure that they are installed and where. Even though you may have made sure you covered these things before you ordered your new host account, sometimes your new host may have removed it or hasn't installed it yet.
Inform Your Visitors & Customers
It is common and good practice to inform your visitors and customers of your website move. If you run a e-store, this helps assure your customers you have not fled if there is any downtime. Also give an alternate email so you won't lose emails in the transfer. You might also want to give periodic updates prior, during (if there is downtime) and after. If your site is large, doing this is helpful because your visitors can alert you whenever there is a part of the site not working.
Try to schedule the move at a time where there's least traffic. Backup again just before you do the move so you'll have the latest data. Start by first copying or creating your custom error pages onto the new host server. Put a small note in there about the move. You can always remove it later. Then upload the most visible parts of the site first i.e the main pages then move on to the less critical parts of the site. If you have a large site with many divisions you might want to split them across different days and instead move the least critical first. Just ensure you always do a backup before you do any moving. Use the temporary URL to check your site, visiting as many pages as you can.
Once you're satisfied, change your DNS over. This typically takes about 24-72 hours so you have time to make some minor changes if need be. You might want to also take this time to modify your old site?s error pages to inform your visitors of the move and give a new URL if there are URL changes. To help you determine if the DNS has resolved, make a small change on the new pages to differentiate between the old and the new.
After you've moved and the DNS resolved, do not release the old account yet. Keep it as long as two weeks running concurrently. Go back and check the old servers for activity. Check your old email account and if you have a web based contact method on the old server check to see if any communication is left there. Once you're comfortable all email and traffic is correctly directed to the new host server, you can cancel that account.