So you decided to move from blogger to your own hosted wordpress with your own domain. Great! But now we need to send your visitors to your new site without breaking all you’re page links. There are lots of instructions for this on the internet but they don’t work.
Here is what worked for me:
- Import the site into wordpress: http://www.mrgarylee.com/converting-a-blogger-to-a-real-blog/
- Fix the page slugs to match your old blogger site: http://justinsomnia.org/2006/10/maintain-permalinks-moving-from-blogger-to-wordpress/
- Redirect your feed to the new site, in blogger Settings->Site Feed->Post Feed Redirect URL: http://www.YOURNEWSITE.COM/feed/
- Redirect your old site to the new one.
- Log into blogger
- Revert to classic template
- Paste in this template (and fix the urls). This template is an utter hack, but since blogger doesn’t give very many options for template tags that actually work, this is what we have. It is very important to use the meta redirect with a timeout of 0 since the search engines should treat this as a permanent redirect and update the urls in the search results. That is also why javascript based redirects are no good.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="<$BlogLanguageDirection$>">
<head>
<title>Moved to http://www.YOURNEWSITE.COM</title>
<MainPage>
<meta content="0;url=http://www.YOURNEWSITE.COM" http-equiv='refresh'/>
</MainPage>
<ArchivePage>
<meta content="0;url=http://www.YOURNEWSITE.COM/archive/<$BlogPageTitle$>" http-equiv='refresh'/>
</ArchivePage>
<Blogger>
<ItemPage>
<meta content="0;url=http://www.YOURNEWSITE.COM/<$BlogItemPermalinkURL$>" http-equiv='refresh'/>
</ItemPage>
</Blogger>
<meta content='NOINDEX, NOFOLLOW' name='ROBOTS'/><$BlogMetaData$>
</head>
<body>
This blog has moved to <a href="http://www.YOURNEWSITE.COM">http://www.YOURNEWSITE.COM</a>
</body>
</html> - That will send visitors to your new site, but it will send them to some odd pages, which will not be found on your new site. So add these rules to your .htaccess file to get them to the right place:
<IfModule mod_rewrite.c>
RewriteEngine On
#For my funny redirect rule
RewriteBase /
RewriteRule ^archive/(.*)January\ ([0-9]{4})$ $2/01/ [QSA,R=301,L]
RewriteRule ^archive/(.*)February\ ([0-9]{4})$ $2/02/ [QSA,R=301,L]
RewriteRule ^archive/(.*)March\ ([0-9]{4})$ $2/03/ [QSA,R=301,L]
RewriteRule ^archive/(.*)April\ ([0-9]{4})$ $2/04/ [QSA,R=301,L]
RewriteRule ^archive/(.*)May\ ([0-9]{4})$ $2/05/ [QSA,R=301,L]
RewriteRule ^archive/(.*)June\ ([0-9]{4})$ $2/06/ [QSA,R=301,L]
RewriteRule ^archive/(.*)July\ ([0-9]{4})$ $2/07/ [QSA,R=301,L]
RewriteRule ^archive/(.*)August\ ([0-9]{4})$ $2/08/ [QSA,R=301,L]
RewriteRule ^archive/(.*)September\ ([0-9]{4})$ $2/09/ [QSA,R=301,L]
RewriteRule ^archive/(.*)October\ ([0-9]{4})$ $2/10/ [QSA,R=301,L]
RewriteRule ^archive/(.*)November\ ([0-9]{4})$ $2/11/ [QSA,R=301,L]
RewriteRule ^archive/(.*)December\ ([0-9]{4})$ $2/12/ [QSA,R=301,L]
RewriteRule ^http:/.*\.blogspot\.com/(.*)(\.html)$ $1 [QSA,R=301,L]
RewriteRule ^http:/.*\.blogger\.com/(.*)(\.html)$ $1 [QSA,R=301,L]
RewriteRule ^([0-9]{4}/[0-9]{2}/.*)(\.html)$ $1 [QSA,R=301,L]
</IfModule>

