Before you can start moving your site, you need to sign up for your new host and add your site.
If you only have one site, you probably entered your domain name already when you signed up for your host. However, if you have multiple sites, you might need to create an Addon Domain instead *:
* Addon domains are what cPanel calls additional domain names – your host might use different terminology if it doesn’t use cPanel.
Next, you need to move all of your site’s files to your new host. This might take some time if you have a large site, but you’ll only need to put in a few seconds of manual effort – the rest is just waiting.
The easiest way to move your site’s files is via FTP. To connect via FTP, you’ll need an FTP program – FileZilla is a good free option if you’re not sure where to start, but there are lots of good FTP clients.
Confused by FTP? Check out this full guide to FTP to learn the basics
In addition to your FTP program, you’ll also need the FTP credentials (host, username, password, port) from both your old host and your new host. You should be able to find these in your hosting dashboard, but you can ask your host’s support staff for help if needed.
Once you have that information, open two windows for your FTP program:
In both windows, browse to your site’s main folder:
Select all of the files in Window 1 (old host) and download them to your local computer:
Some FTP programs will let you drag files directly between the two windows, but FileZilla doesn’t currently support this feature. If you’re using a different FTP program, you can check to see if it will let you move files directly.
Once the download finishes, upload all of those files using Window 2 (your new host). You can just drag-and-drop all of the files from your computer into the FileZilla interface.
For a large site, it might take a good bit of time to both download and upload all of the files, so you might want to step away and do something else while you wait.
There are two parts to most websites:
If you just have a static HTML website, you don’t need to move your database because your site doesn’t have a database.
However, most content management systems (CMS) rely on a database to store your content. This includes:
To move your database, you’ll first need to export your database from your existing host. Then, you’ll import it to your new host in the next step.
To export your database, you can use phpMyAdmin, which is a database admin tool that most hosts offer. If your current host uses cPanel, you should see a phpMyAdmin tool in the Databases section.
Once you open phpMyAdmin, you’ll need to select the database for the site that you want to move on the left (you’ll see multiple databases if you host multiple sites).
Once you’ve exported your site’s database from your old host, you need to reverse the process and import it to your new host.
Before you can do that, you need to create a new, empty database at your new host. If your host uses cPanel, you can do that by opening the MySQL Database Wizard tool under the Databases section in cPanel.
While going through the wizard, you’ll be prompted to enter a:
If possible, try to use the exact same database name, username, and password as your old host. This will eliminate the need to update configuration settings. If you don’t remember those details, that’s ok – you’ll just need to update configuration files in the next step.
Once you create your database username, you’ll need to give it all privileges on the next screen:
After creating your new database, open phpMyAdmin at your new host and select the database that you just created using the sidebar on the left.
Ideally, you’ll be finished now. However, some CMS tools use database serialization which can cause issues when you export/import your database like this. WordPress is one example where it’s common to encounter database serialization issues.
Unfortunately, we can’t give one blanket recommendation for all platforms here because it depends on the platform (and you might not even experience any problems).
If you experience issues, you can usually use Google to find scripts that can help you fix the problem for your specific platform. For example, here’s a popular script that can fix WordPress database serialization issues.
Again, it’s hard to give specific instructions here because this step will depend on your CMS and how it’s configured.
However, at this point, you might need to update some configuration details in your site’s configuration files or settings to point to the new database that you created (especially if you used a different database name, username, or password).
Here are tutorials for how to update this information for some of the most popular CMS tools:
If you’re using a different website platform, you might need to turn to Google to figure out how your platform handles configuration files.
At this point, your site should be working on your new host. However, you’ll want to thoroughly test it to make sure it is.
You can’t do this by entering your site’s domain name because your domain name still points to your old host (for now). This is necessary to ensure that you don’t have any downtime during the move.
There are two ways to get around this:
Option 1: Use a temporary URL
Most web hosts give you an option to view your website on a temporary URL before switching domain names.
This temporary URL typically looks something like this:
If you’re not sure where to find this temporary URL, we’d recommend asking your new host’s support for help.
Option 2: Edit your computer’s hosts file
Another option to test your site is to edit your computer’s hosts file to point to your new server. This lets you manually override your computer to tell it to use your new server when you enter yoursite.com (all of your other visitors will still be taken to your existing host for now, though).
First, you’ll need your server’s IP address, which you can find in cPanel (or, your host usually includes this in your welcome email):
Then, you’ll need to edit your hosts file:
How to edit the hosts file on WindowsHow to edit the hosts file on Mac
You can find the hosts file in C:\Windows\System32\drivers\etc. It may be hidden, so you might want to adjust the file display settings to see it.
The hosts file has no extension but it’s in plain text format, which means that you can open it with Notepad or any other text editor (just right-click and tell Windows to open it with Notepad).
At the very end of this file add a new line like this:
Save the file.
After editing your hosts file, you should now see the new version of your site when you browse to your domain name.
Once you’ve verified that your new site works properly, you’re almost finished – just two more steps.
If you’re using email hosting from your old host to create a custom email address – e.g. [email protected] – you’ll also want to set up this email address at your new host before you make the switch.
Otherwise, you won’t be able to receive emails once you update your domain name in the next step.
If you’re using email hosting from your host, you can do this by recreating your custom email addresses at your new host via cPanel:
If you’re using a separate email hosting service (such as G Suite), you might need to change the MX records in the DNS settings at your new host once you point your domain name to that new host in the next step.
Once you’ve verified that the migrated version of your website is working properly, the final step in how to move a website to a new host is to update your domain name to point to that new host.
When you make the update, visitors will be taken to the new version of your site at your new host, with no downtime.
Typically, you’ll do this by changing your domain’s nameservers, which you can control from the service where you purchased your domain name.
First, you’ll need to locate the nameservers for your new web host. You can usually find these in your hosting dashboard or welcome email. Or, you can ask your new host’s support staff for help.
Your nameservers will look something like this (but unique for each host):
Most hosts provide two nameservers, but some will give you three or four different nameservers.
Once you have your nameservers, here are some tutorials for editing nameservers at popular domain registrars:
For example, here’s what it looks like to edit a domain’s nameservers with Namecheap:
Now, you’ll need to wait for a little for the change that you made to your nameservers to take effect. This can take up to 24 hours, but normally it’ll only take 30-60 minutes.
Once the change takes effect, you should be able to access the version of your site at your new host when you go to your domain name.
Take another moment to make sure that everything is working:
If everything is still working, you’re officially finished – that’s how to move a website to a new host without any downtime!
Last updated Apr 13, 2022
Applies to: Hosting