There have been a myriad of articles written about migrating from Blogger to WordPress in the past. I know, because I’ve referenced a lot of them. Just a few weeks ago we had a client who needed to move from Blogger and somehow I ended up with the project. I thought I was the boss?

ANYWAY, I hadn’t done a transfer like this for over a year, and I found out the hard way that a lot of things have changed in that time, so I decided it was time for a fresh new tutorial about moving from Blogger to WordPress.

Blogger to WordPress Overview

I found that there were definitely some technical details that needed to be updated in the tutorials that I had read, but even beyond that I found that while a lot of the tutorials I read accomplished the task at hand, many of them ignored some really important aspects of the migration like SEO, where images are hosted, one to one mapping of content, etc.

Keep a list of important information you’ll need during the transition

In this guide I’m going to go through the entire process of moving your blog from Blogger to WordPress while making sure we also pay close attention to all of the following:

Search Engine Optimization so you don’t slip in the search rankings

1 to 1 Mapping of URLs so your visitors don’t hit a 404 page and feel lost

Redirection of RSS feeds so you can keep all those hard-earned subscribers

Transfer of All Content including posts, pages, comments, etc

Recreating a similar site structure

The reality is that this type of project is a lot more involved than it seems on the surface. I know that when I first started doing these migrations five or six years ago my attitude was “there’s an importer plugin, how hard could this be?” The reality is that while it’s not particularly difficult, there are a lot of moving parts and attention to detail is key. It’s a little bit tedious but I’m going to hold your hand every step of the way here. Let’s get to it!

Do You Use a Custom Domain or Subdomain?

There are two different types of configurations you can have on Blogger.com.

Subdomain like website.blogspot.com (blogspot is the Blogger domain and website is your blog name) Custom domain like awesomewebsite.com

If you’re using Blogger on a subdomain, you’ll want to bookmark this article and read this guide from GoDaddy about adding a custom domain to your Blogger site. Once you have your custom domain setup, come back and you can follow along with the rest of this tutorial.

GoDaddy and Namecheap are both very popular domain registrars

A custom domain isn’t technically required to redirect your Blogger site from website.blogspot.com to your new WordPress site, but all of the ways to make it happen are super hacky and will make your search engine rankings plummet, so for the sake of this article, the custom domain is a requirement. We don’t do hacky.

Checklist for Moving Ahead

Now that we’ve made it this far, let’s take a look at what you’re going to need in order to make this transfer happen the right way.

A custom domain setup on Blogger.com A web hosting package – Check out our comparison of WordPress Hosting providers here. Generally speaking a shared hosting plan from a solid provider should serve your needs, but it heavily depends on the amount of traffic you get on your blog. If you’re unsure about what you need from your new web host, feel free to reach out. Login credentials for your Blogger account (Google account), your new webhost, and your domain registrar

Note: Your domain registrar and web host may be one in the same. If you purchased your domain and web hosting package from the same provider, then it’s likely access to your domain and web host are accessible under the same account.

Step 1: Install WordPress on your New Hosting Account

The steps for this can actually vary a lot, but in order to keep things as simple as possible, I’m going to walk you through how to install WordPress on cPanel using a one-click installer. I’ll be using an account at SiteGround in the demo video below, but the process should be similar on most web hosts that use cPanel.

Now that you have WordPress installed, things start to get a little bit more technical, and a little bit trickier. If you don’t have the stomach for editing your HOSTS file on your computer or aren’t familiar with DNS at all, then this might be a task better handled by professionals. If you’re feeling brave and want to continue on this adventure, let’s move on to step number 2.

Step 2: Resolving DNS Conflicts

Don’t bang your head against your keyboard quite yet. But if you installed WordPress on your host, you probably noticed that when you clicked through to see your new WordPress site, you were taken back to your blog at Blogger. This is completely normal.

Example HOSTS File

Your domain is still pointing at your Blogger site and that’s the way we want to leave it for now, but it creates problems since we need to work on the WordPress site for the next several steps.

Do not point your domain at your new WordPress site just yet

This will redirect all of your traffic to your new site, which at the moment is the default WordPress design and no content. You don’t want to subject your readers to that mess.

What we’ll want to do is change our local computer (the one we’re working on currently) to point to our WordPress site, but let the rest of the world continue to see our site on Blogger.

Editing Your HOSTS File

There are a number of different ways to go about editing your HOSTS file on your computer. The various steps will depend on whether you’re using Mac OS, Windows, or Linux, or some other random operating system. Chances are that if you’re using Linux or something more unique than that, editing your HOSTS file will be a walk in the park.

When you edit your HOSTS file you’re basically giving your own computer driving directions. All of your traffic will go directly to where you tell it, but it won’t change anything that the rest of the world sees since you’re only changing the traffic route on your machine.

Most cPanel Hosts list the IP address of your server on the left side as shown above

How-To Geek has a great article that goes over how to edit your HOSTS file for all the major operating systems. Another alternative to editing system files is to install the HostAdmin Firefox Add-on which will do all the file editing dirty work. All you have to do is input your domain name and the IP address of your web host, and you’ll be in business.

Step 3: Importing Your Blogger Content into WordPress

Once your HOSTS file has been edited and you’ve pointed your domain to your WordPress install, you should be seeing your new WordPress site when you go to yourdomain.com in your web browser.

If you’re still seeing your blogger site, you’ll need to double check your HOSTS file to make sure you’ve made the correct edits.

The next step is to install the Blogger importer plugin:

In the past, the Blogger Importer WordPress plugin would actually authenticate with your Google account, and then automatically pull all of your post content into WordPress. The main challenge was that imports would frequently time out.

Then Google changed their authentication methods and the importer stopped working altogether for quite a while. Sound familiar?

Now in order to import your Blogger content into your new WordPress install, you need to export a file from Blogger, and upload it to your website. I’ve put together a quick screencast below to show you how to export your content from Blogger, and upload it to your new WordPress site. It’s pretty straightforward.

Step 4: Focusing on SEO and Fixing Your Permalinks

Now that we have all of our content in WordPress, it’s time to make sure that we get true 1 to 1 mapping for all of our articles, pages, archives, etc. If we break incoming links, we’ll end up losing SEO rankings and that traffic we all love and work for will be gone.

You’ve worked hard to earn your traffic, don’t lose it now!

In WordPress we need to change our permalink structure to match the structure that Blogger uses:

In your WordPress dashboard go to Settings –> Permalinks Choose Custom Structure Input the following for your permalink structure /%year%/%monthnum%/%postname%.html

Now our permalinks will be very close to the blogger structure, but they won’t be identical. We need to make one more change before they match up exactly.

The reality is that most of the page URLs are going to be close enough for WordPress to match them, but we’re perfectionists over here and don’t want to leave anything to chance when it comes to our SEO juice.

BACKUP YOUR WORDPRESS DATABASE BEFORE PERFORMING THIS NEXT STEP

BackWPup is a free plugin that can take care backing up the database for you. But really, perform a backup before moving ahead.

Fixing Post Permalinks

In your favorite text editor, paste the following code snippet, save it as a file, and upload it to the root of your WordPress install. Name it something like linkfix.php.

<?php /** * Rewrite WordPress URLs to match Blogger permalinks exactly. * * This script is intended for one time use only after importing Blogger * content into WordPress and should be removed from the server immediately * after the script has run one time. It shouldn't be needed again after the * initial rewrite. * * @version 0.1.0 * @author WP Site Care * @link http://www.wpsitecare.com/import-blogger-to-wordpress/ */ require_once 'wp-load.php'; /** * Get all posts with blogger permalinks. * * @since 0.1.0 * @access public * @global $wpdb * @return array|bool $posts an array of WP_Post objects withe blogger permalinks */ function sitecare_get_blogger_posts() { global $wpdb; $posts = (array) $wpdb->get_results( "SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = 'blogger_permalink'" ); return empty( $posts ) ? false : $posts; } /** * Update posts to match their previous blogger permalink structure. * * @since 0.1.0 * @access public * @global $wpdb * @return bool true if posts have been updated */ function sitecare_fix_blogger_permalinks() { global $wpdb; $wpdb->show_errors = true; $updated = false; $delete = '<h1>Please delete this file immediately.</h1>'; if ( ! $posts = sitecare_get_blogger_posts() ) { echo '<h2>There are no posts to update.</h2>'; echo $delete; return $updated; } foreach ( $posts as $post ) { if ( ! is_object( $post ) ) { continue; } $slug = isset( $post->meta_value ) ? explode( '/', $post->meta_value ) : false; if ( ! $slug || ! isset( $slug[3], $post->post_id ) ) { continue; } $slug = explode( '.', $slug[3] ); if ( ! isset( $slug[0] ) ) { continue; } $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_name = %s WHERE ID = %s", $slug[0], $post->post_id ) ); if ( $wpdb->last_error ) { echo $wpdb->last_error; } else { $updated = true; $title = get_the_title( $post->post_id ); echo "<p>The permalink for <i>{$title}</i> has been updated to <code>{$slug[0]}</code></p>"; } } if ( $updated ) { echo '<h2>Your permalinks have been fixed.</h2>'; echo $delete; } return $updated; } sitecare_fix_blogger_permalinks();

Once the file has been uploaded to your server, all you have to do is browse to http://yourdomain.com/fixlinks.php. That will execute the script that you just uploaded, and you’ll see the message “Your Permalinks Have Been Fixed”. That’s all there is to it.

Then you’ll want to make sure to delete fixlinks.php from your server. It won’t be needed ever again and could be a security issue if you leave it on your server.

It’s time to go live!

Step 5: Changing Your DNS Settings and Going Live

We’re now at a point where we can start sending our traffic to our new WordPress site. If you’d like to change the design to be more professional, add plugins, or perform any other customization on your WordPress site before going live, now is the time to do it. You could obviously do it after going live too, but some people don’t like to air their dirty laundry 😉

Editing your name servers changes the flow of traffic to a new location

Changing your domain name servers will be different for every web host and domain registrar. Here are instructions to change your DNS for some of the most popular registrars and hosts:

You’re going to change the name servers on your domain registrar to point to your new web host. To be clear, it’s entirely possible that your domain registrar and your web host are one in the same. For the bloggerdemo.biz account that I created for this article, I purchased the domain and web hosting from SiteGround.

That said, it’s entirely possible to have your domain registered at GoDaddy, and your web hosting at Bluehost, for example. You’ll be changing your NS records to point to your new web host. The name servers for my hosting account are ns1.m52.siteground.biz and ns2.m52.siteground.biz. Yours will be similar.

After you change your name servers, it can take up to 48 hours for traffic everywhere to be routed to your new WordPress site, although it’s usually more like 4-6 hours.

Now your site is live on WordPress!

Step 6: Important Finishing Touches For Your WordPress Migration

There are several more cleanup things that have to be done to call this transition from Blogger to WordPress truly complete.

Turn off your Blogger site the correct way Redirect your RSS feeds Add redirect rules for categories and archives pages

Disabling Your Blogger Blog The Correct Way

NEVER EVER EVER DELETE YOUR BLOGGER BLOG! EVER!

The reason you should never delete your Blogger blog is because all of your images are still hosted there, they aren’t actually transferred to your WordPress site. That means if you were to ever delete your Blogger blog, all of the images from your Blogger articles that are now on WordPress, would disappear. That’s a very bad thing.

Going forward all of your new images will be uploaded directly to WordPress, but all of the images from your old articles will live at Blogger forever.

Making changes to your Blogger Template to handle redirects

The folks at RT Camp have put together a great tutorial for the final steps to take with your Blogger blog. It involves changing your Blogger site back to using the subdomain format (ie. yourdomain.blogspot.com), and editing your Blogger template to handle redirects properly. Go ahead and follow their guide there, and then make your way back here once that step is finished.

Redirect RSS Feeds

Just like with permalinks, the RSS feed structure in Blogger is a little bit different than the structure for WordPress. We want to make sure that the people who are subscribed to your blog via RSS continue to get your stellar content after you move, so we need to make a quick edit to the .htaccess file on your new WordPress site.

Click here to watch a video tutorial on editing your .htaccess file

Team Treehouse has put together a nice video tutorial for creating and editing an .htaccess file which you can check out here if you’re not comfortable with that process already. They’re also one of our favorite places to learn WordPress online which is a double bonus!

Now that you know how to edit your .htaccess file, you’re going to add these rules to the very top of your file. There will already be some rules that have been added by WordPress, and these rules will go above those.

#Author: WP Site Care #Link: http://www.wpsitecare.com/import-blogger-to-wordpress/ #ATOM Feeds RewriteRule atom.xml feed/atom/ [L,R=301] RewriteRule feeds/posts/default feed/atom/ [L,R=301] #RSS FEEDS RewriteRule feeds/posts/default?alt=rss feed/ [L,R=301] RewriteRule rss.xml feed/ [L,R=301] #Comments Feed RewriteRule /feeds/comments/default comments/feed/ [L,R=301] RewriteRule /feeds/comments/default?alt=rss comments/feed/ [L,R=301]

These rules are basically telling RSS feed readers that the location of the RSS feed has changed, and to look for new content in the new location. These rules should stay at the top of your .htaccess file for as long as your site exists.

Adding Redirects for Category Archives

Blogger does have a category archive structure called “labels”. It’s essentially the same thing as WordPress categories, but once again, without redirects, these archives are going to generate a bunch of 404 Not Found errors, which we really want to avoid.

We’ve already come this far, why not finish things up right?

Just like you did with the feed redirect rules, you’re going to add the following rules just below the rules that you added for the RSS feed redirect

#Author: WP Site Care #Link: http://www.wpsitecare.com/import-blogger-to-wordpress/ #Redirect archives RewriteRule ^([0-9]{4})_([0-9]{1,2})_([0-9]{1,2})_archive.html$ $1/$2/ [L,R=301] #Redirect labels/categories RewriteRule ^search/label/(.*)$ category/$1/ [L,R=301]

Save your .htaccess file and now all of your old Blogger labels will redirect to the corresponding WordPress categories.

Welcome to WordPress!

YOU MADE IT! TIME TO CELEBRATE!

Now that you’ve worked your way through this gauntlet of a tutorial, pat yourself on the back, enjoy a ?, and start to enjoy the best publishing platform in the world, WordPress.

This tutorial is definitely not for the faint of heart, but it is a good illustration of what’s really involved in a well done Blogger to WordPress migration. In order to do it properly, and with all of the search engine ramifications in mind, there are a lot of details that need to be addressed and carried out.

It’s a bit of a tedious process, but when the end result means you have a new website that you own, can customize however you’d like, and can use to amplify your voice, sell a product, or champion that next cause, the hours of work involved here seem well worth it.

You may not need the article today, but it’s definitely one that you’ll want to bookmark and reference for when you do need it. We’ll be sure to keep it updated with the latest information as things change, because they undoubtedly will.

If you found this tutorial helpful, or have questions about any piece of the process, you know the drill. Leave us a comment and we’ll do everything we can to help out!