Migrate your Web site

Tips for moving your Web site and domain name from one Web host to another.

Tech Culture
Autoplay: ON Autoplay: OFF
A lot of people run their Web sites by paying a Web host for server space. The Web host handles the maintenance of the servers, the actual machines, while you handle the operation of your Web site.You want to pick the right host, because moving a Web site is a hassle. And even if you pick wisely, sometimes Web hosts change their terms, lose their quality of service, or even go out of business.

Here are some pointers for moving your Web site to a new Web host.

We're going to assume you already run a Web site and are familiar with how domain name registrars and Web hosts work in general.For this example, we'll migrate a WordPress blog so that we can show how to move files and databases.

Start at your old Web host. Fire up your favorite FTP program; I use FileZilla. It's free and has a lot of the functions that I like. Connect to your old host and navigate to the folder of the Web site that you're moving. Highlight that folder and download it. It should have all your pages, images, all your WordPress files--everything. Downloading the entire folder preserves the directory structure intact.

If you already keep a copy of that site locally, don't overwrite the local copy. Instead, copy the current site into a new folder. That way if you discover any issues, you haven't touched your backup.

Next, log in to your database management interface, likely MyPHP. Select export. If you have multiple sites in the database, select just the tables from the site you're moving. Choose to compress as a ZIP file. And press Go.

Finally, check to see if there are any other site elements in odd places. Sometimes CGI scripts are kept in a directory outside the main site folder. Copy any other data you can think of.

Now go to the new Web host. Create a domain record for the new version of the site, but do not redirect the domain name yet. We want to get the new site up and running first. Reverse the process and upload the folder you just downloaded from the old host.

Now go to the database interface at the new host. Select import, browse to the zipped file you exported from the old site, and press Go.

Finally, restore any of those oddball files. CGI scripts may work a different way with the new host, so read the documentation and put the scripts where they need to go, plus update any paths that change. For instance in WordPress you'll need to update wp-config to point to your new database.

Now test the site BEFORE you change the domain name to point to it. Your new Web host should provide a way to browse to your site even without the domain. Some things may be broken if you had absolute paths coded, but you should get the idea if everything is there. Try out all the important functions.

Finally, you'll need to redirect the domain. Before you do, though, make a slight, insignificant change to one of the pages on the new Web host. That way you'll know when the domain has changed.

Go to your domain registrar's site. I recommend registering your domain at a different company than your Web host. It just keeps things cleaner. You can transfer domains to a new registrar if you need to, but we won't cover that here.

Most registrars have a way to edit the nameservers yourself. These are the servers at your Web host that resolve the domain name to the directory where you have your site. Get the new nameservers from your new host and edit the domain record accordingly.

Now wait.

Sometimes I've done this and the domain switches over almost immediately, and sometimes it takes a day. This is why you made that subtle change earlier. Once you see the change, you know the domain is now pointed at the new site. Now do your full testing, including logging into WordPress to make sure the new database works right.

I recommend keeping the files at the old host for a couple weeks, just until you're sure everything is running properly. But once you're comfortable and the old host's files are out of date anyway, you can go ahead and close that account.