Every webmaster cringes at the thought of moving hosts. Like moving your home it can be messy and sometimes problems arise. But if you follow these simple steps, your move will be less painful.
Backup Backup Backup
If you've been diligent with your backups, you've got a lot of insurance to fall back on. If you haven't, before you do anything else, do a backup now. Backup anything and everything you can and don't forget your database if your site relies on it. Save at least 2 copies and store them separately. One for you to work with, and the other as an archive. Do not underestimate how easy it is to copy over these files as you make changes or simply mess it up.
If you're moving to a host who has as different control panel, make a manual backup by downloading all your files because different control panels may not be able to restore the backups made by your old host. They also have different directory structures so your file trees will be in a mess. If you need to, make a small note file with notepad with memos for you to remember the old server configurations. This will help you as you make changes on your new host server and save the confusion moving back and forth between hosts. Remember to make the correct transfer type (ASCII or Binary) as you download. If your download is not right chances are you'll have a tough time getting your site to work on the new host server.
If server logs are especially important, remember to backup those too. There is no good way of moving logs yet because different hosts may log statistics differently. So the best thing to do is to download it and use a log analyzer on your computer to make references to later on.
Gather Odds & Ends
1. A Good FTP program which you should have by now
2. Get your new host server's DNS
3. It's also helpful to have a script that tells you the server environments installed on your new host server for quick references.
4. Get the temporary URL on your new host so you can check your site before you make a DNS change.
5. If you have your host control the domain inform them not to change your DNS until you tell them to.
6. If you run scripts:
6a. Get a copy of the original installation guide and the script. Sometimes after moving the scripts just do not work right so you might need to install the script from scratch.
6b. Get a list of all the server paths such as Perl, Sendmail and home directory on your new server.
6c. If your script needs special server modules or programs ensure they are installed and where. Even though these might be covered before you ordered the account with the host but sometimes your host has removed it or haven't installed it yet.
Inform Your Visitors
It is common and good practice to inform your visitors and customers of the server move. If you run a e-store, this helps assure your customers you have not fled with their money 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-48 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.