How to Migrate Your Site to a Different Host

Nearly every week we get requests from organizations that want to move their web site to our service. For most people this is a mysterious process and we end up answering the same questions over and over. This post is an attempt to explain the process of site migration, not to our hosting necessarily, but from any system to any other.

Why move?

There are many reasons why you might wish to move your site from one hosting service to another. The primary reasons for moving are cost and level of service. Many hosts do a wonderful job on the front end luring you in with low prices and/or extraordinary claims such as 100% up time or unlimited bandwidth. But once they have you, sometimes service drops off and support requests go unanswered. These companies can get away with this because for many site owners moving from one host to another can be a confusing process so they are willing stay with an unsatisfactory hosting company rather than take on the task of migrating a site. The problem, of course, is finding a reliable host to begin with.  That’s subject for another post altogether.

The Steps Involved

Let’s say you have found another hosting company you believe you would like to work with. While for most sites moving hosts is not a difficult process, there are several steps involved. These steps should be taken in the following order to minimize any disruption of service:

  1. Confirm the new service supports your web site’s needs. For example, if your site is managed using Cold Fusion scripts or ASP or PHP, be sure your new host supports these services.
  2. If your site uses one or more databases be sure you understand the process for migrating your database. This can complicate the issue as an Access database will typically have a different structure than a SQL database. You should check with your web developer about this as he/she will probably need to support this migration if databases are involved.If you are simply moving a MySQL database to another MySQL database, then the process is pretty simple if you can use a tool like PHPMyadmin. With this web based interface to a MySQL database you can simply export all your data from your original host and then, once you have set up the database on your new host, import it. Many hosts now have this pre-installed as part of your hosting control panel.
  3. Gather information about your hosting account regarding what needs to be migrated besides standard web site files and databases. For example email accounts (including usernames and passwords), mailing lists, etc.
  4. Be sure you have full access to all files and data on your current host. This means File Transport Protocal (FTP) access and any database access if necessary. Download all files and data.
  5. Be sure you have control over your domain name and can access the account where your domain name is registered. If you’re not sure what this means you might want to review this previous post on domain name registration basics.
  6. Create the hosting account on the new host server. You should receive new hosting account access information once your account is created. Don’t lose this! In our case we send out a ton of information in our welcome email. You may not need it all, but most will come in handy when you have a question about the service.
  7. Upload your files to your new hosting account. If necessary create any databases and import any data to the new databases.
  8. If you have scripts that connect to databases these will have to be reconfigured to match the new databases access information.
  9. Once everything is uploaded and imported test your site at the new location to be sure everything works properly. You new host should give you a web address where you can test your site before your domain name gets transferred.
  10. Create any domain name based email accounts at your new hosting service. If you don’t have a record of the passwords from the original accounts you will need to make sure your mail clients (Outlook, Outlook Express, Mail, Thunderbird, etc.) are updated to match the new passwords. Hosting companies often have different requirements regarding how email is accessed. Be sure you understand how to configure your mail client or you will get frustrated once your domain name is transferred to the new host.
  11. Login to your domain name registrar account and change the Domain Name Servers (DNS) to point to the new hosting service. This transition can happen very quickly in most cases, but can also take 24-48 hours to propagate throughout the Internet. Because of this potential lag time it’s possible some people who send you email may have their messages routed to the old host while others will have their messages routed to your new host. It’s best to time the DNS switch when email traffic would be the lightest. You might also be able to retrieve any latent messages from your old host by accessing their webmail system. This depends on how their webmail is set up. You might want to check in to that before you start the migration process if missing even one email would be of concern.
  12. Wait until you are satisfied you have all data from the old host and only then cancel that hosting account.

If you are not clear about any of these steps, be sure and consult with your webmaster and/or new hosting service provider for assistance. For our part we often help small sites move at no cost. If your site is database driven, has an ecommerce component or other more complex issues are involved, the migration can become more complicated. While these steps may seem complicated, they are really not for an experienced host or web developer. Don’t let them discourage you from moving to a system that offers better service, support or value.