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.
Go to Backup. You’ll find this option in the Files area of cPanel.
Select Download a Full Account Backup. You should be able to see this button without scrolling down.
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.
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.
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.
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.
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.
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.
Go to the Export tab. You’ll find this in the top menu.
Export your database. Click on the Export button. You don’t need to adjust any settings.
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.
Create a new database. Enter a database name into the field provided and click Create Database.
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.
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.
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:
Replace these credentials with your own when you modify your site files.
Joomla
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’
Drupal
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.
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.
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.
Switch to Custom Nameserver.You’ll find this option in the Nameservers area of your domain management page.
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.
Performance
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.
Security
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.
Reviews
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
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.
Name your package. You can also leave the default name in place. When you’re happy with the name, click Next.
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.
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.
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.
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.
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.
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.”