Moving from Blogger to WordPress Without Breaking Links or Losing Rank

Moving from Blogger to WordPress Without Breaking Links or Losing Rank

I recently moved from Blogger to WordPress, which offers a much more flexible platform with many more helpful plugins and widgets on the back end. (Note: if you are planning to start blogging in the future, I would definitely recommend using WordPress from the start; the Blogger platform has few, if any, advantages and many more limitations.) Normally, this sort of transition shouldn’t be especially difficult, but my situation was more difficult than usual mainly due to my use of subdomains on the old blogger platform. After spending a couple days of frustration trying to create redirects from my old links to the new one, those redirects now work. Since no other blog posts dealt straightforwardly with the process involving a move from custom subdomains on blogger (which does not allow the use of subdirectories, like the “/blog” I am using now), I thought it might be helpful to chronicle what actually worked.

The Standard Process: 301 Redirect Plugins

Presuming one has a custom domain on Blogger (if not, I would suggest establishing one there first for about three or four weeks, letting Google recrawl your site, with Blogger automatically handling the redirects), moving to WordPress without breaking everything is generally pretty straightforward. WordPress has an easy import process from Blogger, and once the files are moved over, it’s simply a matter of ensuring that the permalinks for those files match their old URLs from Blogger (there are plugins to do this in a rather short period of time). There are several worthwhile links explaining how to handle the process if one doesn’t have any unusual factors like I did, for example:

http://joepoon.com/blog/2009/04/02/from-blogger-to-wordpress-without-breaking-the-internet/

http://www.seochat.com/c/a/Search-Engine-Optimization-Help/How-to-Move-Blogger-to-WordPress-Using-Your-Own-Domain-Name/

The Basics of 301 Redirects

If your hosting service is on a standard Apache server (if not, a number of other ways to redirect URLs can be found here), the easiest way to handle large-scale domain-level redirects in a search-engine-friendly manner is by creating an ht access file (put the code within a text editor, upload the file, and then change the name of the file to “.htaccess” at the root level directory) with the following code:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{http_host} ^domain.com [nc]
RewriteRule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

Make sure you REPLACE www.newdomain.com with your actual domain name. If you are using a subdirectory structure like I am, you’ll need to make a slight change, by inserting the subdirectory into the redirect like so:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{http_host} ^domain.com [nc]
RewriteRule ^(.*)$ http://www.domain.com/subdirectory/$1 [r=301,nc]

This ensures that anything sent to the original location will be seamlessly redirected to the new location, with no change of search engine rank or broken links, provided the data after the final slash (anything after “subdirectory/” in the second example) is the same in each link. (Unfortunately, this didn’t quite do it for me, since I had the additional problem of subdirectories, as we’ll deal with below.)

Of course, Blogger’s default permalink structure and the permalink structure you’re likely to use on WordPress (one of the most SEO-friendly structures is the %postname/ permalink) are different. So this means that the posts still would not redirect to the proper place, instead simply redirecting to the front page of the new blog location. There are several WordPress plugins that provide additional redirect power to account for this problem;

How to Handle Subdomains

As I mentioned above, my problem was that I had previously arranged my blogs on a subdomain structure (blog.jasonstaples.com and trivialruminations.jasonstaples.com), since Blogger doesn’t allow subdirectories. This meant that I needed to redirect each of those subdomains to the new location: http://jasonstaples.com/blog, while also finding a way to handle all the individual posts from those locations. I tried all sorts of variations, but what eventually worked was creating two separate subdomain folders within my current domain structure and then inserting the following code into a .htaccess file at the root level of each subdomain:

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://jasonstaples.com/blog/$1 [R=301,L]

But the problem of the individual posts still remained; no matter what other attempts I made, I wasn’t able to get all the post-level redirects made. Eventually, by plugging my various URLs into the redirect checker at this page, I was finally able to figure out where each page was ending up. The problem was that an old post permalink was being redirected to the new subdirectory location with the post information intact. For example,

http://blog.jasonstaples.com/2009/10/liberals-arent-only-ones-who-tweak-text.html

was being redirected to:

http://jasonstaples.com/blog/2009/10/liberals-arent-only-ones-who-tweak-text.html

So according to the redirect checker, the .htaccess file was doing half the work: the first part of the link was simply substituted, without doing changing any of the rest of the URL structure. Once I knew that, I used a WordPress plugin (Simple 301 Redirects) to redirect each individual post—a relatively long process of typing in each individual permalink path (for the post above I typed in “/2009/10/liberals-arent-only-ones-who-tweak-text.html” and redirected it to the proper link), but the links are now properly rerouted without costing Google rank. Another really nice benefit to doing things this way is that I was able to delete my old Blogger blogs, ensuring that there would be no confusion over the move or duplicate posts in different places.

2 Comments
  • reepicheep78
    Posted at 13:05h, 18 December Reply

    This is a great article, thanks! but I do have an important question. Under the heading “The Basics of 301 Redirects,” you have some code, and then you said to “replace http://www.newdomain.com with your actual domain name.” However, in the code examples, you didn’t *use* new domain.com, just [www.]domain.com. Where should newdomain.com have gone in the code?

Post A Comment