How to Move a Website From One cPanel Host to Another

Have you ever had a reason to want to move a website from one hosting company to another? Maybe you’ve had problems with the host’s support department and you’re an unhappy customer. Or perhaps you’ve simply outgrown your current host. If you plan to move your site from one host using the popular cPanel control panel to another host using cPanel, you have a couple of different options for transferring your site or blog.

In order to walk you through the site transfer steps, I’m going to use a WordPress blog as an example. This way you can see not only how to transfer static site files, but also sites involving a database transfer. This site isn’t complex — a few test posts and random plugins on a domain name I’m not ready to use for an official site yet. But the steps should closely mirror those of much larger and more complex sites on a similar back end CMS.

Note that images in this tutorial are taken from the HostGator cPanel installation only to avoid confusion in showing two, and yours may look different or have slightly different features. If you cannot find a feature mentioned here in your own cPanel installation, please contact your host directly for assistance.

Quick Transfers

If you plan to move everything on one cPanel server to another cPanel server, you can probably take advantage of a simplified transfer option. cPanel offers a full backup option which you can “restore” on your new host’s server. The two screenshots below show you where in cPanel to do this.

cPanel backups
cPanel Backups Option
Create a full backup in cPanel.
Create a full backup in cPanel.

Please note that you will still have to update your domain name server settings with your domain registrar (telling the domain name to point to your new host’s server). Follow the instructions in the manual transfer guide below for DNS setting changes.

Manually Transfer a Site from One cPanel Host to Another

What happens if you have multiple websites on your original server but you only want to move one site to a new cPanel host? Maybe you want to split your sites across multiple accounts. The quick transfer option above won’t work. Instead you can move the site manually. Here are some instructions to help you do that.

Note: If you are using a content management system (like WordPress), it is important to ensure that your original site is running on the latest version of the CMS. This way base files from the existing site will match those from a fresh download if you’ll need to install one on your new host’s server for any reason.

1. Download and backup your site files. You can do this using your favorite FTP service or you can compress your site folder and download it directly from your cPanel File Manager. Note that if you have a large site you may have to download your site files in several smaller groups to avoid violating usage terms (tying up too many server resources with a large download).

cPanel site download
Highlight your site’s folder. Click compress. Highlight compressed folder. Click download.

2. Export and backup your database. You can use phpMyAdmin for this. See the screenshots below for assistance. If you have a large database, you may need to request assistance from your current host. A 50mb database required support’s assistance in the past for me because my download size was limited and I therefore wasn’t getting the full database backup. This will depend entirely on your host’s policies.

Access phpMyAdmin in cPanel
Access phpMyAdmin in cPanel

 

Choose your database and then click "export."
Choose your database and then click “export.”

3. Set up your domain name on your new hosting account. If the domain will be the primary domain name, you’ll include this information when you set up the hosting account. Otherwise you can install it as an addon domain if your host allows you to host multiple sites on the same account.

cPanel addon domains
cPanel Addon Domains
Create an addon domain
Create your addon domain.

4. Set up a new database with your new host. You’ll also need to set up a database username and associate that name with the database. Ideally keep the database name, database username, and user password the same as they were under the old host. If you choose to change them, be sure to update your configuration file (wp-config.php with WordPress).

mysql databases
Access your mysql databases.
Create a database. Create a username. Then associate the two.
Create a database. Create a username. Then associate the two.

5. Import your database. Again, you can do this in phpMyAdmin. Make sure you import data into the new database you created.

Choose your new database. Click "import." Choose your previously exported database file.
Choose your new database. Click “import.” Choose your previously exported database file.

6. Upload your site files to the new hosting account. Again you can use your favorite FTP service, or you can do this through the cPanel file manager. Make sure you’ve already updated your configuration file settings to match your database settings on the new hosting account.

cpanel upload
Highlight the location where your site folder should be uploaded. Click “upload.”

7. Preview your site. If your site is installed as an addon domain, you should be able to preview it live on a subdomain of your main domain name. For example, let’s say DomainA.com is the primary domain on your new hosting account, and you just moved another site to that hosting account as an addon domain (DomainB.com). You can’t access the new site at its own domain name until you update settings with your domain registrar (the next step). But before doing that, you can preview the site to make sure everything is working properly at a subdomain like http://DomainB.DomainA.com.

8. Get your new host’s domain name server (DNS) settings. You may have received this in your welcome email when you signed up with the hosting company, or you may need to look in their website’s support section. The DNS settings will be in the following format, and your host should provide at least two:

ns1.yourhost.com        ns2.yourhost.com

9. Update your DNS settings with your domain registrar. Below is a screenshot from GoDaddy’s domain manager as an example of where you might change your DNS settings. Please check with your specific domain registrar for instructions if you aren’t sure how to update the name servers.

Godaddy DNS settings
Highlight your domain name. Click “nameservers” to change your settings. (Example applies to Godaddy domains.)

10. Check your new site settings in the CMS and make edits where needed. For example, make sure your permalink structure is set to match the old site’s so old links still work. And make sure plugins you installed are activated and working properly. In WordPress specifically, you will also need to make sure the theme you uploaded (your old site design) is activated. Otherwise your site will feature the design included with the default installation.

11. Remove your files, database, and add-on domain from your previous hosting account. If your moved site was the primary site and there are no other websites on the account, you can now close the original hosting account if you wish.

If you’ve never moved a website from one host to another before, the quick transfer option doesn’t apply to you, and you still aren’t comfortable attempting the move yourself, there’s another option. Many cPanel hosts will move your sites for you if you transfer to them. Some will do it for free, and some will charge a fee (usually not very much, although it may depend on the number of sites being transferred or the complexity of the transfer). If you’re not ready to go it alone just yet, give them a call or send them an email to find out if they can help you get set up on their servers.

Have you ever transferred a website or blog from one cPanel host to another? Did you run into any problems? What kind of transfer did you do, and what was your experience like? Leave a comment below to share your story.

Written by
Jennifer Mattern