Blogger to WordPress Migration with Zero Downtime

This tutorial is for those who are looking for blogger to WordPress migration. This is not the easiest way to switch from blogger to WordPress, but this is definitely worth trying if you have huge traffic and want to switch from blogger to WordPress with zero downtime.

That is blogger hosted blog(Custom domain or blogspot.com) to free WordPress.org script on a self hosted hosting.

If you are still using blogspot url without custom domain. Just refer this section only Tutorial for blogspot.com sub domain users. You guys don't need to follow everything.

Before starting blogger to WordPress migration make sure that you bought a web hosting for your website. You can try bluehost web hosting for your blog. It is one of the reputed web hosting service provider with lots of features and products. Read more about bluehost hosting.

Contact us for hosting offers with free blogger to WordPress migration service. Email to [email protected]

I tried this method number of times. In this method your blog will not face any downtime and will give minimum 404 urls.

Steps for Blogger to WordPress Migration

Where ever you see yourdomain.com or example.com, it just refers to your own domain.

1, Creating a temporary WordPress blog

Do not change DNS Records or Name Servers before completing first 4 steps.

This is something that you won't read in any other blogger to WordPress migration articles. Temp blog is a sub domain of main domain where we will keep contents of blogger blog for a small duration and will delete it once we are done with migration.

* If yourdomain.com is main domain beta.yourdomain.com is a sub domain which is free to create in most of hosting services.

Creating temporary sub domain

This step may be slightly different for web hosting services. Lets create a sub domain using bluehost cpanel. Remember we are using bluehost hosting cpanel as an example.

sub-domain

In hosting section click cpanel and access sub domains section as shown above.

For a single domain hosting service you should add this sub domain(beta.yourdomain.com) to public_html folder as shown below.

For a multi domain hosting you should point that sub domain(beta.yourdomain.com) to root of domain from drop down list. First find out root of that domain and do it so.  It may be like this public_html/yourdomain and you should be very careful if you are using multi domain hosting to avoid loosing data of your existing root domain.

path-sub-domain

We just kept it as blank after pulic_html/. What ever it is that sub domain should point towards the root of same domain. If you have any doubt in this section you can add it as comment.

Add a new a record to existing domain host.

So login to domain host(domain service provider) and add a A record pointing towards the web hosting service ip address. Lets get IP address first. In most of the cases you will get IP address of your hosting during their first signup email. Or you can get it from cpanel as well. Here it is sidebar of bluehost cpanel.

ip-address-copy

Now we have IP address eg: 203.168.176.23, login to domain account and add a "A record" with name "beta" pointing towards "203.168.176.23 (IP Address of web hosting)"

Here it is an example screenshot showing adding a record.

bigrock-dns-zone

Take beta.yourdomain.com(replace yourdomain.com with your domain name) in browser. You might see a directory or a default webpage of hosting. Sometimes it may take time to show up due to delay in dns propagation. So lets wait sometime.

Installing WordPress

Now you should install WordPress in that sub domain. WordPress installation is pretty simple and a cake walk using single click install scripts.

Read Start a new WordPress blog for detailed installation steps. You should install WordPress in that sub domain beta.yourdomain.com. As I already wrote detailed installation instructions in that tutorial, here it is some screenshots of installation wizard.

wordpress-installation-beta

blogger-to-wp-beta

That is it, you will get notification once installation is complete.

2, Setting up your newly created blog

In this step we are going to make some changes to new WordPress blog. Login to WordPress using temporary blog admin panel. beta.yourdomain.com/wp-admin/

Change permalink structure to match with blogger blog default url structure. Navigate as shown below

wordpress-pernalink-step-1

and change permalink structure as shown below

/%year%/%monthnum%/%postname%.html

And also delete default post and page added automatically during installation.

permalink

You can add a new WordPress theme or other changes to your site. Genesis framework and themeforest are great market places to find premium WordPress themes. You can also add necessary plugins for your blog. If you are done with design and setting of your blog. Start Importing content from blogger blog.

3, Importing contents from blogger blog to new temporary blog

This is not a difficult task. There is a dedicated plugin to import content from a blogger blog to WordPress.

From plugin section of WordPress add new plugin named "Blogger Importer Extended (https://wordpress.org/plugins/blogger-importer-extended/)". This plugin will help us to keep the urls exactly like that in a blogger blog.

blogger-import-extended-plugin

Plugin marked in red color is the one that I am talking about. Install this plugin and activate it.

Then from import menu on left side take Run importer as shown in below given image.

blogger-import-wizard

This will ask you to authorize using a google account where your blog is hosted. Authorize this to google and select blog as shown below.

one

After authorization it will show available blogs in your blogger  account. Select the blog and continue.

seect-blog

options-2

After clicking start import button it will start importing contents. It may take some time depending upon the number of posts and images that you have in your blog.

importing

In last step you can create either a new admin or assign to an existing admin.

selecting-user

After completing import, cross check some posts url and make sure everything is good. And check example.com and beta.example.com. They must be a copy of one another content wise.

We are going to do next step. Which will make you inaccessible your new blog for a small time and it will also give beta.example.com a 404 error page or a bad layout. So don't worry about it and just complete this step and change name servers which is given by hosting service provider.

4, Switch from temporary blog to original blog

After this step you no longer will be able to see WordPress admin panel, but will be accessible after next step. So complete all above steps before doing this step.

Navigate to general  settings in WordPress admin panel. There you will see WordPress Address (URL) and Site Address (URL). Which is named like beta.yourdomain.com. Change both those names to www.yourdomain.com and click save. Both urls should change at the same time. Now you will see a 404 page of your blogger blog.

5, Changing Name Servers

Now it is the right time to change Name Servers in your domain registrar admin panel. If you are using bluehost hosting, your name servers might look like these, ns1.bluehost.com and ns2.bluehost.com. Now login to domain registrar and change name servers as shown below. change-dns-records

Above settings are host dependent, so check with web hosting to get name servers. If you have any doubt about adding name servers. Just make a quick search "Change name servers in godaddy or change name servers in namecheap". You will find number of articles related to that.

If you are done with changing name servers, wait 3 to 4 hours. And check www.yourdomain.com, if it is showing your new WordPress blog just continue to next step. Otherwise wait until DNS changes to take effect after changing name servers.

So now your new WordPress blog is live, login to WordPress admin panel (www.yourdomain.com/wp-admin/). Add a new WordPress plugin named Search & Replace https://wordpress.org/plugins/search-and-replace/. Install this plugin and activate it to continue.

This WordPress plugin will help us to do search and replace entire database of our WordPress site. It will really help us take backup of database file.

So first take a backup of existing database as precautionary measure before playing with it.

create-sql-file

1, So click Create Sql File and download as shown below image.

back-up-database

2, Download SQL file and save it in safe place. We can use it, if something went wrong during search and replace process.

3, Now select Search & Replace tab and enter search for as like this beta.yourdomain.com and replace with www.yourdomain.com as shown below
search-replace-skyafar-wordpress

 

Make sure that you selected all tables, Disabled dry run and save changes to database option. And just click Do Search & Replace button.

After finishing all your temporary urls are now gone, all images and links now have only www.yourdomain.com version.

Now you can delete temporary sub domain to avoid duplicate content issues. Navigate to sub domain section of your host and just remove that sub domain. You just need to delete that sub domain only. Don't delete any files or any other settings.

remove-sub-domain Confirm delete and continue.

7, Redirecting search labels, pages, archivs, and feed pages

This is the last step in your set up. This will work only in case of apache servers. For nginx servers it will be different. It is a bunch of .htacess code that you need to add in top of .htacess file of your hosting. This will automatically fix 404 issues of pages, search labels and other pages.

.htacess location will be root path of your domain in hosting where WordPress is installed.

#Redirect archives
RewriteRule ^([0-9]{4})_([0-9]{1,2})_([0-9]{1,2})_archive.html$ $1/$2/ [L,R=301]

#Redirecting labels

# remove spaces from start or after /
RewriteRule ^search/label/(.*/|)[\s%20]+(.+)$ tag/$1$2 [L]

# remove spaces from end or before /
RewriteRule ^search/label/(.+?)[\s%20]+(/.*|)$ tag/$1$2 [L]

# replace spaces by - in between
RewriteRule ^search/label/([^\s%20]*)(?:\s|%20)+(.*)$ tag/$1-$2 [L,R]

#let finish label redirect
RewriteRule ^search/label/(.*)$ tag/$1/ [R=301,L]

#Redirecting pages
RewriteRule ^p/(.*)\.html$ /$1/ [L,R=301]

#Rss feeds
RewriteRule feeds/posts/default feed [R=301,L]
RewriteRule rss.xml feed [L,R=301]

#Atom feeds
RewriteRule atom.xml feed/atom [L,R=301]

#Comments Feed
RewriteRule feeds/comments/default comments/feed [L,R=301]

#remove mobile url
RewriteCond %{QUERY_STRING} ^m=1$
RewriteRule ^(.*)$ /$1? [R=301,L]

Access your .htacess file using filezilla or using cpanel and modify it. You may need to make some slight changes to this code depending on the server. Most of apache servers supports this code. So no need to worry about it.

So you are done. Now your blog is 100% WordPress. If you would like to change link structure of blogs. Read this article. Change Permalinks After Moving from Blogger to WordPress.

8, Tutorial for Blogspot.com blogger users.

If you are not using custom domain for your blogger blog, you just have to follow only some steps in the above article.

PS: For this beta.yourdomain.com refers to www.yourdomain.com or yourdomain.com(If you installed WordPress without www).

After purchasing hosting for your blog, just follow this steps.

#Redirect old blogspot to new one
RewriteCond %{QUERY_STRING} ^id=http://yourblog.blogspot.com/(.*)$
RewriteRule ^url$ http://www.yourdomain.com/%1? [R=301,L]

Above code should write just after this line.


RewriteRule feeds/comments/default comments/feed [L,R=301]

Try this url in browser http://www.yourdomain.com/url?id=http://yourblog.blogspot.com/ if that lands you in http://www.yourdomain.com/ you are ready to go, please cross check some other urls as well like this .

http://www.yourdomain.com/url?id=http://yourblog.blogspot.com/2016/02/post.html will redirect you to http://www.yourdomain.com/2016/02/post.html

So you are ready to move to next step.

  • : Making some small changes to your old blogspot blog.

In this step we are going to make some changes to blogspot.com blog. We will set a cross domain canonical url and a JavaScript redirect to your new blog.

Login to your blogspot blog admin panel and take template editor.

<b:include data='blog' name='all-head-content'/>

Search for this code and replace with this one, click the url to get access to it.

Download code

Now take any url in your blog, that will automatically redirect to your new blog.

Important Things to Remember

If you are using custom domain, ever used blogspot.com sub domain for this blog and created links to old blogspot blog url please follow step 8(Tutorial for Blogspot.com blogger users)  That will avoid broken links to your blog from old blogspot urls. This is completely optional. You must disable custom domain option from blogger admin panel those who are following step 8.

Do you have the habit of changing article dates? Then you might face some issues after moving to WordPress. All those date changed urls will become broken links when coming from search and bookmarked links. So we recommend this article to redirect 404 urls and to get better urls.

Disclaimer

You must try this tutorial with your own risk. There is a chance of drop in ranking as well as traffic. In my experience ranking and traffic used to comeback after few days.

We will not be responsible for any lost after following this tutorial.

Conclusion

We tried my level best to write this article. Hope this is helpful. As a conclusion, this article is suited for those who are looking for blogger blog migration with or without custom domain.

Recommended web hosting services

BlueHost

Bluehost India

DigitalOcean

GreenGeeks

We also offer free and premium migration services. Please contact us through this email [email protected] for more details.

Blogger Blogs , Blogger To WordPress , Blogger To WordPress Migration , Blogging , wordpress

RELATED

described in detail i am going to try this on one of my blog on blogger. i need to confirm one thing whether my traffic will remain same or there will be change in traffic.
I can't guarantee that. But in most of cases there will be some initial traffic loss... And will gradually come back to normal. So read disclaimer before trying this method. I can guarantee zero down time and less 404 urls.
it's a well explained tutorial to beginners.