Ad - Web Hosting from SiteGround - Crafted for easy site management. Click to learn more.

How To Transfer A WordPress Website from One Hosting to Another, Manually

Get ready to learn how to transfer your WordPress website like a pro! If you’ve been feeling uneasy about doing it yourself, don’t worry because I’m about to share with you the way most host companies do it.

However, fair warning, this is the advanced manual way, so if you’re not comfortable with code, you may want to skip this one. But, if you’re ready to take the challenge, let’s get started!

Don’t forget to backup your website beforehand – this is always essential when making significant changes!

To be completely honest with you, I’m just making this for my own records because I’m always forgetting steps!

At Your Current Hosting Provider…

1. So, let’s begin. Start by logging into your current web hosting provider and download all of your WordPress files in zip format via FTP or your host’s File Manager. Ensure that you also download the wp-config.php file separately in case you want to refer to it. Do not download the .htaccess file. I recommend starting with a fresh .htaccess file.

How to transfer a wordpress website from one hosting to another, manually - download wp files from hosting ftp
Example of downloading your wp-files over an ftp manager

2. Then, head over to PHP myAdmin to export the SQL file for the WordPress database associated with your website.

You can locate the necessary database name and information inside your wp-config file.

At Your New Hosting Provider…

3. Create a new add-on domain complete with a new username and password. You will be using the domain you are already using for your website that is being transferred. This will create a new folder in your server to place your website files you downloaded earlier.

Some web hosts like Siteground, call an add-on domain a ‘new website’. Here you can find directions on how to create a new website at SiteGround.

Depending on your server, If you are moving over more than one website, an add-on domain should automatically create a new folder in your server for each website installation. Specifically servers that do not isolate each website on your account.

Hosting providers like SiteGround, Cloudways and WP Engine isolate each installation.

4. Using your file manager (or FTP) find the file location that the add-on domain created. Usually the name of this file is the domain name. But some hosts like Cloudways do not use typical naming conventions when creating new website instances.

Upload and Extract the zip files of the website into your new hosting account where the root of the site files will be located. If your are only transferring one website, it will usually be found at the public_html root. If it’s more than one website, it will usually be installed in it’s own folder via what you created in step 3.

Example of a file location: public_html/

Here is an example of what the typical files look like when the root of WordPress and its files are located in the public_html filepath.

How to transfer a wordpress website from one hosting to another, manually - public html filepath root for wordpress

5. Got to MySQL Databases in cpanel (or your new web host equivalent) and Create a new database for the website. Create a new database name and make sure to save the name you are creating in a notepad.

Next, add a new database user and new password. Save information in a notepad.

Next, add the user to the database. Give them all privileges access.

Make certain that you’ve added the new user to the new database and that the new user has permission to access this new database. Because different web hosts let you setup databases a little differently, the process may vary.

If you fail to make this connection, you will find that you will experience issues when trying to get your website to display and work properly.

How to transfer a wordpress website from one hosting to another, manually - adding database at hosting provider
Example of how to create a new database using siteground hosting dashboard

6. Now we need to upload the SQL database file we exported in step 2.

So at your new web host you’re going to access phpMyAdmin. Click the database name you just created in step 5. Then click the import button/tab.

Browse your computer for your SQL file that we downloaded earlier and click GO.

Make sure you are on utf-8 for character set. See the example in troubleshooting at the end of this article.

After the upload, click on your database name again to ensure the contents was properly uploaded. You should see a list of tables now in the structure tab instead of an empty structure tab. Once confirmed the contents are there, we have one last important step.

IMPORTANT: We want to make sure there are no associations with the old hosting account. Click search and type in “public_html” and select all databases and click go. Click Browse on any matches. Edit the file path of any records you find to reflect your new file path at the new server. This particular walk-thru can be found in the video below, starting at the 12:38 mark.

7. Go back to FTP or your file manager in your new hosting account. Locate the wp-config file and change your database credentials to the new information you saved in a notepad back in step 5. This should be different from the wp-config file you saved in Step 1.

How to transfer a wordpress website from one hosting to another, manually - database details wp config file

8. Check the .htaccess file to make sure it contains the needed code to properly display a WordPress website. If your host did not automatically create a .htaccess file in the root were your website files are located, you can easily create a wordpress .htaccess file by following the easy steps from the documentation. In FTP and file manager you can make sure that ‘hidden files’ are viewable. Sometimes this file can be hidden.

9. Now you are ready to point your domain and test the website out. Go to the domain host of your domain name. Change your name servers or locate DNS records to change the IP of the A records for your domain to the new hosting company. If you can’t find it in your dashboard, you can inquire with your new host on what your new IP address or name servers are.

  1. How to transfer your domain name to a new webhost
  2. How to change your DNS records (A records) to only change website records (not email)
  3. How to change your name servers (all DNS records associated with domain, including email)

Why Transfer WordPress Manually?

There are many reasons you would want to manually transfer a WordPress website

  1. Control: When you transfer a website manually, you have more control over the process. You can choose what to transfer, how to transfer it, and when to do it.
  2. Customization: Manual transfers allow you to customize the transfer process to fit your specific needs. For example, you can modify the database settings, file permissions, and other settings to optimize the website’s performance.
  3. Security: Manual transfers can be more secure than automated transfers. By manually transferring the website, you can ensure that all files are checked for malware and that the transfer process is secure.
  4. Speed: Manual transfers can be faster than automated transfers, especially if you have a large website or a slow internet connection. This is because you can transfer files directly between servers without going through a third-party transfer tool.
  5. Flexibility: With manual transfers, you can transfer your website to any hosting provider or server you choose. This gives you the flexibility to choose a provider that offers the features and pricing that best fit your needs.

The benefits of manually transferring a WordPress website include:

  1. Improved website performance: By optimizing the website’s settings during the transfer process, you can improve the website’s performance and speed.
  2. Better security: By manually transferring the website, you can ensure that all files are checked for malware and that the transfer process is secure.
  3. Increased control: By manually transferring the website, you have more control over the transfer process and can make customizations to fit your specific needs.
  4. Flexibility: By manually transferring the website, you can transfer it to any hosting provider or server you choose, giving you more flexibility

Transfer Troubleshooting

If you find that there is an error of some kind during import of the database or that your website just doesn’t look right. Go back to your current host and redownload your website’s database and take note of the ‘character set’ that is being exported. When you go to import this same file to the new hosting provider, that character set should match.

Check that your new database credentials in your wp-config file are the same ones you setup at the new host.

In your new web host’s control panel make sure that your database user has all permissions access and that you’ve added this user to your new database.

I find it best NOT to copy over the .htaccess file from the old host. Instead create a new .htaccess WordPress file.

Clear all cache from the server where available.

This tutorial is meant for a manual transfer of a wordpress website that will retain its same domain name and url’s. Read this if you are looking to change the domain and url of a worpdress website . Or you can watch a short tutorial on using plugins to migrate your WordPress website to a different host and domain.

How to transfer a wordpress website from one hosting to another, manually - database export character set
Charset in the advanced settings of phpmyadmin export of the sql file

Here is the video that trained me in the correct way to migrate a WordPress website from one hosting company to another. I am very grateful to this video. I now know the proper way to transfer sites 🙂

Don’t forget to check out my other articles that might help you.

Author: Heather Valencia

Author: Heather Valencia

Web Designer & Developer

I’ve been developing WordPress websites as a freelance web designer in Spokane since 2010. My passion for building websites is as strong as the dedication I put forth in strengthening my client relationships.

If you’ve valued the content I work hard to provide for free, show your appreciation with a cup of coffee or a tip.

Either way, I’m very appreciative that you came here. Share a post and if you think something is lame, email me and let me know.

Consider a donation to my daugther’s business! 🙂


  1. Karissa Skirmont

    Great article. I am in the process of merging two hosting accounts to MediaTemple.

    One host is HostGator (4 WP multisite installs – 14 sites total that are for clients) and the other is GoDaddy (1 MS – 4 sites and a bunch of old stuff files for my biz).

    On HostGator, I want to use a plugin to clone sites but it needs 60sec max execution time and HG only gives 30sec but the sites also seem slow even in the backend.

    On GoDaddy, I haven’t really had any problems and have had it since 2007. I wanted to upgrade my account to the new one that’s faster with CPanel but that requires a straight up transfer so if I’m going to transfer I might as well combine my hosts as to not be paying two small amounts.

    I haven’t ever transferred servers so I am using this as a learning experience. I’ve started out with a test install, but can’t get it to jiving yet.

    • Heather Valencia

      Hi Karissa, It’s really easy to move a wordress website. Just takes a little bit of time and patients. I stumbled upon a few hiccups while transfering 4 websites of my own to my new server at Siteground. I highly recommend them for hosting, and they will move your first website for free 🙂

  2. Karissa Skirmont

    Hey Heather, So its kinda funny.
    I never competed the transfer I talked about above 3 years ago… It was just so overwhelming with all the Multisites.

    A couple weeks ago I started on moving the one I had left, but then you put your site into coming soon mode. LOL. Saved the cached page but didn’t get back to it till tonight.

    I followed your guide and the video and get to the bottom of this page and see my comment. Haaa I had quite a laugh as I had completely forgotten about it.

    After propagation, it was loading a white “Website Coming Soon” page.

    Called GoDaddy and they couldn’t figure it out. Plus they don’t like to touch Multisites any more.

    After him checking it wasn’t anything simple and not a database error, I finally sorted several things out myself.

    The odd coming soon page was a “default.html” that HostGator must have made. Once that was removed then I got a 500 error.

    The .htaccess file had a bunch of stuff in it so copied what my others networks had in theirs and replaced it. (If you use the WP installatron from GoDaddy it gives you the wrong htaccess content if you are on an older server.)

    The other thing was the “public_html” part needed to be more different.

    From /home2/karissa/public_html/wp-content/’ to ‘/home/content/##/#######/html/kknet/wp-content/’.
    The # were numbers that I’m sterilizing and the /kknet/ is the subfolder that its in.

    All in all it was kinda scary but now I feel so… empowered.
    That I CAN do transfers now! Ha!

    • Heather Valencia

      Karissa, that’s cool you got everything solved. I’ve been there a million times myself down the same road. Thank you for pointing out some of the troubles you’ve had and giving us solutions. That’s great :). As far as htaccess is concerned, in most cases I make a copy of the original htaccess file. Then I always start with a fresh htaccess file and the only code you really need is the basic wordpress code found here. after you’ve made certain the site functions properly, than you can go ahead and add any customizations you want to the file. Thanks so much for your input!!

  3. Tamara Lowrey

    I keep coming back to this because I’m not a web designer and only have to move my website every other year (or more). Thanks so much for this resource! I checked your portfolio and in addition to having a memorable website name, I also love your style!


Submit a Comment

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

Ravenous Raven Design