Blogger is an awesome free tool to quickly start blogging. However, many Blogger users eventually realize that if they want full control of their blog, then they would be better off with their own self hosted WordPress.org blog (what’s the difference between self-hosted WordPress.org vs WordPress.com blogs). In this step by step tutorial, we will help you switch from Blogger to WordPress without losing Google rankings.

Video Tutorial
If you don’t like the video or need more instructions, then continue reading.
Step 0. Before You Start
To get started with WordPress, the first thing you would need is a good WordPress hosting company and your own domain name. We highly recommend Bluehost because they will give you a free domain and 50% off their hosting plan (special for WPBeginner users). Bluehost is also an officially recommended hosting provider of WordPress.
If you want a Bluehost alternative, then take a look at Siteground who also offer the same special offer to WPBeginner users.
Once you have signed up for WordPress hosting and set up your domain name, the next step is to install WordPress on your hosting account. We have a step by step tutorial on how to install WordPress. Once you have installed WordPress, it is time to move your content from Blogger to WordPress.
Step 1. Export Your Blogger Blog
First thing you need to do is export your blogger blog’s content. Simply log into your blogger dashboard and go to Settings » Other page. Under the blog tools, click on the Export Blog link.

This will bring up a popup where you need to click on the Download Blog button.

Your Blogger blog’s content will be downloaded to your computer in an XML file.
Once the download is complete, it is time to import it into your WordPress site.
Step 2. Import Blogger to WordPress
To start importing your Blogger site into WordPress, you need to go to your WordPress admin and visit Tools » Import. On the Import page, click on Blogger.

This will bring up a popup asking you to install the Blogger to WordPress importer. You need to click on the Insall button.
WordPress will now download and install the Blogger Importer plugin for you. Once it is finished installing, you would need to click on the Activate Plugin and Run Importer link to continue.

On the Import Blogger screen, WordPress will ask you to upload the XML file. This is the file that you downloaded in Step 1.
Simply click on the choose file button and upload the XML file you downloaded earlier. Next, click on the Upload file and import button to continue.

Now if you didn’t select one of our recommended hosts or your site is really large, you may get an error that your file size is too large. In this case, you would need to increase your maximum file upload limit. If your file is small, then you won’t see any errors.
WordPress will now import your blogger posts one by one. When it is finished, you will be asked to assign an author to the imported posts. You can assign your blogger posts to an existing author (you) or create a new author account.
Congratulations! you have successfully imported your Blogger content into WordPress. However, you still need to make sure that you don’t loose any search rankings and that visitors from your old blog easily land to the same content on your new WordPress website.
Step 3. Setting up Permalinks
Permalinks is the term used for URL structure of individual pages. WordPress comes with a feature that allows you to set up SEO friendly URL structure. However, since you are importing content from Blogger, you would want your URL structure to be as close to your Blogger URL structure as possible.
To set permalinks, you need to go to Settings » Permalinks screen and choose Month and Name as your permalink structure.

Step 4. Setting up Redirection
The most important step in moving any website is to set up proper redirection so that users are redirected to your new website.
The important part of redirection is that you want users to land on exactly the same page on the new site which they were trying to access on the old site. Secondly, this also notifies search engines that your old site is moved to a new location.
To successfully move from Blogger to WordPress, you need to set up redirection on two levels.
First, you will redirect Blogger visitors to your new WordPress blog. Second, once users reach your WordPress site, you will redirect them to the exact post they were trying to read.
Let’s first set up redirection on the blogger blog. You need to log on to your Blogger account and go to your Blog’s settings and click on Template.

On the template page, you need to scroll down to the bottom of the page and click on Revert to Classic Template link.

After switching to classic template, you will see ‘Edit Template HTML’ textarea. You need to replace everything in this text area with the following code. Make sure that you replace http://www.example.com with your own domain name.
<html>
<head>
<title><$BlogPageTitle$></title>
<script>
<MainOrArchivePage>
window.location.href="http://example.com/"
</MainOrArchivePage>
<Blogger>
<ItemPage>
window.location.href="http://example.com/?blogger=<$BlogItemPermalinkURL$>"
</ItemPage>
</Blogger>
</script>
<MainPage>
<link rel="canonical" href="http://example.com/" />
</MainPage>
<Blogger>
<ItemPage>
<link rel="canonical" href="http://example.com/?blogger=<$BlogItemPermalinkURL$>" />
</ItemPage>
</Blogger>
</head>
<body>
<MainOrArchivePage>
<h1><a href="http://example.com/"><$BlogTitle$></a></h1>
</MainOrArchivePage>
<Blogger>
<ItemPage>
<h1><a href="http://example.com/?blogger=<$BlogItemPermalinkURL$>"><$BlogItemTitle$></a></h1>
<$BlogItemBody$>
</ItemPage>
</Blogger>
</body>
</html>
Save your template, and you have successfully implemented redirection on your Blogger blog.
However, you still need to setup redirection on your WordPress site so that users are redirected to the proper posts.
You need to copy and paste the following code in your WordPress theme’s functions.php file or in a site-specific plugin.
If this is your first time adding code to your WordPress site, then you may want to check our beginner’s guide to pasting snippets from the web into WordPress.
function blogger_query_vars_filter( $vars ) {
$vars[] = "blogger";
return $vars;
}
add_filter('query_vars', 'blogger_query_vars_filter');
function blogger_template_redirect() {
global $wp_query;
$blogger = $wp_query->query_vars['blogger'];
if ( isset ( $blogger ) ) {
wp_redirect( get_wordpress_url ( $blogger ) , 301 );
exit;
}
}
add_action( 'template_redirect', 'blogger_template_redirect' );
function get_wordpress_url($blogger) {
if ( preg_match('@^(?:https?://)?([^/]+)(.*)@i', $blogger, $url_parts) ) {
$query = new WP_Query (
array ( "meta_key" => "blogger_permalink", "meta_value" => $url_parts[2] ) );
if ($query->have_posts()) {
$query->the_post();
$url = get_permalink();
}
wp_reset_postdata();
}
return $url ? $url : home_url();
}
The code above creates a blogger to WordPress 301 redirect which is what you need to ensure best SEO.
Once you have pasted this code, that’s all you need to do for setting up redirection.
Now anyone visiting a post on your old Blogger blog will be redirected to the same post on your new WordPress site.
Step 5. Redirect Feeds
Your RSS subscribers on the old Blogger site will not be able to notice the switch. That’s why you will need to redirect your Blogger feed to your new WordPress site’s feed.
You can do this by logging in to your Blogger account and then visit Settings » Other page under your blog dashboard.
Under the Site Feed section, click on Add link next to Post Feed Redirect URL. Here you can enter your new WordPress site’s feed address.
Usually it is http://your-awesome-site.com/feed/ (don’t forget to replace your-awesome-site with your own domain name).

Step 6. Import Images From Blogger to WordPress Media Library
When you are transferring blogger to WordPress, the WordPress importer will download images from your blogger posts into the WordPress media library. However, it can fail to download some images. This doesn’t happen often, but it can happen.
But there’s nothing to worry about because you can find and import these images into WordPress. Follow the instructions in our how to import external images in WordPress tutorial.
This will import all images from your blogger into your WordPress Media Library. Once the images are in your WordPress media library, you can easily create image galleries and more.
We hope this tutorial helped you switch from Blogger to WordPress without losing Google rankings. We would like to welcome you to the WordPress community. To get started with WordPress, please take a look at our beginner’s guide section and our WordPress beginner videos.
If you have a friend still using Blogger, then you can show them our comparison on WordPress vs Blogger and convince them to switch over.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.





When editing your functions.php file – will those edits hold when you update your theme or when you do WordPress updates, or do you have to do this each time you update? Or do I need to be working with a child theme?
Also – If I plan to change themes, should I do that before I make the change to the functions.php – thus only doing it once?
Great tutorial – thanks
Your theme’s functions.php file will get overwritten when you update the theme. To deal with this you can create a child theme and add custom code to child theme’s functions.php file. However, if you switch themes then you will have to copy paste the code.
Another approach is to use a site-specific plugin. It remains out of your theme and does not get’s in the way when you update any WordPress core, plugin, or theme files.
To My Google Blog I Don’t See Export Or Import I Only See Import And Backup,
Hey, currently my blog is and I want to shift it to

1) Is it possible?
2) Will the total views would show too or we would have to start from 0?
Kindly please reply to my question
Great post and great video!
Yes it is possible, please see our guide on the difference between self hosted WordPress.org vs free WordPress.com blog.
I have a question. After blogger to wordpress migration and redirection, What to do with blogger posts? I can delete them?
I was thinking to hire some one to migrate my blog but now iam capable of migrating myself.
I will also post my experience of migration process. Really helpful post.
Thanks.
Thanks for this- I’ve taken all the steps but the redirect doesn’t seem to be working properly for me. It works on a desktop computer, but from mobile devices the link still take you to my old blog. Any ideas what has gone wrong?
If i import my blogger posts to wordpress, will it still bear the original dates?
Yes
Thankyou! Painless and concise. My kinda tutorial
Thanks for this article. I have successfully migrated my blogspot blog to wordpress. I just wanted to know that should I deactivate blogger importer plugin or not ? Thanks
Yes, you can deactivate it.
Thank you so much
It is really helpful 
Can we export blog to drupal or joomla?
Thank you a million times over! I really am new to all this, but your step by step tutorial on how to switch to WP worked for me the very first time! My redirects and everything (at least that I’ve checked so far) are working great! Thank you again, you made this so much easier than what I expected!
Glad you found it helpful.
Thank you so much for the awesome tutorial! It was easy to follow. But I only have one problem. Some of my pictures didn’t transfer and I did Step 6. I think it may be because those pictures were from my Google Drive. Is there a way to transfer them or would I manually have to upload those images again? Thanks for your help.
Love this site so much! So question is when I copy and paste the lines get all jumbled when I try to paste it into my php thingy. I deleted it because I was scared I would blow something up on my site. Is there a way to make my paste look like what I copied?
Take your mouse over to code snippet on our site and you will see a viewsource button at the top right corner of the snippet. Clicking on it will open the source code in new popup window. Copy that code and then paste it.
PLEASE HELP! I did everything your post and video says but for some reason when I click on an old link for a specific post, it redirects to the .com but to the homepage, not the actual post.
How can I fix this?
For example, which I click on this-
it brings me to this-
THANK YOU!!!
make sure the destination of your wordpress post slug are the same with your old blogger post slug. for example if your blogpost url are example.blogspot.com/2016/05/your-post-slug.html then make sure your wordpress url are example.com/2016/05/your-post-slug/
window.location.href=”http://example.com/?blogger=”
These lines of code are giving an error in blogger.
Error parsing XML, line 3, column 11: The content of elements must consist of well-formed character data or markup.
I’m having issues on the 301 redirection. I’m Using News pro genesis child theme, should i paste the code in the function.php of the child theme or function.php of Genesis frame work?
Thanks so much have managed to migrate a blog of over 200 posts to a new one and not lost anything. Great stuff! Thanks.
Glad you found it helpful.
Thank you for this tutorial! Everything moved over fine, except the pictures. Can you advise?
Looks like you already resolved the issue
Yes, I uploaded another plug in that transfered the photos too. Unfortunately, now all posts are double, with the same publishing date. This means I get to go back and reminisce while I delete doubles! Still, I appreciate the tutorial, it really helps to have both the video and written instructions. Also, why do I have to go into the FTP for each template? You mentioned if I change templates, to do this again?
What was the plugin for importing media from blogger? I am having this problem too.
Hi there. I’m really frustrated. I posted a comment on Apr. 6 but haven’t heard back from anyone.
I followed the instructions on how to switch from blogger to wordpress. And I made a site-specific plugin because I was nervous about messing with the functions.php code to put in that redirect code.
Here’s the problem: with that site-specific plugin activated on my website (susansinthegarden.com), if I click on a link to a blog post that was on my old blogger site, it redirects to my new homepage… which is great, but my goal is to have a person go directly to the SAME post on my new website and not to my homepage.
What am I doing wrong? I’m losing sleep over this so please help ASAP! (and if anyone else sees this and knows what’s wrong, please comment. I’d really appreciate it!) Thanks.
I’m also having the same issues. Have you been able to solve yours? If yes, How?
Hi, Christopher. I’ve heard from anyone about this. Have no idea how to solve this problem as I’ve done everything to the letter. Very frustrating. I wish someone would help us out with this problem. Sooo, if anyone out there experienced this, would you please let us know how you solved it so folks are directed from an old Blogger post to the SAME post on WordPress? Thank you.
Sorry, meant to say “I haven’t heard from anyone about this.”
Hello, Susan. Hope you are good?
I was able to redirect mine but I had to purchase Yoast SEO premium . Yoast did all the redirection for me.
I don’t have the blog tools or export in blogger. Mine just says delete blog.????
I’m having the same problem Kadi is having – blogger doesn’t give me the “import/export” option, just “delete blog”. Would love to hear how to export from blogger to WP or it’ll be a lot of cut & pasting.
Thanks!
Above “Delete Blog” you should see ‘Import Content’ and “Backup content”. Just click on Backup content. Hope it works for you.
Hello! Editorial Staff.
I have a problem.
I recently migrated from blogger to wordpress as you said in this tutorial. And also done changes in blogger template and in feed redirection. But posts are not redirecting from search results and also in post internal links.
What is the problem. I have also blogger custom domain. What to do?
I have a question re: setting up the permalinks. On blogger, this is the format of the links to my blog posts:
domain/yyyy_mm_01_postname.html
On WordPress, this is the format of the links to my blog posts:
domain/yyyy/mm/postname
So the differences are the underscores on blogger, plus the day, plus the “.html” on the end.
How would I resolve this? Do search engines automatically “translate” the underscores into slashes? And do they ignore the “.html”?
If this is the case, perhaps I would need to make a custom permalink that is something like this:
/%year%/%monthnum%/%daynum%/%postname%/
Could this work? Thanks in advance for your help.
Thanks for the info– however, my blog is currently on blogger as its own domain name. How do I do the redirection if I’m going to switch the name over to wordpress as well?
My blog is currently I use blogger, but want to switch to wordpress, but continue to use
Any of you experiencing 403 error after all of this. Contacted the domain hoster and said it probably the issue with the plugin that being used. Anyone else experienced that?
Thank you so much for this post, it is just what i was looking for. However, I am having an issue withe the 301 redirects. When a page is redirected, it is looking for domain.com/path/post-title.html whereas the permalinks in wordpress are domain.com/path/post-title/. That is, to be more succint, the URI ends with a ‘/’ instead of ‘.html’. Is there a way to remedy this.
Hi, SMLOCKE. Did you get a response on this because I’m having the same problem with the lack of an .html causing a 404 not found error. Thanks.
Use the following customized permalink:
/%year%/%monthnum%/%postname%.html
It worked for me.
Thanks.
Can I say I love you to a stranger? Thank you so much! That custom link did the trick! I even called my hosting support and they couldn’t! You are awesome!!!!!!
Hi,
I’ve done everything explained above but stuck in the wordpress 301 redirection process
Error:
Parse error: syntax error, unexpected ‘<' in /home/manage1991/public_html/wp-content/themes/aqueduct/functions.php on line 446
/*————————————————————-
Redirection Code for Posts
—————————————–*/
<?php ////Line 446
function blogger_query_vars_filter( $vars ) {
$vars[] = "blogger";
return $vars;
}
.
.
.
Please see our guide one how to fix syntax error in WordPress
This is best wordpress blog ever
This useful even for moving free blog on blogspot to free blog on wordpress?
And will it transfer previously received comments too?