One situation that every SEO faces at one point or another is having to move their site to a new domain.
It seems like it should be easy…Just copy and paste everything from domain-abc.com to domain-xyz.com.
But if you’ve never done it before, it’s a lot harder than you think, and it’s easy to get frustrated.
Today, I’m going to walk you through moving a site from an old domain to a new domain—from a non-technical point of view.
I’ll be doing it within the context of moving a WordPress site, but 95% of it still applies to any other CMS.
When is it time to move?
There are good and bad reasons for moving a website.
It’s a significant decision that will impact every part of your business, so consider it carefully.
There are three good common reasons to move a website to a new domain:
1. You’ve been penalized past the point of recovery – If you’ve been hit with multiple spam penalties and algorithmic penalties, recovery is a long and difficult road. If you didn’t have that much traffic to begin with, you might just want to start from scratch.
2. You need to rebrand – Often, in a new business, you discover that you need to completely change your direction. Sometimes, you’ll want to start over with a new name and a new site.
3. You’ve gotten access to a much stronger domain – If you all of a sudden acquire an extremely authoritative domain in your niche (much stronger than your current one), switching to the new one may save you months or years reaching your traffic goals.
The only times when switching to a new domain is a bad idea are: when it’s a temporary fix or when it accomplishes nothing.
For example, if you have the “thin content penalty”, even if you don’t have it initially with a new domain, you’ll be hit with the penalty again if you don’t clean up the thin content. If you’re going to clean it up anyway, you might as well stay at the original domain.
In addition, don’t keep changing domain names just because you find a new one that sounds catchier. The domain name matters little in your business’ long term success as long as it isn’t ridiculous.
Assuming you have a good reason for wanting to move your WordPress site to a new domain, let’s get started.
Step 1: Prepare for the worst
The first step in moving your site is also the most important.
You need to create a full backup of your current site. This means that you need to download all the content on your hosting servers for your site.
This serves two purposes:
You need a copy of the site to move – Eventually, you’ll need to upload the site’s contents to your new domain. You literally have to backup your site.
It protects you from accidents – As non-technical people, we sometimes make big mistakes. If you mess something up, you can always restore your original site with your backup copy.
The confusing part is knowing what you need to backup.
For most sites (all WordPress sites), you’ll need to make a copy of two parts:
the database(s) – All the content you have written in posts and pages on your website is stored in databases. Databases are composed of tables, where your data is stored. Most WordPress sites will have several tables (e.g., one for posts, one for comments, etc.).
the (static) files – The static files are the backbone of your site. They include the basic WordPress files, theme files, and CSS files.
You’ll want copies of both parts. If you only have the databases, you can put all your content on the new site, but you’ll have to reconfigure all your WordPress settings and pick a new theme.
If you only have the static files, your new site will look like the old one, but without any pages or posts.
To download both of these parts, you have a few different options. I’ll go over them from the easiest to the hardest.
Option #1 – Use a plugin (BackupBuddy): WordPress has plugins for everything, including for backing up your site.
You can use a plugin such as BackupBuddy to back up both parts of your site in just a few clicks.
Once you install and configure the plugin’s settings, go to the “backup” menu in the plugin, and choose to run a “complete backup.”
This will make a copy of both your databases and static files.
Once you do that, give it a few minutes to create your backup.
Then, you can either download a copy of it or send it to cloud storage—the choice is yours.
That’s it—very simple.
The downside is that the plugin is not free. However, if you really want to go the plugin route with no cost, you can try other free WordPress backup plugins.
Option #2 – Use Cpanel’s backup functionality: Most popular hosts offer access to Cpanel.
If you do have access to Cpanel, it’s also pretty easy to make a backup.
Log in to your Cpanel, and look for “Database Wizard” under the “files” section of the main dashboard.
From there, just follow the three simple steps.
First, choose “backup”:
Next, you’ll have to choose what kind of backup you want to make.
This is where you might make a mistake if you’re not paying attention.
You would think that you’d want to make a “full backup,” but you don’t. The reason you don’t want to make a full backup is because you can’t restore a full backup later on, which will make moving the content to your new domain a hassle.
Instead, you’ll have to make a few “partial backups.”
You’ll need both the “home directory,” which will contain all the static files in your hosting account (could be more than one site), and the “MySQL databases,” which are your databases.
Click either one of those, which will load the third step. Click the download button to download a copy, then click “go back,” and do the same for the other part of your partial backup.
Now, you should have a copy of your databases and static files somewhere on your computer or a hard drive. It’s not a bad idea to make a few extra copies—it only takes a second.
Option #3 – Do it the hard way (manually): If for some reason the first two options don’t work, use this last option. It’s a bit harder but still not too complicated if you take it step by step.
First, let’s start by backing up your databases.
In whatever hosting panel you have, there should be a link for “phpMyAdmin”:
Start by selecting the “Databases” menu option at the top:
The menu will show you a list of databases (if you have more than one).
You’ll need to pick the ones used by the site you’re moving.
After you do, you’ll see a list of all the tables it contains:
It’s pretty obvious what each of the tables contains. “wp_posts” contains your posts’ text, while “wp_comments” contains the text of all the comments made on your site.
Select the “check all” button at the bottom, then select “Export” in the dropdown menu right beside it:
Finally, choose the “Quick” export method, leaving the format as “SQL.” Click “Go,” and the download will automatically begin:
Next, you need to back up your static files.
With this option, you’ll use FTP to transfer the files from your web server to your own server (your computer).
If you don’t already have an FTP program, download FileZilla (free).
You’ll need to connect FileZilla to your hosting account. This part can be frustrating as the login details for every host are different.
Search Google for:
what is my ftp login + (name of your host)
Most will have a help page that will help you find your login information. Otherwise, contact support.
Once you’ve figured out your login information, the rest is quite simple. You can copy, paste, and drag files from your server to your computer (and vice versa).
In this case, navigate to the “public_html” folder of your hosting server.
If you only have the one site in your hosting account, just copy and paste the entire folder to your computer.
If you have multiple WordPress sites in your hosting account, download the folder inside of “public_html” corresponding with the site you’re moving.
Now, you should have both your databases and static files on your computer. It’s a little more difficult than the first two options, but it will work.
Step 2: Set up your new home
It’s time to get your new home ready for your furniture (content).
If you’ve already registered your new domain and put it on a hosting server, you can skip this step.
Otherwise, once you’ve registered your new domain name, look for domain name server (DNS) options within your registrar (e.g., NameCheap, GoDaddy, etc.).
The DNS servers tell the registrar where the site is hosted.
You need to get your DNS addresses from your hosting provider.
Most hosting providers will send you an email after you register with two or more DNS server addresses in it. If you can’t find them, contact your host for support.
Once you have done that, select the “restore” function of the plugin, which will guide you through the restore process.
First, you’ll need to upload the file that it gave you when you ran the backup.
Then, you’ll need to enter the database information from before. If your plugin has these options, then you can skip the step of editing wp-config (above) because the plugin will do it for you here:
Once you finish the setup, give the plugin some time to upload the content (it could take up to an hour, depending on the Internet speed and site size). Then, you should be ready to move on to the next step.
Option #2 – Upload through Cpanel: Your second option is to go through Cpanel again.
Click the “Backup Wizard” icon again:
But this time, instead of clicking “Backup” on the first screen, pick “Restore”:
As you can see from this next screen, there’s no way to restore a “full backup,” which is why we did the partial ones in the first place.
Click on the “Home Directory” to restore it first:
Then, use the “Choose File” button to select the backup file with all your content files in it. Then, click “Upload.”
Depending on the size of your backup file, this could take a while, so be patient and don’t navigate away.
Once the process finishes, go back to the second screen, and click on the database restore option. Again, select the database backup you made before, and give it time to upload.
Option #3 – Uploading the hard way (manually): Finally, if you created your backup manually, you can also upload your content manually to your new server.
Start by connecting your FTP software to your hosting account (if it’s a new one, your login will change here).
If your old site had the same theme for a long time, consider updating it to a new one.
A new site often deserves a new theme to reflect it.
Step 6: Don’t forget the SEO
At this point, you have a functioning website. Congratulations!
But if you’re not careful, you could lose your existing search traffic, at least temporarily.
Follow these five steps to minimize the impact that moving your site to a new domain might have on your search traffic.
Step #1 (optional) – redirect old pages: You likely still have visitors going to your old domain, whether they get there from search engines, old links, or bookmarks.
One of the most important parts of a site move is to redirect each individual page on the old site to the corresponding page on the new site. This way you ensure that all your visitors will be sent to your new site.
The reason why I said this is optional is because if you created a new site to escape a penalty, you may not want to redirect the old pages to the new ones as that could pass the penalty along.