I just moved my blog from Blogger to BlogEngine.NET. I done this for various reasons, but mainly because I'm a control freak.
Although I could have used the "blog.importer.application" provided by BlogEngine.NET, I did the export and import manually to have full control of the process.
Normally when moving domains the best way would of course be to setup 301 redirects, So my new blog to keep rankings etc. but Blogger has made that impossible.
I searched for ways for just forwarding all the requests to the Blogger blog to my new blog and found many posts on moving from Blogger to Wordpress. So this post just includes the specifics for BlogEngine.NET.
The main two sources I used was:
I wanted my old blog to stay up with posts intact so that people that has bookmarked it or any posts can still find what they are looking for and because read this post: why-you-should-never-delete-your-blogger-blogs.
The Walkthrough:
(Remember to replace "YOUR_NEW_BLOG_DOMAIN_HERE" with your blog's address.)
- Setup the auto redirect:
Log into your Blogger account, navigate to the "Layout" tab and click on "Edit HTML". In the template editor put the following in the <head>...</head>:
<meta content='5;url=http://YOUR_NEW_BLOG_DOMAIN_HERE/' http-equiv='refresh'/>
This will handle the front page redirection of the blog.
- To let the users know that your blog has moved, and that they will be redirected, add a message to the page:
<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;opacity: .4;filter: alpha(opacity=40);'>
<p><strong>My blog has moved!</strong></p>
<p>You should be automatically redirected in 5 seconds. If not, visit<br/> <a href='http://YOUR_NEW_BLOG_DOMAIN_HERE/'> <strong>YOUR_NEW_BLOG_DOMAIN_HERE</strong></a> <br/> and update your bookmarks.</p>
</div>
Place this right after the opening <body> tag.
- Because your new blog will contain all the posts from the old Blogger blog you need to avoid being penalised for duplicate content, add this to the "head" section as in point one...
<META NAME="ROBOTS" CONTENT="NOINDEX, FOLLOW"/>
<META NAME="GOOGLEBOT" CONTENT="NOINDEX, FOLLOW"/>
NOINDEX FOLLOW tells the crawler not to index the Blogger page but to FOLLOW the redirect. NOINDEX will also instruct the crawler to drop any already indexed version of page.
- To make the individual posts forward to their new counterparts a few things need to be done:
- On the Blogger control panel in “Settings -> Formatting”, change the Timestamps on posts to the
MM/DD/YYYY format.
- Look for this code in the Blogger Template
<b:section class='main' id='main' showaddelement='no'>
and enter the following widget code under it (combine the three bits):
<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' >
<div id='redirectorTitle' style='visibility:hidden' > <data:post.title/ > </div >
<script type='text/javascript' >
var new_domain = 'http://www.lehmkuhl.za.net/blog/post'
function utf8_uri_encode( str ) {
var high_code = new RegExp(/[\u0080-\uffff]+/);;
new_str = str;;
while( m = high_code.exec( new_str ) ) {
new_str = new_str.replace(m,encodeURIComponent(m));;
}
return new_str;;
}
var title = document.getElementById('redirectorTitle').innerHTML;;
// [INCOMPLETE] Keep percent signs that aren't part of an octet?
title = title.replace(/<[^>]*?>/g,'');; // remove tags
title = title.replace(/&.+?;/g,'');; // remove entities
title = utf8_uri_encode(title);; // handle UTF-8 characters
title = title.toLowerCase();;
title = title.replace(/[^%a-z0-9 _-]/g,'');; // remove punctuation
title = title.replace(/\s+/g,'-');; // turn spaces into hyphens
title = title.replace(/-+/g, '-');; // collapse runs of hyphens
title = title.replace(/^-+/g,'');; // remove prefixed hyphens
title = title.replace(/-+$/g,'');; // remove suffixed hyphens
var timestamp = ' <data:post.timestamp/ >';
timestamp = timestamp.split('/');
timestamp = timestamp[2]+'/'+timestamp[0]+'/'+timestamp[1];
var new_page = new_domain + '/' + timestamp + '/' + title + '.aspx';;
document.location.href = new_page;
</script >
</b:loop >
</b:if >
</b:includable >
</b:widget >
This will redirect the blogger post...
http://someblog.blogspot.com/2008/06/some-blog-post.html
...to...
http://YOUR_NEW_BLOG_DOMAIN_HERE/post/2008/06/28/some-blog-post.aspx
To see a working example visit my old blog at http://somethingsubversion.blogspot.com/.