Posts navigation

Idiots Guide: Migrating WordPress to GoDaddy Managed Hosting

There are lots of guides out there for migrating WordPress websites but there are a few peculiarities about GoDaddy Hosting and I found many of the guides didn’t provide enough detail.

Considerations

So first off, when migrating a WordPress website (though true for most websites), there are three elements to consider:

Files

Your WordPress website has two lots of files:

The ‘WordPress Core’ – this consists of the files that make WordPress run. These files are the same across all WordPress websites (of the same version) and so shouldn’t be touched during a website migation – you leave them in place.

Themes, Plugins & Uploads – these are the files that are likely to have been changed or added to in order to form your WordPress website (themes for styling, plugins for functionality and uploads to add images/videos/files to the website). These WordPress files need to be copied from your current hosting (the source) to your new hosting (the destination), using a system called FTP (File Transfer Protocol).

Database

This is where all of the textual content (pages, posts, etc.) and settings for your website are stored. If you are unfamiliar with what a database is you could consider it to be similar to cluster of spreadsheets, each storing information allowing your website to search through it, order it and retrieve it when needed.

Domain Name

Your website can exist without a domain name pointing to it but no one will be able to see it! GoDaddy create a temporary domain name for you when you setup a Managed WordPress Hosting website from them. This is very good because you can confirm your website is working properly before you point your domain name at the new hosting.

The Migration

Step 1: Setup a WordPress GoDaddy Account

If you haven’t already, login to your GoDaddy account and create a WordPress website in the Managed WordPress Websites section of your GoDaddy account. You should see a site with a temporary domain name assigned like this:

Step 2: Get the FTP Settings for your new WordPress hosting

When GoDaddy created your new WordPress website, they created an FTP account for you (a username and password that allows you to access the storage space where your website files are stored). You will need these details to copy your existing website files to the new web hosting, to find them click Manage:

Scroll down the page and on the right under the heading Basic Settings, there is an option that says SFTP user, click the View button next to it:

The popup box that appears has all the information in it you need, copy and paste it to a Notepad file or similar and save it. You’ll need to click Toggle Password to reveal the password you need:

Step 3: Get the FTP Settings for your new WordPress hosting

Unfortunately this is one area I cannot advise on as there are so many hosting companies and account types – all I can say is that you need the same information as above (if anyone wants to post the steps for their hosting, I’d love to create a list!).

Step 4: Install FileZilla

I highly recommend using FileZilla (http://filezilla-project.org/) as your FTP client (FTP application) as its free, full featured and reliable. A full tutorial on FileZilla is beyond the remit of this tutorial but I’ve included the basics to help get you going.

Setup the source and destinations in the FileZilla Site Manager by clicking this icon:

This will launch the Site Manager which will appear in its own dialog box. The Site Manager is an ‘address book’ of the different FTP connections you have (such as to your source and destination we servers) and is a good idea to use so if something goes wrong, you don’t have to enter the details all over again.

I find it useful to paste the FTP password in the Comments box in case I need to retrieve it for something else.

Repeat the above steps for your Destination (your new GoDaddy hosting) so that you have two entries in your Site Manager.

Step 5: Copying Your WordPress Files to Your Computer

On your computers desktop, right click and create a folder called WordPress Temp

Open FileZilla

Open the Site Manager (see above), highlight the source connection and click the Connect button

The Site Manager will disappear and in the top pane of FileZilla you’ll start to see some update with ‘Status’ at the beginning, the last update should read something like ‘Directory listing …. successful’ ad you should see other information appear in the right hand window.

Important Note: The left hand pane are the files/folders on your computer, the right hand pane are the files/folders on whatever server you have connected to.

In the left hand pane, navigate to the WordPress Temp folder you created on your desktop.

In the right hand pane, locate the folder called wp-content and right click on it

Click Download

You will now see a bunch of files get added to the ‘Queue’ at the bottom of FileZilla, this means it has started copying the wp-content folder and every file/folder within it.

Depending on the size of your site and internet speed this could take some time

Step 6: Copying Your WordPress Files to Your New Website

Open FileZilla

Open the Site Manager (see above), highlight the destination connection and click the Connect button

The Site Manager will disappear and in the top pane of FileZilla you’ll start to see some update with ‘Status’ at the beginning, the last update should read something like ‘Directory listing …. successful’ ad you should see other information appear in the right hand window.

In the left hand pane, navigate to the WordPress Temp folder you created on your desktop.

In the right hand pane, make sure you can see a folder called wp-content (so we know were in the right place).

In the left hand pane, right click wp-content

Click Upload

You will now see a bunch of files get added to the ‘Queue’ at the bottom of FileZilla, this means it has started copying the wp-content folder and every file/folder within it.

This will probably take longer than the download because upstream speeds tend to be slower than downstream speeds on standard non-commercial internet connections.

Step 6: Get Ready to Download Your WordPress Database

The next step is unfortunately again going to vary from host to host. Generally most hosting providers offer access to your WordPress database via a front-end called phpMyAdmin so this is what this guide uses. On your existing hosting control panel, you need to locate and login to your phpMyAdmin panel, you should then be presented with a web console that looks like this:

In the left panel you can see an item in my example called wordpress_fc, this is the name of my WordPress database, yours will be something difference. Clicking the small [+] icon next to the database name will expand it to show the database tables, you can see from my example below that ALL of my database tables start with sqw9z_ this is important as this is the database prefix and we need to know what it is:

Expand your database and note down your database prefix, it is everything before the proper table name so for example above the full table name is sqw9z_commentmeta so the table prefix is sqw9z_

Step 7: Download your WordPress database

While logged in to phpMyAdmin, click the Export button on the top main menu:

When the export options form appears:

Ensure the option for Quick – display only minimal options is selected

Ensure SQL is selected in the Format drop-down

Click Go

You will be prompted by a download with a name like localhost.sql, save it somewhere easy to find (such as your desktop).

Congratulations, having gotten this far, you have successfully take a full backup of your WordPress website!

Step 8: Editing the Database File

Now we need to make a change to the localhost.sql file to remove a command that GoDaddy has a problem with (‘Create Database’). I recommend downloading and installing the free and amazing ‘Notepad++‘ for this next step, its like that standard Windows Notepad but on steroids (and can handle big files much quicker).

Open your localhost.sql file in Notepad or another text editor (it may take a while to open)

Don’t be concerned by that chaos in the file! You don’t need to understand it, just delete these two lines from the top of the file (you can see them in the example below):

CREATE DATABASE IF NOT EXISTS wordpress_e35 DEFAULT CHARACTER SET utf8 COLLATE;

Step 9: Preparing Your GoDaddy Database

Now we have a copy of your old database ready, we need to prepare the GoDaddy one so we can import it with no problems.

Login to your GoDaddy account

Navigate to your Managed WordPress Hosting and click Manage:

Scroll down to the bottom of the page about your WordPress website and in the right hand column look for an option that says phpMyAdmin and click View next to it:

In the dialog box that appears you are given the phpMyAdmin URL, your username and password (you have to click ‘Toggle’ to reveal it as before).

Click the URL and login with the details provided, you will be presented with a phpMyAdmin console, it will probably look different to the one at your ‘source’, mine looks like this:

As before, on the left is your database (there may be a second entry called information_schema which you can ignore),

Expand the first item which is your WordPress database and as with your source database, note down the database prefix, in my GoDaddy WordPress hosting I had table names like:

wp_33twstxptm_commentmeta wp_33twstxptm_comments

This means my new database prefix is wp_33twstxptm_

The next thing we need to do is delete all the tables on your new GoDaddy WordPress Hosting database, to do this you need to run the following commands replacing my database prefix of monkey_ with your own (use notepad or something similar with find/replace):

Now in phpMyAdmin on your new GoDaddy Managed WordPress site (your destination), click the SQL button to open an SQL Query window:

Paste your prepared commands in to it:

Now click Go

In phpMyAdmin when you expand your database you should now see no database tables remaining.

Step 10: Rename all the Prefixes in your Database

Now use Find/Replace to replace (in Notepad++ its under Search > Replace) and replace all occurrences of the source database prefix with the database prefix on the destination (GoDaddy) hosting.

Save the database file

Step 10: Import your WordPress Database

If you are not still logged in, login to your GoDaddy (destination) phpMyAdmin console.

Click the Import option

Click Choose File and select the SQL file we exported and edited earlier.

Click Go

Step 11: Viewing the Website

Now this is where things can get a little tricky and you need to be careful.

GoDaddy will at this point advise you to point your domain name at your new hosting but then if there is a catastrophic problem with the migration, its not really their problem! Personally I prefer to test the website before I switch the domain name over, making it live.

Now GoDaddy provide you with a temporary domain name to view your website and the chances are when you type it in, you see your website and celebrate. Unfortunately if you look in the browser address bar, you’ll see the normal domain name and the website you are looking at is in fact your original (source) website, not the one we’ve been working on migrating to GoDaddy.

Why does this happen?

WordPress is generally configured to have a single primary domain name and no matter what domain name you use to access a WordPress website, it will automatically redirect itself to the primary domain name.

In this case, you enter GoDaddy’s temporary domain name but WordPress things “Hold on, my primary domain name is XXX.com, I’ll redirect the user there”. Unfortunately because we haven’t updated where your original domain name points, when GoDaddy redirects you to it, it is actually sending your browser to your old (source) hosting. You have two options at this stage which I’ve gone in to below, one quick and risky (the GoDaddy way), the other more complicated but risk-free.

Step 12: Prepare GoDaddy Hosting for your Domain Name

No matter which of the options you choose below, you need to add your domain name to the GoDaddy account (this DOES NOT point your domain name to GoDaddy, it simply gets GoDaddy’s servers ready to receive requests for it).

To do this:

Log in to your Managed WordPress Hosting

Click the Manage button next to your WordPress website:

In the page that appears, click the ellipsis on the right and to reveal a drop down menu and click Change Domain:

Click the Add Domain button (top right)

Enter your domain name (without ‘www’ at the beginning)

Click Add

You should now be back on the My Site Domains page and you should see in the bottom right the IP Address for your website (if you can’t see it, go back to your Managed WordPress page and click Manage again), note this down as its important:

Step 13: Website Testing

Option 1: Point your domain to your new GoDaddy Hosting & Hope for the Best

This option is quicker but riskier, simply update your domain names DNS to point to the IP address you retrieve earlier. Good luck!

Option 2: ‘Trick’ your computer in to thinking you’ve pointed your domain name to the new Hosting

Here I like to use a little trick that’s been around for decades on Windows computer to ‘trick’ my computer in to sending all traffic for a domain name exactly where I tell it to.

In summary, we update the hosts file on your computer (located somewhere like ) to tell your computer to send all requests to a specific IP address.

Drag or ‘Cut/Paste’from your desktop back to its original location (you’ll probably be prompted to confirm you want to do this)

Now any requests for that domain name on your computer get sent to GoDaddy, not to where the rest of the Internet goes!

Now you can thoroughly test the website and admin section are working as you’d expect – once you are happy, go ahead and update your domain names DNS to point to the IP address you retrieve earlier. You should also remove the entries you added to your hosts file to save any confusion down the line.

Thanks for the spot! Seems the code styling strips out the highlight markup. I’ve altered the text so it makes more sense. Essentially you need to remove the code from the SQL file that tries to create a database or which database to use.

I’m on step 10 and I’m getting an error message when I try to Import the Database. I made sure that the code did not have CREATE DATABASE IF NOT EXISTS wordpress_e35 DEFAULT CHARACTER SET utf8 COLLATE; USE `wordpress_e35`;

Really sorry for the delay in responding to you on this, it looks like this is a MySQL version compatibility issue, there are a number of options but the most helpful one I’ve seen is to do the following:

1) Click the “Export” tab in MySQL 2) Click the “Custom” option 3) Go to the “Format-specific options” section and change the drop down for “Database system or older MySQL server to maximize output compatibility with: ” from NONE to MYSQL40. 4) Scroll to the bottom and click “GO”.

I wanted to say thanks so much for this! It has really helped me with what has been an overall frustrating experience. 🙂

I have a question, though. My images are all in the WP-Includes folder, and I feel like–but have not confirmed that–my theme and plugins have also stored data in the includes folder. GoDaddy gave me a hard no on giving me any way to overwrite the WP-Includes directory. How do you address the images when making this kind of migration? Should they normally have been stored in the WP-Content directory?

Yes your WordPress images should definitely NOT be in the wp-includes folders. WordPress itself handles the upload of images and it deposits them in a folder within wp-content, generally using dates and months as a references for example: /wp-content/uploads/2017/05/.

A theme should never be putting anything in /wp-includes/ (its very unlikely).

If you have manually put images in the /wp-includes/ folder and they are all together in a subfolder such as /wp-includes/images/, my suggestion would be to grab them via FTP and copy them to a sub-folder of /wp-content/uploads/ on the new hosting, such as /wp-content/uploads/images/ then run a Find & Replace tool on your new hosting package to replace all instances of the phrase ‘/wp-includes/images/’ with ‘/wp-content/uploads/images/’.

Be VERY careful however as find & replace against the DB is powerful and can easily break things.

Thanks again! I was being really dumb–of course my images weren’t in the Includes folder, and thanks for clarifying that the theme won’t manipulate that folder either.

My real problem was that I was following your tutorial a little too closely and migrating from Localhost rather than another shared hosting, so when I replaced the database prefix, I accidentally added my GoDaddy database prefix to all of my meta keys because my find an replace was from just “wp_” to wp_newprefix.” It may be worth noting in the tutorial for newbies who have built something in localhost, that they will need to be careful not to add the new prefix to any wp_meta string. 🙂

I’ve been trying for DAYS to figure this out and it has become really frustrating. I’m hoping this article will help me finish it! I’m on step 6 and the problem I’m having is that I don’t seem to have a database prefix. In my PHPmyAdmin they are all just listed as “wp_commentmeta, wp_comments, wp_duplicator_packages, wp_links, etc.” Do you know what I’ve done wrong?