Migration from Blogger to WordPress Tutorial

My love with Blogger is finally over! Yes, Blogger.com is cool and good, but self hosting a blog is even cool and good too, Why?? WordPress is offering free!! Having self hosted WordPress Blog allows you to have better management over your own blog. Also, Blogger themes doesn’t have much options compare to WordPress free themes where can be downloaded anywhere in the world! Plugins from WordPress is also around the internet where you can simply download it from the web eg: WordPress Plugins

Recently I moved another blog of mine from Blogger to WordPress. Now, let me say again: “Blogger is good, I’m not saying Blogger is not impressive, it is… Reason why I moved that blog to wordpress is because self hosting gives you a better management of your own blog”

So, I think it’s good to come out a post on the process I’ve taken to share to those who want to moved to wordpress, perhaps in future. WordPress provided a powerful tool I would say, to import every Posts that you have in Blogger to be import to your new WordPress Blogs.

clip_image002[6]

The import plugin in WordPress is out of beta and has been tested with the current version of WordPress. The final version is available here. From the new release of WordPress, this plugin would be present as default.

Features:-

· Imports all Blogger Posts

· Imports all the Comments

· Imports the Post Author and Comment Author information

· Imports Categories (i.e. Labels) from Blogger

Let’s begin with simple steps:-

1. Make sure you got the id of Blogger which you’re trying to import (eg: bloggerid@gmail.com).

2. Make sure your blogger publish full feeds, if not modify the option to publish full feeds.
( In Settings –> Site Feeds –> Blog Posts Feed –> FULL)

clip_image004[4]

3. Next, logon to your WordPress Administrator Console, go to Manage –> Import –> Click Blogger to import posts from Blogger.

clip_image006[4]

4. Once you have clicked Blogger, you will be brought to Blogger import page. Next, you need to authorize WordPress in order to allow WordPress to pull posts from Blogger

clip_image008[4]

5. Click Authorize button, you’ll be direct to another page shown as below.

clip_image010[4]

6. For sure, you’ll have to logon to Blogger.com in order for WordPress to import from Blogger. Alright, just click “Grant Access” button to grant WordPress access to Blogger.com

7. Once WordPress able to talk to Blogger.com, you’ll be back to WordPress Import page as shown below.

clip_image012[4]

8. If you able to see the above snapshot, looks like you’re almost done J

9. Now, click on Import button, you’ll see it’s “Importing…” right now.

clip_image014[4]

10. Once imported, next you got to “Set Authors”, to do so, click on “Set Authors” button

clip_image016[4]

11. Author Mapping page, is to set what is the owner for all the posts shown in WordPress.

clip_image018[4]

12. As shown in the snapshot, my Blogger username is Gab, I’m mapping to Gab in WordPress too :D

13. Next, just click “Save Changes” to save what you have done from step 1. Then, WordPress will bring you back to your Manage Posts. All your posts will be Published automatically, just do whatever changes required to
every posts you want.

14. To draw more traffic to your blog, I learnt that every posts should have a tag. So, I believe you have to edit posts tags one by one.

Set up redirects

Log into your Blogger account and click your way through the awkward navigation menu until you are at the "Template/Edit HTML" page. To redirect visitors from the main page, insert the following between the <head> and </head> tags:

<meta content='6;url=http://yournewblog.wordpress.com/' http-equiv='refresh'/>

Number 6 means that the redirection will take effect after 6 seconds. Replace the url with your own.

The tricky part comes now. We want to redirect users from individual post pages to the corresponding post pages on the new blog. For that, we need a piece of JavaScript spiced with Blogger proprietary tags. Insert the following right after "<b:section class='main' id='main' showaddelement='no'>" in the template:

<b:widget id='Redirector' locked='true' title='Blog Posts' type='Blog'>
<b:includable id='main'>
<b:if cond='data:blog.pageType == "item"'>
<b:loop values='data:posts' var='post'>
<script type='text/javascript'>
var new_page='yournewblog.wordpress.com/';
var permalink = '<data:post.url/>';
var timestamp = '<data:post.timestamp/>';
timestamp = timestamp.split('/');
timestamp = timestamp[2]+'/'+timestamp[0]+'/'+timestamp[1];
new_page = permalink.replace(/youroldblog\.blogspot\.com\/2007\/[0-9]{2}/,new_page+timestamp);
new_page = new_page.replace(/\.html$/,'');
document.location.href = new_page;
</script>
</b:loop>
</b:if>
</b:includable>
</b:widget>

Don’t forget to enter your new blog’s URL at var new_page = .

Important note! For this script to work, all your posts should have been imported to WordPress.com using their Manage/Import function. The creation dates of all posts must match, because they are part of the permalinks.

remove duplicate content

Insert the following between the <head> and </head> tags:

<meta name="ROBOTS" content="NOINDEX, NOFOLLOW"/>

After seeing this, search engines should remove your old blog from their cache and the old content will stop existing for them. Therefore they are not going to penalize your new blog for duplicate content.

optionally, display a message

This is not required, but helpful for your readers. Tell them that you have moved and that they are going to be redirected. Right after the <body> tag, insert this:

<div style='position: absolute; top: 30px; left: 30px; border: solid 2px #333; color: #000; background-color: yellow; padding: 5px; width: 400px; z-index: 5; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: large;'>
<p><strong>My blog has moved!</strong></p>
<p>You should be automatically redirected in 6 seconds. If not, visit<br/> <a href='http://yournewblog.wordpress.com/'> <strong>http://yournewblog.wordpress.com</strong></a> <br/> and update your bookmarks.</p>
</div>

Well, now we are set. Found any errors in this tutorial or have more tips? Share them in the comments please. :-)

Happily and Proudly powered by WordPress.

Related Posts Plugin for WordPress, Blogger...

Tags: ,

breaker

facebook comments:

17 Responses to “Migration from Blogger to WordPress Tutorial”

  1. [...] Migration from Blogger to WordPress Tutorial – Written by Gabriel Lai on April 24th, 2008 from gabriellai.com. This is one of the more recent tutorials and happens to be the best written, you might want to consider following this guide before the others. [...]

  2. @Joscie says:

    I wonder… I migrated from old blogger (publishing cutchens.com with blogger through ftp) to wordpress still at cutchens.com … so when people click on cutchens.com they get my new wordpress blog in place of the old blogger.

    BUT will the redirect thing work for the old permalinks? or should i leave the old blogger pages up?

    Reply

  3. Gabriel Lai says:

    Hello Joscie,

    perhaps you should leave your blogger up, and whenever anyone access your old blogger, they will be redirected to your new self-hosted wordpress.

    Suggestion: you can take away your redirect link from blogger, and update the content by exporting it from wordpress, and import to blogger. Also, just leave a note there saying that the updated blog should be on wordpress, and blogger is updated slower by maybe 1 week. so your reader will aware about your new blog

    Hope this helps :wink:

    Reply

  4. [...] where he search for migration from Blogspot to WordPress, which I have put up a post on a howto here. In that post, I put up some ideas on how Blogspot user can move to WordPress. If you’re a [...]

  5. admin says:

    thanks a lot for this great tip! i have finally moved SEO concepts from blogger to wordpress, it worked perfectly from my vertito.blogspot.com blogger account

    nice ! keep it up!

    Reply

  6. Gabriel Lai says:

    Hello, thanks for using the tips… I’m glad the tips helps you migrated from Blogspot to WordPress….

    Btw: http://www.Ilovetux.com is cool… there are so many tutorials :grin:

    Reply

  7. tweakwindows says:

    I can’t see “
    in my blogger template..Where to add the contents?

    <![CDATA[/*
    -----------------------------------------------
    Blogger Template Style
    Name: Denim
    Designer: Darren Delaye
    URL: http://www.DarrenDelaye.com
    Date: 11 Jul 2006
    -----------------------------------------------
    */

    /* Variable definitions
    ====================

    */

    body {
    background: $bgColor;
    margin: 0;
    padding: 0px;
    font: x-small Verdana, Arial;
    text-align: center;
    color: $textColor;
    font-size/* */:/**/small;
    font-size: /**/small;
    }
    a:link {
    color: $linkColor;
    }
    a:visited {
    color: $linkColor;
    }
    a img {
    border-width: 0;
    }

    #outer-wrapper {
    font: $bodyFont;
    }

    /* Header
    ----------------------------------------------- */
    #header-wrapper {
    margin:0;
    padding: 0;
    background-color: $headerCornersColor;
    text-align: $startSide;
    }

    #header {
    width: 760px;
    margin: 0 auto;
    background-color: $headerBgColor;
    border: 1px solid $headerBgColor;
    color: $headerTextColor;
    padding: 0;
    font: $headerFont;
    }

    h1.title {
    padding-top: 38px;
    margin: 0 14px .1em;
    line-height: 1.2em;
    font-size: 100%;
    }

    h1.title a, h1.title a:visited {
    color: $headerTextColor;
    text-decoration: none;
    }

    #header .description {
    display: block;
    margin: 0 14px;
    padding: 0 0 40px;
    line-height: 1.4em;
    font-size: 50%;
    }

    /* Content
    ----------------------------------------------- */

    .clear {
    clear: both;
    }

    #content-wrapper {
    width: 760px;
    margin: 0 auto;
    padding: 0 0 15px;
    text-align: $startSide;
    background-color: $mainBgColor;
    border: 1px solid $borderColor;
    border-top: 0;
    }
    #main-wrapper {
    margin-$startSide: 14px;
    width: 464px;
    float: $startSide;
    background-color: $mainBgColor;
    display: inline; /* fix for doubling margin in IE */
    word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
    overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
    }
    #sidebar-wrapper {
    margin-$endSide: 14px;
    width: 240px;
    float: $endSide;
    background-color: $mainBgColor;
    display: inline; /* fix for doubling margin in IE */
    word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
    overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
    }

    /* Headings
    ----------------------------------------------- */
    h2, h3 {
    margin: 0;
    }

    /* Posts
    ----------------------------------------------- */
    .date-header {
    margin: 1.5em 0 0;
    font-weight: normal;
    color: $dateHeaderColor;
    font-size: 100%;
    }
    .post {
    margin: 0 0 1.5em;
    padding-bottom: 1.5em;
    }
    .post-title {
    margin: 0;
    padding: 0;
    font-size: 125%;
    font-weight: bold;
    line-height: 1.1em;
    }
    .post-title a, .post-title a:visited, .post-title strong {
    text-decoration: none;
    color: $textColor;
    font-weight: bold;
    }
    .post div {
    margin: 0 0 .75em;
    line-height: 1.3em;
    }

    .post-footer {
    margin: -.25em 0 0;
    color: $textColor;
    font-size: 87%;
    }

    .post-footer .span {
    margin-$endSide: .3em;
    }

    .post img {
    padding: 4px;
    border: 1px solid $borderColor;
    }
    .post blockquote {
    margin: 1em 20px;
    }
    .post blockquote p {
    margin: .75em 0;
    }

    /* Comments
    ----------------------------------------------- */
    #comments h4 {
    margin: 1em 0;
    color: $dateHeaderColor;
    }
    #comments h4 strong {
    font-size: 110%;
    }
    #comments-block {
    margin: 1em 0 1.5em;
    line-height: 1.3em;
    }
    #comments-block dt {
    margin: .5em 0;
    }
    #comments-block dd {
    margin: .25em 0 0;
    }
    #comments-block dd.comment-footer {
    margin: -.25em 0 2em;
    line-height: 1.4em;
    font-size: 78%;
    }
    #comments-block dd p {
    margin: 0 0 .75em;
    }

    .deleted-comment {
    font-style:italic;
    color:gray;
    }

    .feed-links {
    clear: both;
    line-height: 2.5em;
    }

    #blog-pager-newer-link {
    float: $startSide;
    }

    #blog-pager-older-link {
    float: $endSide;
    }

    #blog-pager {
    text-align: center;
    }

    /* Sidebar Content
    ----------------------------------------------- */
    .sidebar h2 {
    margin: 1.6em 0 .5em;
    padding: 4px 5px;
    background-color: $sidebarTitleBgColor;
    font-size: 100%;
    color: $sidebarTitleTextColor;
    }

    .sidebar ul {
    margin: 0;
    padding: 0;
    list-style: none;
    }
    .sidebar li {
    margin: 0;
    padding-top: 0;
    padding-$endSide: 0;
    padding-bottom: .5em;
    padding-$startSide: 15px;
    text-indent: -15px;
    line-height: 1.5em;
    }
    .sidebar {
    color: $textColor;
    line-height:1.3em;
    }
    .sidebar .widget {
    margin-bottom: 1em;
    }

    .sidebar .widget-content {
    margin: 0 5px;
    }

    /* Profile
    ----------------------------------------------- */
    .profile-img {
    float: $startSide;
    margin-top: 0;
    margin-$endSide: 5px;
    margin-bottom: 5px;
    margin-$startSide: 0;
    padding: 4px;
    border: 1px solid $borderColor;
    }

    .profile-data {
    margin:0;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-weight: bold;
    line-height: 1.6em;
    font-size: 78%;
    }

    .profile-datablock {
    margin:.5em 0 .5em;
    }

    .profile-textblock {
    margin: 0.5em 0;
    line-height: 1.6em;
    }

    /* Footer
    ----------------------------------------------- */
    #footer {
    clear: both;
    text-align: center;
    color: $textColor;
    }

    #footer .widget {
    margin:.5em;
    padding-top: 20px;
    font-size: 85%;
    line-height: 1.5em;
    text-align: $startSide;
    }
    ]]>

    skip to main |
    skip to sidebar


































     

    Reply

  8. Gabriel Lai says:

    where did you actually stuck at?? which steps?

    Reply

  9. tweakwindows says:

    I was stucked at redirecting individual post pages to the corresponding post pages..Google has already indexed my new site yesterday..Will google take action?

    Reply

  10. Gabriel Lai says:

    No worry with that… Google indexed your old address, when visitor visit your old blog, it will actually redirect them to your new post within certain seconds… if this is so, you can redirect them after 1sec or 2 sec.. since the documentation is set to 6 seconds.

    Reply

  11. lissie says:

    When I add the code for the redirect on the individual posts I get the following error
    “Your template could not be parsed as it is not well-formed. Please make sure all XML elements are closed properly.
    XML error message: Open quote is expected for attribute “{1}” associated with an element type “content”.”

    When I try to save the template – so I can’t get any further I am using ctrl-c ctrl-v to copy the code. I also think the 2007 in this part of the code should be 2008?

    Reply

  12. Gabriel Lai says:

    Lissie, I’ve just done this for my brother by following the steps by steps tutorial… perhaps you have missed out some steps up there :)

    Reply

  13. lissie says:

    I don’t think I have – the overall blog redirect and the robots txt code are fine but as soon as I add the javascirpt for the individual post redirect blogger won’t even save the template because of the XML error. Which template are you running on blogger? I was using a fancy custom one and then replaced it with a boring ordinary blogger one but still have the same problem.

    Reply

  14. Gabriel Lai says:

    Now I understand your problem… bypass that step to add the code into individual post… that codes will clash your XML…

    Reply

  15. lissie says:

    I do what the individual posts to redirect though… I changed again to minima dark template and I have the same error ?

    Reply

  16. lissie says:

    hmm now I have the error even just with the top level redirect: should I be on a classic template or the newer version – I assume newer because the classic template doesnt have

    Reply

  17. [...] Hawaii. Love her blog very much as she’s very creative. Get to know her through a post of mine on Migration from Blogspot to WordPress Tutorial. Read [...]

Leave a Reply