How to transfer a WordPress blog from Bluehost to SiteGround

Posted on Categories Blogging, Spending, Tips
How to transfer a WordPress blog from Bluehost to SiteGround

After all the problems I had with Bluehost, I decided to migrate my blog from Bluehost to SiteGround. I still have some months of hosting at Bluehost. But I do not want to deal with them anymore. I am sure they capable of messing up again during that time. Thus, I decided to do the transfer as soon as possible. As you read this post now, the website is now hosted at SiteGround.

It took me a bit longer than I thought for the transfer. And I did not have as much time as I needed. So I am a bit late on my blogging schedule. In this post, I am going to show how I did the transfer to SiteGround. I hope this will help realize that it is quite easy to do the transfer. And I hope I can convince you that Bluehost is not a good host.

Creating an account at SiteGround

The first thing that is necessary is to create a new account at SiteGround. They have a lot of different plans. Since my blog has very low traffic, I only need shared hosting. And for now, I only need the smallest plan, StartUp. This plan will cost me 3.95 EUR per month the first year. Which is really reasonable.

If you have more monthly page views than me, you should, of course, decide accordingly. You may need a GrowBig account. At some point, you may even need a dedicated server. But I am far from needing it ;)

Opening an account is pretty easy. Just go to SiteGround website. Go to Web Hosting -> Shared Hosting. Select the plan you want and click Get Started. If you are transferring like me, be sure to check that you already have a domain. Otherwise, you can directly register your new domain with SiteGround.

After that, you have to fill a lot of information about yourself. It is pretty standard information. And you end up filling your payment information. You can also choose the location of your server. Choose the location that is the closest to your target audience.

Creation an account on SiteGround
Creation an account on SiteGround

Then, you have to select the duration of the contract. You can either select 1 month, 1 year, 2 years or 3 years. I would not advice 1 month since there is 12 EUR penalty to choose it. As for 1, 2 or 3 years, it really depends on you. The price for the first invoice is lower than for the next invoices. Therefore, you should take as long as you think you will use it. Then, you have a few options for creating the website. Finally, your account will be set. There will be nothing installed in your account. This is perfect since we are going to transfer everything from Bluehost.

Automatic transfer to SiteGround

SiteGround has a service for automatically transferring one website from a previous host to SiteGround. For this, the previous company would need to use cPanel as well. Since Bluehost use cPanel, this is not an issue. Unfortunately, the service is free only for plan GrowBig and bigger. I am planning to use the StartUp which should be more than enough for this blog for now. For the StartUp plan, you have to pay 24 EUR for a website transfer. Since I am able to do it myself, I will not pay 24 EUR for this. However, if you are not tech savvy, I would urge you to use this service. If you use a bigger plan than me, you should definitely use it since it is free ;)

To ask for this, you can directly set it during the creation of the account. Or you can ask for it after the creation of the account. For this, you can open a support ticket on SiteGround requesting the transfer. You will have to give them your login information to Bluehost cPanel. Make sure to change your password to a non-personal one before you give them your password. Better safe than sorry. Then, they are going to transfer all the contents of your cPanel, including emails, to SiteGround. From what I have read on various blogs, this is a great service that is really working well. I have not tested it myself though.

So I needed to go to the various steps of manual transfer. I am going to walk you through the different steps necessary for the creation. I am only going to cover the transfer of the blog itself. For instance, I am not going to cover the transfer of email accounts. If you have a lot of emails and other things to transfer, you should opt for an automatic transfer. They will transfer everything. Otherwise, it may be difficult to save all the files by yourself.

1. Download your files

I am repeating myself here: If you are not ready for some manual work, you should use an automatic transfer from SiteGround. The manual transfer should not break your old website. But you could end up with a broken new site if you make a mistake. And if you really mess up, you could end up with lost data.

The first thing you need to do is to download all your files from Bluehost. For this, I recommend using FTP software on your computer. If you already have a FTP software, use yours! Otherwise, I recommend FileZilla. The connection is rather easy. In my example, I will use my case of transferring from thepoorswiss.com. If you need to transfer your own domain, do not forget to change everything to your own domain name ;)

You need to connect to ftp.thepoorswiss.com and you need to use your FTP credentials. If you do not know them, go into Bluehost configuration panel (cpanel). Then go to Users and you will find a list of FTP users. For instance, my FTP username was thepoos8. You can also create a new FTP  user with a simple name and password for the purpose of the transfer.

Transfer your website from Bluehost to SiteGround with Filezilla
Transfer your website from Bluehost to SiteGround with Filezilla

Create a directory on your computer where you will download everything. You need to download everything that is inside the public_html directory. You do not need to download .well-known and cgi-bin. Select all the other directories and files and right-click and select download. This will take a while. If you already have a big site and a lot of uploaded files, it could take a few hours. Just let it run until it is done and do not interrupt it. You have time to take a coffee now ;) Or a beer ;)

2. Transfer your database

Now, you need your database. This is going to be faster. Go on your Bluehost cPanel again. Then go to phpMyAdmin. On your left, you will have your WordPress database. Click on it. Then go to Export.

Exporting your database from Bluehost to SiteGround
Exporting your database from Bluehost to SiteGround

Take a note of the database name. In my case, it was thepoos8_WPUHH. And click Go. This should download a file.

Now, you can go to the cPanel of SiteGround. You can go to MySQL Database Wizard.  From there, create a new database. You should choose the same suffix (WPUHH for me), but that is not mandatory. Then, you should choose a username and a password. Take note of all this information (database name, username and password). You will need them later.

Now, you can go to phpMyAdmin (still on SiteGround) again. Select your newly created database on the left panel. Then, you can go to Import. From there, you can choose your database export file you created before.

3. Update your WordPress configuration

Now, you have got your files and your data. Before you sent your files to SiteGround, you need to tell WordPress about your database.

Go into the directory where you downloaded the files from your website. And edit the wp-config.php file. You need to set the following three source PHP lines correctly:

/** The name of the database for WordPress */
define('DB_NAME', 'new_database_name');

/** MySQL database username */
define('DB_USER', 'new_database_username');

/** MySQL database password */
define('DB_PASSWORD', 'new_database_password');

Change the information with the data you collected at the previous step.

4. Upload your files to SiteGround

Ok, now that you have got all your files in your directory, it is time to upload them to SiteGround. First, you need the IP address of the server. Something like 192.168.22.13. You can find it in your configuration panel (cPanel) in SiteGround. A big red button ;)

Go to cPanel in SiteGround
Go to cPanel in SiteGround

From there, you will find your IP address. Then you need your credentials again. Go to FTP accounts and you will find the list of your users. In my case, it was [email protected] Again if you prefer, you can create a new FTP account. Once you have all the information, you can go to FileZilla. Again, you select public_html in the right panel. In the left panel, you find the directory where you saved everything. Select everything you saved before and right-click and choose Upload.

Again, this is going to take a very long time. Even longer than the download. You just have to wait until everything is uploaded. Time for another coffee :) Or another beer (just be reasonable ;) )!

5. Work on the temporary version (optional)

This one is optional. At this point, both of your sites are the same and are living side by side. If you want, you can already start doing some work on the new website. If you do not need or do not want this, skip to the next step. This step is a bit more tech savvy.

You could think that this step is easy. But it is not really straightforward. You can already access your website. If you go to SiteGround in Manage Account > Information and Settings, you will find a button “Access Site by IP”. This will redirect you to your website. The URL will be something like this: http://192.168.20.133/~username/.

It is very likely that if you do that, you will be redirected to your existing website. Why is that? It is simply a feature of WordPress. You are going to your new site, but the new site is redirecting you to the domain. And the domain is pointing to Bluehost. This complicates a bit the matter of editing the newly created website.

There is a way if you really want to do it. You have to change two things. First, you need to edit the .htaccess file of WordPress. Find a block like this:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

And replace it with something like this:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~username/
RewriteRule ^/~username/index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~username/index.php [L]
</IfModule>

And then, you need to upload it again to SiteGround. Then, you need to go back to phpMyAdmin (in SiteGround again).

Be careful here! Modifications of the database should be not be done lightly!

Open your WP database on the left panel. And find the options table in the big list. You should find two lines important here: siteurl and home. They should both be set to your current domain. You can edit a value by double-clicking on it. Edit it and press Enter. You should set them both to the new address given by SiteGround. This should be something like this:

Edit WP database information in SiteGround
Edit WP database information in SiteGround

After this, you can finally access your website at the new URL. If you are still redirected, try in an anonymous window. Your browser could have cached the redirection. At this point, you should be able to edit both sites in parallel. Any change you do to the new site will not be reflected on the old one. For instance, you can prepare a new blog post or change a few things.

Once you are ready with your choice, you should revert both changes that have been made. Change back the data in the database. Edit your .htaccess file again. And upload it once more. Your new website should now redirect again to the old one.

6. Update your DNS

The last step is to tell Bluehost that your domain should now be handled by SiteGround. This is not very difficult to do. You need to change the Domain Name Server (DNS) records of the domain.

First, go to SiteGround in the configuration panel. On the left, you should have the name of two name servers. Something like ns1.us163.siteground.us. Keep this information at hand.

Now you can go to Bluehost. Login into your account. Go to Domains. Then, open the “name servers” tab. You should see something like this:

Change name servers on Bluehost
Change nameservers on Bluehost

You need to check “Use Custom Nameservers”. Set the two information you got from SiteGround. Then Click on “Save Nameserver Settings”. You should be greeted with a confirmation:

Transfer DNS servers from Bluehost to SiteGround
Transfer DNS servers from Bluehost to SiteGround

And that is it. Now, you need to wait for some time until the change comes into effect. In some case, it could be instant. But normally, it takes at least a few hours and could take more than one day. This is a normal delay since DNS servers are using a cache for their records. So you have to wait for the cache to be invalidated and repopulated with your new name servers information. Once this is done, your domain will point to your new host!

Now, you probably are going to ask yourself: How do I know if it is working? Good question! Since both your sites are entirely similar, how can you know which one you are on?

First of all, you can do a whois check.  Enter your domain in the system and they will tell you the name servers that are currently active. If you still see Bluehost name servers that means that Bluehost did not change their record yet. This should be pretty fast.

Aside from this, other checks are a bit more tech savvy. The simplest solution is to wait! If you really want to know, you need to go to the website and find out which IP address is it using. For this, you can use command line tools such as ping, dig or host. Or you can simply use a browser extension such as Website IP for Chrome. Or use the Google Chrome Network Tools to find out the IP address. Once the IP address is the same as your IP in the SiteGround control panel, your new site is officially online. Keep in mind one thing. Your readers can start to use your new site before you or after you. It depends on their configuration. Be sure to keep both sites running for some time. I would probably keep both sites running for one week to be safe.

After one week, you can cancel your hosting at Bluehost. Be careful not to cancel your domain at this point, only the hosting.

7. Transfer your domain to SiteGround (Optional)

This is also optional. You can keep your domain at Bluehost if you want. Since my domain is already paid for more than 200 more days, I plan to keep it there for a while. I cannot think of anything they can do to screw it up. But hey, they already surprised me with their mistakes.

For now, your hosting is done by SiteGround. But your domain is still managed by Bluehost. At some point, it is a good idea to transfer it too. And it is pretty easy. You can go to Bluehost Domain Manager again. Go to the “lock” tab and press the “Unlock your domain” button. Note: if you use the privacy feature, you need to disable it before you can unlock your domain. Then, go in the “Transfer EPP” tab. And copy the EPP Code.

Now, you can go to SiteGround. In the My Accounts page. You should directly find a “Transfer” button on the bottom of the page. From there, you can start the transfer. You will have to fill some information again. You will have to copy the EPP code here. And you will have to pay for the domain for at least one year. You can also opt for the Privacy option that will hide your contact information from the public. And after the transfer was initiated by SiteGround, you can go back to BlueHost and authorize it. For this, you go again to Bluehost Domain Manager. In Transfer EPP tab. And you allow the transfer. You also have to confirm it by mail.

Once everything is done, the domain will be managed by SiteGround.

Conclusion

This is it! If you follow carefully these steps or if you use the automatic transfer service, your site should now be on SiteGround!

It took me around 2 hours to do the transfer. Including the time waiting for the transfer of the files. It is not a very complicated process, but you need to be careful. And keep in mind that I am a computer scientist. Even though it is not my area of expertise nor something I enjoy, it is not the first time I am doing this.

If you have any question about the transfer, you can ask any question on the comments below. I tried to make it simple to follow. Again, if you do not feel comfortable doing the transfer manually, simply pay for the automatic transfer! It can save you a lot of trouble.

I hope I am going to have fewer issues with SiteGround than I had issues with Bluehost. But we will see about that. If they are not up to the job, I think I am gonna host the blog in my home myself :P

Do you have any tips for transferring a website? Is something not clear in my explanations?

Leave a Reply

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