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

by | Mar 29, 2023 | Wordpress, How To | 5 comments

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.

Ravenous Raven Design
Google Rating
Based on 18 reviews