CNET logo Why You Can Trust CNET

Our expert, award-winning staff selects the products we cover and rigorously researches and tests our top picks. If you buy through our links, we may get a commission. Reviews ethics statement

How to Transfer Web Hosting in 8 Detailed Steps

Learn how to transfer web hosting manually, using a WordPress plugin or by requesting a site migration from a web hosting company.

Dianna Gunn Web Hosting Expert
Dianna Gunn built her first WordPress website in 2008. Since then, she's poured thousands of hours into understanding how websites and online businesses work. She's shared what she's learned on blogs like ThemeIsle, BloggingPro and DomainWheel. She now works for CNET as a Web Hosting Expert, creating in-depth guides on web hosting and reviewing the top web hosting companies to help folks preparing to build a website for the first time.
Expertise Web Hosting, Online Business Management
Dianna Gunn
13 min read
colorized laptop surrounded by glowing wi-fi symbols on a purple gradient background.
Getty Images/Viva Tung/CNET

Switching to a new web host can be a great decision if service at your web hosting company has gone downhill or you’ve found a new company with better pricing. You need to know how to transfer web hosting from one company to another properly or risk losing files and breaking elements of your site.

I’ll show you three ways to transfer your site to a new web host: a manual site transfer, site migration through customer service (if it’s available) and transferring your site with a WordPress plugin. I’ll also discuss choosing a new web host, so you only have to make this transfer once.

How to transfer web hosting from one company to another

1. Purchase your new web hosting

You need to have your new hosting plan in place before starting the transfer process. The most complicated part of this process is choosing a web hosting company and plan. There are thousands of hosting companies and many types of web hosting to consider. Choose carefully so you don’t have to switch again when your term ends.

The actual purchase process should be similar to what you experienced the first time you bought hosting. The big difference, if this is the first time you’ve changed web hosts, is that you’ll skip entering a domain during the domain process instead of buying a new domain with your hosting package.

2. Export your website’s backup files

Next, you’ll need to export your website’s backup files to your computer. You can accomplish this using cPanel or your web host’s equivalent, or by performing a manual backup with a File Transfer Protocol program.

Export via cPanel

If your host uses cPanel you can use a quick, automated process to export your backups. I’ll show you how to do this below. cPanel facsimiles, like hPanel from Hostinger, will offer a similar process, but the details may vary, so you’ll need to consult your host’s documentation or reach out to customer service for assistance.

Go to cPanel. You can usually access this from the Websites area of your account dashboard. Some hosts, like HostPapa, have a specific cPanel tab in the account dashboard instead.

Navigating to cPanel in HostPapa web host's portal

Go to Backup. You’ll find this option in the Files area of cPanel.

Downloading a full account backup of your website in cPanel

Select Download a Full Account Backup. You should be able to see this button without scrolling down.

Create a full account backup

Generate the backup. Make sure your backup is set to Home Directory, choose whether you want to receive an email notification and click Generate Backup. This directs you to a page that says your backup is being created.

Generate a full backup of your website when transferring web hosts

Download the backup. Click Go Back on the file processing page to return to the full backup area. When the backup is complete, you’ll see a backup file here that you download by clicking on it.

Downloading a backup of your website from cPanel when transferring web hosts

Manually create a backup

You may need to manually create a backup if your host doesn’t use cPanel or a similar site management tool with an automatic option. You can do this using FileZilla, a free FTP program.

Follow the steps below to manually back up your site:

Download FileZilla Client.This FTP software is specifically designed to move files between a website and your computer.

Download Filezilla FTP client to transfer files to and from your cPanel while transferring web hosts

Create an FTP account. This is a separate username and password used to connect your account to your FTP program. Some hosts don’t require this step, so you’ll want to look up “[yourwebhostname] FTP” -- for instance, “Hostgator FTP” -- in a preferred search engine to find out if this is necessary and how to do it if you need to.

Enter your host info. In the bar near the top of FileZilla, type your web host’s name and the username and password for your hosting account.

Filezilla FTP client lets you enter your web hosts FTP information to access files on your web server

Click Quickconnect.FileZilla will pull data from your host and display the folders that make up your site in a box on the lower right-hand side.

Grab your files. If you’re using WordPress, you’ll need to grab the wp-content directory and the wp-config PHP file. If you’re using another content management system you’ll probably be looking for the publichtml folder. Find the file/folder you need, right-click on it and select Download to pull the files onto your computer.

3. Export your database

If your site uses a CMS like WordPress, you’ll also need to export your site’s database. This is easy to do if you have cPanel:

Navigate to phpMyAdmin. You can find this in the Databases section of cPanel.

Export your database by heading to phpMyAdmin in your CMS

Select your database. You’ll find this on the left-hand side of the page. If you only have one website, you’ll only see one database. If you have multiple sites, you’ll see a name connected to the first website you set up and a plus sign (+). Click the plus sign to see all of your databases and choose the one you want to export.

Select your database to export in phpMyAdmin

Go to the Export tab. You’ll find this in the top menu.

Export a database in phpMyAdmin

Export your database. Click on the Export button. You don’t need to adjust any settings.

Export your database in phpMyAdmin

Make sure your SQL file -- this is the file that stores your database -- is in the same folder as your website files. This will make completing the remaining steps of transferring a website to your new host easier.

4. Create a new database

Next, you’ll need to create a space for your database files at your new host (you can skip this step if your site doesn’t have a database). You can do this in a few steps:

Go to the MySQL Database area. You’ll find the link to the MySQL database section in the Databases area of your new host’s cPanel.

Go to the MySQL database area

Create a new database. Enter a database name into the field provided and click Create Database.

Create a new database in MySQL databases

Open your new database. Head to the phpMyAdmin area of your new web host’s cPanel and click on the plus sign (+) beside the name connected to your site, then click on the database you’ve just created. From here, head to the Import tab.

Importing a database when transferring web hosts

Import your database file. Click Browse and select the SQL file you just downloaded, then scroll down and click Import. You don’t need to change any of the other fields on this page.

Import your database

The database will take a few minutes to import. You’ll be forwarded to a screen that says “Import has been successfully finished” when the process is complete.

5. Modify your files

If you’re using a CMS other than WordPress, you’ll need to modify your files before you move them. This allows them to properly sync with your new database. I’ll show you how to make these changes in two popular CMS tools, Joomla and Drupal.

I’ve chosen some fake credentials to use in these examples:

You'll need to modify some files with CMS options like Joomla or Drupal when transferring web hosts

Replace these credentials with your own when you modify your site files.


File to edit: configuration.php

How to edit this file: Search for “localhost” using CTRL + F. Modify the three lines below this term so they read as follows:

public $user = ‘mso926’

public $password = ‘newhostingsite123’

public $db = ‘mysiteoriginal’


File to edit: settings.php

How to edit this file: Use CTRL + F to search for “$databases”. Modify the three lines below this term so they read as follows:

‘database’ => ‘mysiteoriginal’

‘username’ => ‘mso926’

‘password’ => ‘newhostingsite123’

6. Move your files

Now it’s time to upload your files to your new host. The easiest way to do this is to use an FTP program like FileZilla. If you didn’t download this program during the first step, you’ll need to download it now.

Create an FTP account at your new hosting provider. In a search engine, look up “yourwebhostname FTP” -- for example, “GoDaddy FTP” -- to find out if this step is necessary and how to complete it. If you don’t need to create an FTP account at your new host, you can skip ahead to the next step.

Connect FileZilla to your new hosting account. Type your host name, username and password into the bar near the top of FileZilla and click QuickConnect.

Filezilla FTP client lets you enter your web hosts FTP information to access files on your web server

Grab your website files. Drag them from the computer folder you’ve created -- visible in the lower left-hand quadrant of FileZilla -- to the public_html in the lower right-hand quadrant. You’ll know the files have successfully been transferred when you can see them in the public_html file in FileZilla.

Update your wp-config file. If you’re using WordPress, you’ll need to update the following lines in your wp-config file:

DB_NAME DB_NAME – enter your database name

DB_USER DB_USER – enter your admin username

DB_PASSWORD DB_PASSWORD – enter your admin password

DB_HOST DB_HOST – enter the database hostname; usually localhost, but may vary based on the provider

Save your changes.

7. Test your site at the new host

The next stage of transferring a website to a new hosting company is testing the site. Your new web host provides a private environment, such as a staging site, for you to conduct these tests. You may need to reach out to customer service to access this testing area.

Within the testing environment, make sure:

  • All of your design elements are in the correct places
  • There are no new errors in text formatting or special characters appearing where they shouldn’t be
  • Menu links are clickable and lead to the correct pages
  • Other features are working as intended

If you run into any errors here, you’ll need to conduct some advanced troubleshooting. I recommend reaching out to your new host’s customer support team for assistance.

8. Point your domain to the new host server

If everything works as it should, you can update your domain name system settings to point your domain at the new host’s server. This final step allows visitors’ browsers to pull your website data from the appropriate server. 

I’ll walk you through the process of doing this with a Namecheap domain. Where you’ll find domain management tools varies depending on your registrar, but the overall process will be the same.

Find your host’s nameservers. Your nameservers should be listed in the welcome email from your new host. You might also be able to find them in your account dashboard or even by Googling them.

Open a new tab in your browser and go to the management area for your domain. In Namecheap, you can access this area by logging into your account and clicking the Manage button next to your domain.

Head to the management area of your domain

Switch to Custom Nameserver.You’ll find this option in the Nameservers area of your domain management page.

Switch to a custom nameserver

Copy and paste your host’s nameservers into the space provided. Most hosts will list two nameservers; make sure you add both.

Save your setting changes. This option will appear either beside the nameserver area or at the bottom of the page.

Wait. In my experience, it usually takes a few hours for your DNS settings to update. It can take up to 72 hours, so don’t panic if you don’t get an email saying your updates have gone through right away.

How to choose the best web hosting company

There are many factors to consider when choosing a web company:

Types of web hosting available

The first thing to consider is whether the company you’re researching offers the type of web hosting you need/want.

Here’s a quick run-down of the most popular types of web hosting if you’re not sure what you want:

Shared hosting

Shared hosting stores many websites on one server. These websites share resources like bandwidth and processing power, so there are limitations on how much data (usually 100GB or less) and traffic (typically up to 400,000 monthly visitors) they can accommodate. The cost tends to run between $2-5 a month for the first term and $10-30 a month upon renewal. 

Shared hosting is best for blogs, for-fun hobby sites and small business websites.

WordPress hosting

WordPress hosting is hosting optimized for WordPress, a tool for creating and organizing website content like blog posts. WordPress hosting comes with pre-installed WordPress and may include other WordPress-specific features like automatic WordPress updates. These plans are usually shared hosting and cost $1-2 more than regular shared hosting due to the additional software support.

WordPress hosting is best for blogs, for-fun hobby sites and small business websites built with WordPress software.

VPS hosting

Virtual private server or VPS hosting splits a physical server into several virtual servers and allocates one virtual server to each customer. Every virtual server has dedicated resources, allowing sites to accommodate higher traffic levels (400,000-plus monthly visitors). VPS hosting can cost as little as $10 a month, but most plans cost at least $30 a month.

VPS hosting is best for medium-to-large business websites and sites with complex data needs. VPS hosting also provides some server customization options, so you might choose this hosting type if you want to customize things like your server’s operating system.

Dedicated hosting

Dedicated hosting gives you an entire physical server. This includes massive storage space -- often 1TB or more -- and enough bandwidth to accommodate millions of monthly viewers. You’ll also get full control of your server’s software. Dedicated hosting tends to cost $80 or more each month.

Dedicated hosting is best for large business websites and sites with data or server customization needs that can’t be accommodated by VPS hosting.

Cloud hosting

Cloud hosting stores a website on multiple servers so that if one server goes down, sites can pull data from another server. Cloud hosting is also easy to scale, as growing sites can pull from more servers when they need more resources. Cloud hosting can cost as little as $5 a month, but typically costs $30 or more each month.

Cloud hosting is best for websites with large international audiences and sites expecting massive growth and/or traffic fluctuations.

Pay attention to how many types of hosting a company offers. If you’re starting with shared or VPS hosting, you might eventually need a more advanced type of hosting, and the transfer process is easier if you can stick with the same company.


Site performance is largely based on how you build your website, but there are certain things a web host can offer for optimized performance:

  • Guaranteed 99.99% uptime. This means your site will be continuously accessible. Uptime guarantees are important because visitors who can’t access your site will go somewhere else -- and with over 192 million active websites, there’s always somewhere else to go.
  • A Content Delivery Network. A CDN is a network of connected servers where data is stored. When visitors go to your website, their browser pulls data from the closest server, allowing your site to load faster.
  • Server optimization with caching and other software. Caching creates a fast-access storage space for key data like your website’s layout, improving loading speeds.


All web servers should be secured with firewalls, which are software filters that can catch malware trying to infect your site. Many web hosts also offer Distributed Denial of Service protection, malware scanning and security monitoring to keep your site safe. You may need to install this software yourself if you’re using VPS or dedicated hosting.

Many web hosting plans also include automated backups, duplicates of your site stored away from the main server. This allows you to quickly restore your site if something happens to it.

User experience

Managing your account and website(s) shouldn’t be complicated. The account dashboard should be easy to navigate, there should be an extensive knowledge base and the host should provide a tool like cPanel to simplify managing databases and other high-level aspects of your website.

Customer support

Your web host should provide 24/7 customer support through live chat, email and phone. Customer support should also be quick to respond and have the expertise to assist you with any hosting-related issues you encounter.


Every company will say great things about itself on its own website. Testimonials from real people can be great, but again, companies are only going to publish the best testimonials on their sites. You can get a more realistic idea of how good a company is by looking at reviews on sites like Trustpilot.

You can also check out well-researched lists like our best web hosting and best WordPress hosting lists.

Alternative ways to transfer your website

1. Use your new host’s site migration support

Many web hosts offer free site migration services to help you transfer web hosting from one company to another. I’ve transferred three websites from Bluehost to HostPapa this way.

The process may vary depending on your web host, but in my experience it involves four easy steps:

  • Open a support ticket requesting your free website transfer
  • Send requested information -- typically the username/password of your account with your previous web host and the domain of the site you want to transfer
  • Test the website -- your new host will send you a link to a testing environment where you can make sure everything’s working
  • Point your domain at the new host’s nameservers

The whole process typically takes two or three days from the first message to the final domain transfer.

2. Use a WordPress plugin

You can transfer web hosts using a WordPress plugin like Duplicator

WordPress users can simplify the site migration process by using the free Duplicator plugin. Duplicator allows you to transfer your site to a new host in a few easy steps:

Install the plugin on the site at the old host. You can do this by going to Plugins > Add New, searching for Duplicator, and clicking Install. When the installation completes, click Activate.

Choose to create a new package. You’ll have to refresh the page to see this option.

Duplicator WordPress plugin

Name your package. You can also leave the default name in place. When you’re happy with the name, click Next.

The Duplicator WordPress plugin scans your site and lets you back it up to transfer to a new web host

Duplicator will scan your site files to ensure that it can create a functional package. If all indicators are Good, click Build. If you see Notice, you’ll want to click on the indicator for more details. In my case, the Notice referenced issues that may exist with some budget hosts. I don’t plan to use a budget host, so I created a package anyway.

You can export your site using the WordPress plugin Duplicator to back it up and move it to a new web host

Duplicator will spend the next few minutes compressing your site files. Once it’s complete, choose Download Both Files to get .zip and install.php files.

Move your files to the new site. You can do this by connecting FileZilla to your new host and moving the files from your computer to the new host’s public_html folder.

Final thoughts on how to transfer web hosting

Transferring a website to a new hosting company can give you access to better service and features -- and savings. The process isn’t difficult either; all you need is some patience and an FTP program. If you’re using WordPress, you can also use a migration plugin to simplify things.

Doing it yourself isn’t the only option, either. Many web hosts, including most companies on our list of the best web hosts, offer free site migrations. If you choose one of these companies, all you need to do is ask customer service for help and send key information so they can access your site to complete the transfer. 

How to Transfer Web Hosting FAQs

How do I transfer hosting from one server to another?

You can transfer web hosting from one server to another by downloading backups and moving them to the new server with an FTP program. You can also contact customer support to migrate your site or, if you’re using WordPress, use a plugin like Duplicator to simplify the process.

How do I transfer my website to a new owner?

You can transfer your website to a new owner by giving them access to your hosting account and sending them any files related to website management. If your domain is hosted with a separate registrar, you can either give the new owner access to the full registrar account or initiate a domain transfer.

How long does it take to transfer a website from one host to another?

Transferring a website’s data to a new hosting company typically takes around an hour; it may take longer if your site has a significant amount of data. Updating the DNS to point your domain at the new host’s servers can take anywhere from 2-72 hours.

How do I transfer my URL to a new host?

You can transfer your URL to a new host by pointing your domain at the new host’s nameservers in your domain management area. Nameservers are usually listed in your welcome email and account dashboard. You can also find them by searching Google for “hostname nameservers,” for instance, “Dreamhost nameservers.”