Step-by-step guide to moving your blog from Blogger to WordPress on AWS

Climb the Mountain

So we are finally HERE.  All migrated and converted from Blogger to WordPress as well as moved from Google to AWS.  All thanks to an Open Live Writer error.. That’s a very strange catalyst for such a seemingly big move.  As requested by some, here is the process I used to migrate 780 blog posts from Blogger to WordPress/AWS while hopefully avoiding losing any of my Google SEO or Rankings.

I’m going to keep a lot of this high level since the internet is FULL of much more in-depth guides on how to get from here to there.  I did want to share my custom experience though.  I’ll hyperlink any relevant posts that I used for my journey in the text below.

First Step: Export all Blogger Articles:
This was pretty straight forward.  Go into your Blogger panel, settings and then export data.  It produces a really nice XML document with all of your Posts.  Keep in mind PAGES are not exported so if you have a lot of them, you will have to recreate them manually.

Set Up EC2 instance using the Free Tier:
I had an Amazon account already but if you don’t (Lucky You!), you can sign up and get a FREE 12 months of service (750 Compute Hours a month).  If not (like me), don’t worry, it’s still super cheap (see the cost section below).

I followed the step by step instructions in this video (Migrate to AWS) to create the main T2.MICRO instance.


After picking the WordPress Certified by Bitnami image, the VM was up and running in a few minutes.  It was crazy how fast it was all allocated and completed.  (IP Address and everything)

Import Blogger Backup:
Once the WordPress site was up and running (https://[IP]/wp-admin) , You can connect to it and import your Blogger backup XML file.  This import took care of getting all 780 posts into the new WordPress site.  You do have to make some modifications to make sure all the permalinks match up to the old blogger system.  This whole process is pretty easy though.  My import included tags but no comments as I used the Disqus system for my comments.   Be sure to also recreate your pages in this step.

Update the Look and Feel of the Site:
This is by far the HARDEST part of the migration.  Themes that work on Blogger don’t necessarily work in WordPress.   But there are THOUSANDS upon THOUSANDS of themes you can choose from so just try to find something close and then start your tweaking.  I tried my best to keep things consistent since I didn’t want a drastic change but did take the opportunity to make some subtle changes that I love.  (Have you seen the Video links in the top right? and the social links on the side? – Those are new and I like them a lot.).  Here are the old and new sites side by side. (or top/bottom depending on your screen size – Most WordPress themes are built to be responsive!)

Image image

The WordPress themes are just better.  There is SO MUCH more control and customization available that you will kick yourself for not making the move earlier!

Update DNS to point to the new WordPress AWS site:
Once I had the site’s look and feel to a place I liked, I went ahead and changed the DNS provider to point to the new site.

Set Up Redirection on the Blogger site:
In case anyone tries to hit your old Blogger site by IP or another alias, you can set up redirection on the Blogger site.  I used this link.  Be sure to disable the mobile theme as well on your old Blogger site.

With the URL and redirection, all SEO and Google Rankings should remain in tact.  In fact, they might even go up since WordPress has a TON of SEO enhancements and plugins to make your rankings rise.

Set up SSH access to AWS instance:
In order to do some things like disabling the Bitnami Banner or setting up SSL, you will need SSH access into your instance.  This was also super easy and I just followed the directions below:

Set up SSL certificates:
On the old Blogger site, Google generously enabled SSL on the sites for free.  There was no need to purchase any certificates or anything.  I thought after migrating I would be stuck with this expense but turns out all Bitnami images have a SUPER EASY to use LEGO script!  The LEGO script will autoconfigure a FREE Let’s Encrypt SSL certificate for your WordPress site and then schedule a CRON job to auto renew it every month.  It’s completely free, completely secure and completely automated!  I was so pleasantly surprised when I found this method.

Add in SSL Insecure Content widget to fix all outgoing non-secure links:
Getting that Green Lock status up there took much more work than I thought it would.  Putting in the SSL certificate was just half the job.  The other half involved a GREAT little WordPress plugin that will search your entire site and replace things.

This handy plugin allowed me to replace ALL instances of https:// with https:// in one fell swoop.  Using the search and replace I was also able to go back and fix a ton of broken links in past articles with a few keystrokes.. super awesome plugin.  I also added in the plugin called SSL Insecure Content FixerThis one dynamically grabs anything my Search and Replace might have missed.  Once these two things were in place, the site passed all SSL audit tests with flying colors.


Reconfigure the Disqus Comment System:
I use the Disqus comment system for all of my site’s comments.  It is excellent with Spam protection and pretty user friendly.  Once the site was set up, this was pretty simple to reconfigure and all my comments were associated with their respective posts. [Example]

Reconfigure my RSS feed:
My RSS feed is used for all sort of automated post announcements.  Moving from Blogger to WordPress, the feed is a little different and much cleaner.  My new feed address is so I just needed to update all the various services using them.  For me, it was MailChimp, IFTTT, Zapier, Integromat and some internal blog links.  I am not sure if this fixed people who subscribed via RSS in the past but if were subscribed via email, you are good. (If you haven’t, why not subscribe now?)

Misc. Plugins and Widgets:
Some of the plugins that I installed on my WordPress site were:

  • WordFence Security – Since you are now running your own server, get a little help in the security department.
  • WP-Optimize – This plugin automatically cleans up your database to make things run better.
  • WP Mail SMTP – This is necessary for email notifications.
  • Compress JPEG & PNG – This handy plugin will compress all images on the site in the background using a free site called  This helps save storage and improve loading times for the website.

Since my machine is on AWS now and is just a Virtual Machine, I just took a snapshot of the entire machine once everything was finalized.  I am still exploring other backup solutions but, for me, a snapshot is the perfect rollback.

Now that the new blog has been up and running for a few days, it looks like it will cost around 40 cents a day to run.


I think with some of the AdSense Advertising on the site, everything should break even but even without ads, $10 to $15 dollars a month for hosting seems extremely reasonable considering the reliability and scalability afforded by AWS.  Since I am in IT professionally, having a live system hosted with  one of the largest cloud providers only helps enhance that skill set for work as well.  SO that helps pay the bills as well. 😉

Final Thoughts:
I am so glad I did this.  I’m extremely disappointed I did not make the switch earlier though.  I’m also bummed that I couldn’t port my Blogger stats over to WordPress so I’m starting fresh from an analytics perspective as of 2019.  For posterity, I’ll drop my final Blogger stats in this post.  This way I can look back and still have a record of it. 🙂


Anyway, this was definitely one of my longer posts but hopefully it’ll motivate or help someone out there who might be thinking about migrating away from Blogger and are intimidated by the seemingly overwhelming work effort.  I do think that spending the weekend migrating everything over was in my best interest and I’d encourage anyone out there thinking about it to just do it.

Thanks for reading!