How to Transfer Website Hosting

If you click to purchase a product or service based on our independent recommendations and impartial reviews, we may receive a commission. Learn more

Task time:

There are many reasons why you may wish to switch hosting providers – price, we’ve found, is the most popular reason, followed by features. Whatever your thinking, you want to make sure you’re leaving for a better deal than whatever you have now!

If you haven’t yet decided on a new hosting provider, our hosting services comparison chart is a great resource for finding your next provider. If you already have one in mind, and are ready to make the switch, we’ll show you how to do just that:

How to Transfer Web Hosting in 9 Steps

  1. Sign up to a new hosting provider
  2. Save your website’s files
  3. Export your database
  4. Create a new database
  5. Import your database
  6. Modify your website’s files
  7. Upload your website’s files
  8. Test your website
  9. Update your DNS settings

This article will walk you through how to manually transfer your website hosting using the steps above – but wouldn’t it be nice if someone else just took care of that for you? Some hosts make it easier to move than others, and we’ll also show you which providers offer to take on the site migration process for you.

Sign Up to a New Hosting Provider

The first step in moving to a new hosting provider is to identify where you’d like to move to, and sign up for a plan.

As we mentioned above, some hosting providers will transfer your website hosting for you, so these are the ones we’ll be touching on here. Hosting is a competitive industry, and helping out with transferring a client site helps give some providers the edge over others. In fact, some of our top-rated web hosting providers offer this service:

1. Bluehost

Bluehost is our top-rated hosting provider (check out our full Bluehost review to find out why), and has a team of experts on hand to migrate your site over to its servers.

Price of migration: $149.99

What’s included: Fast total migration of up to five websites and 20 email accounts, with extra follow-up support. A lot of hosting providers which offer ‘site migration’ actually expect you to do some of the technical prep work yourself – Bluehost doesn’t, and this is reflected in the price you pay.

Exemptions/requirements: Not available for reseller, VPS, or dedicated hosting plans

How to access: Add the migration option to your account, or get in touch via Bluehost’s live chat

2. DreamHost

DreamHost is a good all-around hosting provider, with generous storage and low ongoing prices. While help and support isn’t generally its strong suit, free migration (for WordPress sites) is a huge plus.

Price of migration: Free for WordPress sites, $99 for others

What’s included: Total site transfer within 48 hours (provided emails are replied to quickly). Customers will have to transfer/arrange for a new SSL certificate, although advice will be given on this. DreamHost also won’t migrate emails.

Exemptions/requirements: WordPress sites must be using WordPress version 3.7 or above

How to access: Submit a ticket to request a migration

3. A2 Hosting

A2 Hosting is a smaller hosting provider with great customer service. Offering free site migration, strong security measures, and an anytime money-back guarantee, it’s no wonder A2 Hosting is consistently so well-reviewed by its customers.

Price of migration: Free

What’s included: Total site transfer within 24-48 hours

Exemptions/requirements: None known

How to access: Follow this step-by-step guide to filling in the A2 Hosting site migration form

Save Your Website's Files

Next, you’ll want to save your website’s files. This may sound intimidating, but it’s actually super simple.

The goal of this is to take a digital image of your site exactly how it is right now, in order to transfer the whole thing – uploads, plugins, the works – over to your new site. It’s super important that you don’t mess around with the files after they’re downloaded – this could wreak havoc on your site’s structure, and lead to broken internal links.

You will be downloading your website files using an FTP (File Transfer Protocol) service. FileZilla is widely considered to be the best FTP tool, and is free to use.

1. Create a file on your desktop

This is where your website will be stored later on. It’s worth including a date within the file name to differentiate it from any future downloads you make.

2. Download the FileZilla Client

Be sure to download the FileZilla Client rather than the FileZilla Server, as this works across all operating systems.

3. Create a new FTP account with your current hosting provider

You need to make sure your hosting account is set up to allow FileZilla to access your files. They will generate a new login and password for you to use within FileZilla as an extra security step. Some hosting providers do not require this extra step, and will just use your normal login details. Your best bet is to Google ‘[your current hosting provider] FTP’ to find out if this extra step is required, and how you can complete it.

4. Link FileZilla up to your current hosting account

Open FileZilla and add your domain name to the Host field, along with whatever username and password you need to use in the fields next to it. In the Port field, enter the number 21. Press Quickconnect.

5. Download files to the folder you created earlier

On the right hand side of your screen, you should see something similar to your hosting portal. On your left, you should see your desktop files. Now it’s just a simple case of selecting all your website files on the right, and dragging them into the new folder you created on the left.

A progress bar will appear so you can easily see what percentage is left to download, and a message will appear when this is complete. The downloaded files will now be visible in your desktop folder.

Export Your Database

Not all websites have to complete this step (or the two below), because not all websites actually have a database. Hopefully you know whether or not yours does – if you’re unsure, it might be worth checking in with your current hosting provider, who should be able to tell you.

Static websites (where the content remains largely unaltered) may not have a database. Any site that allows for user generated content (e.g. comments), or dynamic pages (which change automatically based on where they’re accessed from, or information from other pages/sites), will have a database associated with them.

The most common type of database is MySQL. This is exported using the app phpMyAdmin, which you can easily access from any hosting account using the standard cPanel dashboard.

If you know your database is not a MySQL database, or you can’t find the phpMyAdmin option in your current hosting account control panel, it’s best to check in with your hosting support team.

Here’s how to export your database:

  1. Log into your current hosting account
  2. Open the phpMyAdmin app (stored under ‘Databases’ in your account control panel)
  3. Click on the correct database for your website from the list on the left hand side. If you only have one website, you’ll only see one database
  4. Select the Export tab
  5. Click the Go button
  6. Find the SQL file you’ve downloaded and move it to the same folder as your website files to keep everything in one place

Create a New Database

Before you import your database into your new hosting dashboard, you need to make a blank database first.

First, log into your new hosting account. Again, we’re assuming your database is a MySQL one, and that your new hosting provider uses the standard cPanel dashboard.
  1. Log in to your new hosting account
  2. Open the MySQL Databases section (stored under ‘Databases’ in your account control panel)
  3. Under the heading Create New Database, fill in the chosen name of your new database (put this in the field labelled New Database:)
  4. Click the Create Database button

You’ll then be prompted to create a username and password. Make note of these, and grant the user full privileges when prompted.

Import Your Database

In this next step, we’re taking the downloaded database file and adding it to the new database we just created in our new hosting account.

  1. In your new hosting account, navigate back to the Database section
  2. Select the phpMyAdmin app
  3. Click the + button under your username on the left hand side to see all your databases (including the one you just created)
  4. Select the new database from this list. The message ‘No tables found in database’ will appear (this is what we want!)
  5. Go to the Import tab in the top menu
  6. Click the Choose File button, and select the SQL file you saved earlier. The name of this file should then appear next to the button
  7. Leave all other fields on this page unchanged, and click the Go button at the bottom when you’re done
  8. Your database is now being imported – you’ll see a loading wheel until this is completed, at which point you’ll see a new screen with ‘Import has been successfully finished’ across the top

Modify Your Website's Files

Now your database is safely across with your new hosting provider, it’s time to move your files across, too.

But before we can do that, there’s an extra step for websites with both files and a database. Basically, you need to edit the code of certain files to sync them up with the new database – more specifically its name, the user name you created, and the password.

Don’t worry if you’re not a confident coder – you don’t need to understand what you’re looking at in order to make these changes.  We’re going to be super specific about each edit.

Here’s how you edit the files for Joomla and Drupal, two popular CMS platforms. WordPress is the most popular CMS platform, so we’ve actually made a guide specifically for migrating these sites – switch over to that now if you have a WordPress site.

For these examples, we’re using the following example information: 

New database name: newdatabase

User: wbe123

Password: welovehosting

1. Joomla

File name: configuration.php;

How to edit: Using ‘Ctrl + f’, search the term ‘localhost’ (this should appear not far down the page). Plug in the details for your new database, so the three fields underneath this line read:

public $user = ‘wbe123’ ;

public $password = ‘welovehosting’ ;

public $db = ‘newdatabase’ ;

2. Drupal

File name: settings.php.

How to edit: Using ‘Ctrl + f’, search the term ‘$databases’ (this should appear not far down the page). Plug in the details for your new database, so the three fields underneath this line read:

‘database’ => ‘newdatabase’ ,

‘username’ => ‘wbe123’ ,

‘password’ => ‘welovehosting’ ,

Upload Your Website's Files

Now everything’s synced up, we can go ahead and upload your website files across to your new hosting provider. Again, we’ll do this with FTP.

1. Create an FTP account with your new hosting provider

This is the first FTP action your new account has seen, so you need to create a new FTP user account (you may have had to do this earlier with your old site).

  1. Go to the Files section of your dashboard, and select FTP accounts
  2. Create a new user and password when prompted. Take note of these, and of the Port number (which will probably be 21).

2. Sync FileZilla to your new hosting account

This is the same process as we used to sync FileZilla to your old hosting account back in step 2.4, but with the details you just created for the new one.

3. Upload your website’s files to your new hosting account

Again, you’ll see your desktop files on the left hand side, and the website setup on the right. Your files will have come from the folder labelled public_html, so this is where you should move them now. Just be sure to keep the original structure of the files, i.e. don’t start combining any that weren’t originally combined.

Once this has been successful, you should see the files in the correct place on the right hand side.

Test Your Website

Now it’s time to test your website. As soon as you go any further in the process, you’ll be unable to do this in a private, ‘risk free’ environment – in other words, any errors will be live for the world to see!

Each new host will handle this a bit differently – some will generate a whole ‘staging’ environment, while some will make a temporary URL – so this is a good time to jump back over to check in with their support team, or to search for relevant articles (try googling ‘testing URL’ + [your new hosting provider]).

Needless to say, however you test your website, be thorough about it. Make sure all the internal links are pointing to where they should be, that the menus are configured correctly, and that smaller details – like the 404 page – have carried across properly.

Update Your DNS Settings

You’ve now reached the final step of transferring your website to a new host: updating your DNS settings to point your domain DNS to your new host.

DNS stands for Domain Name System, and it basically translates IP addresses (random selection of numbers – hard to remember) into domain names (not-so-random selection of letters – easier to remember). We have a whole DNS guide, but you don’t need to know exactly how they work to make these changes.

Again, the process varies depending on where your domain is registered. What you will need in all circumstances, though, is the nameservers of your new hosting provider.

These often arrive in your welcome email from them, or failing that, you may be able to find them in the General Information section of your cPanel dashboard. There will be a primary and secondary nameserver, and you’re looking for something that looks like ‘fg4531.[yourhostingprovider].com’.

Once you have these, look up the guide to changing your website DNS with your current domain name provider. Once requested, you’ll need to wait anywhere between a few hours and a full day for the transfer to complete.

This is the stage where you’re likely to experience some downtime, so it’s a good idea to action this at a quieter time for your site, and also give your readers a heads up in advance.

How to Transfer Website Hosting: Summary

Now you have successfully transferred your site to your new hosting provider. And it wasn’t as bad as you thought it would be, was it? Let’s recap the steps we’ve taken to get to this point:

How to Transfer Web Hosting in 9 Steps

  1. Sign up to a new hosting provider
  2. Save your website’s files
  3. Export your database
  4. Create a new database
  5. Import your database
  6. Modify your website’s files
  7. Upload your website’s files
  8. Test your website
  9. Update your DNS settings

The week after switching, you should carefully monitor your site, and note any periods of downtime. Also make sure you cancel your contract with your previous hosting provider once you’re satisfied that everything has moved across successfully.

Written by:
I started writing about the wonderful world of the web more than three years ago, and haven’t looked back since. Put simply, there’s never been a more exciting time to get online. Having tested all of the best website builders and ecommerce platforms on the market, myself and the other writers at Website Builder Expert are in a great position to help you do just that. Why wait to get started?


Your email address will not be published. Required fields are marked *