How to Migrate a Hosted WordPress Blog to BlueHost

The initial problem: I wanted to add SSL to this blog

The first obstacle: My Godaddy hosting is 15 years old and I don’t have the ability to add an SSL certificate. I don’t have access to cpanel or another means of adding an SSL certificate.

The solution: Migrating this blog from Godaddy to Bluehost.

Here’s what happened

Step 1 – Research

After I decided it was time to move, I researched where to host the blog. GrowthMarketingPro’s Hosting Comparison post was extremely helpful. In the end, I decided to go with Bluehost.

There are three main options for shared web hosting on Bluehost. There’s a single website, there’s multiple websites, and there’s multiple websites with a dedicated IP.

Bluehost shared web hosting options

Pick the plan that works best for you. Since I don’t have a need for the Pro features and I would like to host numerous websites on this domain, I went for the Choice Plus option.

The Migration Plan

  1. Export data from existing website
  2. Buy your new hosting and create new WordPress instance on Bluehost
  3. Import data to the new WordPress instance
  4. Tweak settings to make sure everything works as expected in new blog
  5. Point IP address and nameservers in domain name to new hosting

Export Blog Data

The first step is to export existing data from your blog. Go to your existing blog’s admin interface. Find Tools -> Export and download an XML file that you will eventually upload into your new blog.

Tools -> Export


In my research, I came across this post and it turned out to be very helpful: bluehost guide to migrating a wordpress blog
Important Caveatthis will not bring your plugins over. You will lose all plugin and widget settings. Make sure you don’t have too many before you invest in this process. I needed reinstall and update my google analytics and askismet spam settings. But I wasn’t using too many plugins so this process was relatively easy for me.
Potential issues alertSome larger sites require you to increase the PHP memory, upload size and execution time. If you run into a memory issue importing a large file please see How to Increase the PHP Memory Limit

Purchase hosting and install new wordpress instance

At this point, you should return to your new Bluehost account and setup your blog on the new hosting account (if you haven’t done so already). Their workflow is relatively easy and straightforward. You should follow their steps to setup your blog.

Bluehost has a really great setup and auto WordPress installation. You will see this screen once the initial setup is complete.

The initial setup of your blog may take a little while. Maybe 5-10 minutes while the files are created and wordpress is installed.

Import data to the new WordPress instance

Once this is complete, you can login to your new wordpress instance and import data by using the Tools -> Import option.

First, you need to install the wordpress importer. Then you need to click run importer and upload your recently downloaded XML file.

Click install now to install the wordpress importer
Click run importer to start the import process
Upload your previously downloaded xml file to import data

The import process is not instantaneous. My 80 post import took between 30 and 60 seconds.

Take time to make sure all of your data was imported successfully. In very large blogs, it is not uncommon to lose data in the export/import process.

Tweak Settings – make sure things look okay

Once completed, everything should look as expected with one major exception: the website design! I didn’t care for my existing design, so I chose a template I thought looked reasonable and went with it. If you paid money for a professional template, you should export that and import that separately.

Another important thing to note is that your plugins and widgets will not get migrated over either. You will need to install them fresh on this new WordPress instance.

Make sure you take the time to install widgets and plugins that your website depends on. Make sure the images on your blog were migrated over successfully. Images can be very large files so if there are issues with the import/export process, there’s a good chance its with your images.

Be ready for some confusion. Some of the links might not work on the new instance of your blog since they will probably be hardcoded to your domain name. This is typical. When we change our domain name settings to point to the new hosting, the links will work as expected.

Change your site URL on the new hosting to your domain name

You need to do this in preparation for switching the DNS information on your domain name. If you keep this as the temporary location, when the DNS propagation (next step) is complete, links on your website will take you to a random bluehost URL – the correct content will load, but this will be an awkward experience for your visitors. Imagine if you clicked a link on the ibuildmvps.com homepage and this sent you to http://box5444.temp.domains/~ibuildmv/url-friendly-name-of-post. Tweaking this setting will fix that potential issue.

Don’t forget to change the url settings on your new hosting before changing the DNS settings on your domain

Changing the nameservers and ip location

The last step is changing the nameservers to your bluehost location. You need to go to where your domain name was purchased and change the settings there.

As of today, the nameservers for a bluehost hosting account (at least the one’s I purchased) are ns1.bluehost.com and ns2.bluehost.com

You will also need to change the “a” record that points to “@” to your new wordpress hosting’s IP Address. Here’s the info that the Bluehost support team sent me.

The helpful information from Bluehost’s support team on what to change my A record settings to

I recommend making both of those changes at the same time when you are tweaking the settings on your domain name.

This video about changing your domain from godaddy to point to hosting at bluehost from Blog with Ben helped me tremendously here! If you host your domain name on Godaddy, I highly recommend checking this out.

How you find the DNS info to change in godaddy
The 3 items you need to change to get your domain name to point to the correct hosting location

Now, you have to wait for the changes in your domain name’s information to propagate. Propagation is a tricky situation. Due to the scale of these websites and caching on machines locally and in internet networks, you won’t immediately see the website switch for every user. I know this can be frustrating, but they usually tell you to wait 24-48 hours to see your website pointed to the new hosting. In actuality, this will probably take anywhere between 30 minutes and 3 hours. And in that time, if you type in your domain name, you might see the new hosting, you might see the old hosting. Mentally prepare yourself as this can be frustrating. You should triple check the nameservers and IP address you add to your DNS info because a switchback can potentially double the propagation time.

That should be it! Since a new bluehost account comes with LetsEncrypt SSL automatically, you will be encrypted when the domain name propagation is completed in 24-48 hours (typically much sooner than that. Maybe 30 minutes to 3 hours).

From planning to implementation, this entire process took me about two hours. My goal with this post is to save you some time.
In my scenario, the DNS Propagation completed after about a half hour. Within an hour, SSL automatically started working on my blog.

A final step was to make sure when someone visits my blog, then visit the SSL version. An easy way to force https redirects on your website (i.e. so if someone visits https://ibuildmvps.com, it auto redirects to https://ibuildmvps.com) on a WordPress blog is to install the “Really Simple SSL” plugin into your WordPress application. I did that. It was simple. You should do it too.

Alertyou may have other issues I did not encounter. No two blogs are alike. Be ready to take a deep breathe and attack each challenge as it occurs.

This took me about two hours to complete. Hopefully, it will save you time when you migrate your blog. Happy migrating!