Website migration, as the name suggests refers to the process of moving a website from one domain to another.

What if I lose half of my traffic?

What if my site goes out of business?

These are all the questions that prevent from migrating their site to a new domain.

Website migration when gone wrong is an SEO’s nightmare.

But if you have right website migration SEO strategies, checklists, planning, systems, and processes, it need not be difficult.

Why I decided to migrate to BloggingX?

Since 2014, I used to blog at GoBloggingTips.

At the end of November 2018, I felt the need of rebranding my domain name and migrate my site. So I decided to invest in a premium domain name –


Brandability: My previous domain GoBloggingTips lacked branding as it contained the term “tips” in it. Having a brandable domain name shows the audience that you’re in a serious business, and also when people look at your domain name, it should sound credible.

If you are comfortable enough to wear a t-shirt with your brand name in it, you’ve got a good brand name. It’s not the case with GoBloggingTips.

Memorability: The brand memorability of BloggingX is way too good than GoBloggingTips. The BloggingX is highly memorable and very short in length – 2 words in it. Good brand memorability results to more direct and returning visitors, which are great SEO ranking factors.

Brand searches: When people search for your brand online explicitly mentioning it, it’ll get a ranking boost.

searching the brand online by explicitly mentioning it

These kind of brand searches are very strong SEO signals for Google to rank your site. This is possible with two things:

  1. Quality content or products on your blog
  2. Brand memorability of your blog

A study by Moz also shows that branded searches carry more SEO weightage than DA.

Although, GoBloggingTips received good brand searches, I’m pretty sure that I’ll get more with BloggingX.

My expectations: I would expect that the ranking will be lost at least for a month, and then I’m sure I’ll regain the traffic back. But, in the long run, I’m confident that this move benefits me. And, by far will outweigh the loss.

Scenario – The context

I have GoBloggingTips, that’s fairly a popular blog in the blogging niche.

It was founded in June of 2014.

It has around 237 pages and posts. The topics range from blogging, SEO, social media marketing, WordPress, and so on.

GoBloggingTips pages and posts

I’m getting an average of 32,000 page views per month.

When it comes to SEO, the domain has got:

  1. Domain authority: 36
  2. Citation Flow: 35
  3. Trust Flow: 24
  4. Domain Ratings: 60
Ahrefs' analysis of GoBloggingTips

Here you can see the Ahrefs screenshot of GoBloggingTips.

It has got a good trustworthy backlink profile from very authoritative sites.

I need to rebrand and migrate this site for more brandability. When I decided to rebrand it and acquired BloggingX, the GoBloggingTips was 1,637 days old (4.5 years old).

It’s a pretty good old site.

The content quality is above mediocre, certainly not top-notch as per my standards. Because, there are posts that are years old and have not been properly updated.

As per the plans, I needed to prune some content on GoBloggingTips before migrating it to the new site. I’ll discuss this later.

Preparation – How I started it?


It’s very important to do preparation for the migration using checklists and documentations.

As per my plan of website migration, I acquired the premium domain name on 29th, November 2018.

Research Undraw

I started with the promotion of the new site

Rather than starting the website migration all of a sudden, I decided to publish some highly in-depth articles on BloggingX and promoted it extensively.

As of creating the initial version of this case study, the BloggingX is 47 days old and below is it’s traffic report.

Traffic report of BloggingX

That’s like 200 pageviews per day, pretty decent for a new site.

The majority of this traffic is direct and from social media sites. There was very less organic traffic as the site was brand new.

I published a total of 6 blog posts totaling around 28,859 words (almost word count of a small book)!

Why I published content before moving? I published highly relevant content to blogging, even before moving. Why?

  • To signal topical relevance.
  • To have some quality pages indexed so that after migration, pages may rank faster.
  • Giving some time for me and Google to figure out if the new domain has any issues, before migration.

According to me, if I help Google to quickly realize what my site is about, what content to expect, audience, then after the site migration it would take less time for it to effectively index and rank.

Honestly, I did not do much SEO for the new domain.

I updated my site links on :

  • Facebook
  • Quora
  • Twitter
  • Others

It may have resulted in some profile links.

Other than that I participated in some expert roundups and an interview. This resulted in a couple of decent dofollow backlinks.

Getting the data in place

While doing the site migration process, it’s very important to list down all the published pages on your site along with their metrics like traffic, backlinks, so on.

Additionally, I am also getting rid of the outdated articles and also merging similar articles to avoid content cannibalization. I thought, content auditing is best done while migrating the site, to keep the new website clean.

I created a spreadsheet with the following details in it.

  1. URL of each published page on our old site – Sitemap + Scraper for Chrome.
  2. The traffic each page got from the last 365 days (I did this to include seasonal variations in traffic) – I pulled it from Google Analytics.
  3. The number of dofollow backlinks of each page – I pulled it from Ahrefs
Listing down published pages of site along with metrics like traffic and backlinks

Content auditing action steps

By looking at the pageviews and the number of dofollow links of a page, I need to do any of these four things:

1. Leave it: I left the blog post untouched if ANY of the following conditions is true:

  • Article has received more than 100 page views in last 365 days
  • Has more than 5 dofollow backlinks
  • Article is an affiliate post

2. Deleted and redirected to blog page: I deleted the article and redirected it to the blog page using htaccess, if ALL of the following conditions are true.

  • Article has received less than 100 page views in last 365 days
  • Has less than 5 dofollow backlinks
  • There are no other relevant blog posts to merge with
  • Not an affiliate post

3. Merge the posts: I made a copy of the article content, and merged the article with other relevant posts to one post, if ALL of the following conditions are true.

  • Article has received less than 100 page views in last 365 days
  • There are other relevant blog posts to merge with
  • Has less than 5 dofollow backlinks
  • Not an affiliate post

There are instances where I merged 5 separate blog posts to one blog post to avoid possible content duplication or keyword cannibalization issues.

4. Update: I also marked the blog posts that need more updation if it satisfies ALL the below conditions:

  • Article has got more than 5 dofollow backlinks
  • Article has received less than 100 page views last 365 days

By implementing the above action steps, I got rid of 89 posts out of 237 posts on GoBloggingTips, that’s almost 37.5% of the posts. Among these 89 posts that got deleted , 14 posts satisfied the #3 conditions above and got merged to 5 posts.

I did not get rid of all these posts all of a sudden. I did the deletion over a period of 30 days.

After each batch of deletion, I ran Broken Link Checker to unlink all the internal links to the deleted posts.

The process – How I started domain migration?

Now the preparation is done.

If you have good written documentation and checklists in place, the execution process need not be difficult.

It’s now time to start the domain migration process.

Moving Forward Undraw

Moving my first blog post.

Before starting the complete migration, I decided to test out the process by moving only one blog post from GoBloggingTips (old blog) to BloggingX.

For this, I installed WordPress Exporter plugin.

 WordPress Exporter plugin to migrate the posts

This plugin enables you to export the individual posts as XML files (by default WordPress only allows bulk export) in the Tools > Export section.

I moved only highly-backlinked article of GoBloggingTips to BloggingX to just watch out how things will go.

I went to the htaccess file of my old site and added the 301 URL redirection. After the proper redirection is in place, I headed over to Google Search Console and fetched the old URL.

Although, the new URL get indexed in 5 minutes.

Moving the images

First off, I need to get rid of all the unused images on my old site. For this, I used a plugin called Media Cleaner.

After I cleaned the image library from unattached images, I headed over to cPanel file manager. There I copied image folders under /wp-content/uploads/ folder and pasted them all under the same location of my new site.

Using Media Clean plugin to clean the image library

As both of my sites are on the same server, I need not to download all the images and upload them.

Now all of the images I had on my old site are also on my new site.

As the folder hierarchy has not been changed, the URL of the images also remain the same except the domain name and is SEO-friendly after redirection.

Moving the content

Now I need to export the following from my old site to the new site.

  1. Post content
  2. Page content
  3. Comment content

For this, I can easily make use of WordPress Exporter tool under Tools > Export.

Using WordPress Exporter plugin to move the content

Instead of exporting all the content, I exported only the post, pages and their associated pages. Because, I did not want to export plugin content as well.

If you plan to export some plugin content like say Affiliate Links, you may need to consider moving them too.

After this, I imported the XML files to our new site as part of the website migration process.

importing the XML files to new site

After the content is finished importing, the blog posts will be automatically published. So, if you have any “new post notifications” activated on your blog, disable it before importing.

If you don’t want to publish all the posts at once, you can revert them back to draft.

In our case, I needed to publish all the posts. So I left them published.

I categorized some of the blog posts that are not yet ready to go live and need refinements as uncategorized and prevented them from showing on our blog using Ultimate Category Excluder plugin.

I only allowed a handful of published posts to be visible on the blog page.

Nevertheless, all the blog posts I imported and published are crawlable and rankable by Google.

Importing the featured images: When you export and import the content using the WordPress default feature, it’ll not import the featured images.

So, now for me, the featured images of my imported pages are empty.

I need to make use a plugin called Export Featured Images on my old site and import the XML to my site. It automatically added the featured images to all my posts and pages.

And also, the imported images are displayed right in the media library.

Changing the URLs

Now, I need to update the internal links, affiliate links and also the images URLs from old blog to new blog.

I decided to take a complete backup for the new site, and run search replace using Better Search Replace WordPress plugin.

For this, I ran the search and replace.

run search replace using Better Search Replace WordPress plugin


It replaced all the internal links, affiliate links, and images with the new URLs.

I also ran a search replace for replacing “GoBloggingTips” with “BloggingX” to replace any mentions of my brand name in my content.

Now after doing this, it’s important to run the Broken Link Checker once, to make sure that there are no broken links.

I strongly recommend you to take backup of your site using plugins like Updraft before doing search and replace.

Making the redirection

Now as all the pages are moved, it’s now time to add the redirection code in the htaccess file of my old site.

I headed over to my cPanel File Manager and located the htaccess file under the home directory of my old site.

Locating the htaccess file under the home directory of old site

Here I added the code.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ [NC,OR]
RewriteCond %{HTTP_HOST} ^ [NC]
RewriteRule ^(.*)$$1 [R=301,NC]

This code, redirected each and every URL of my old site (GoBloggingTips) to my new site. Make sure that it is 301 redirect, or else you’ll lose the rankings.

Some of my URL slugs have been changed after I migrated. So, I made sure to add them separately as.

RewriteRule ^toolbox/?$ [R=301,L]

I added that “?” at the end of the trailing slash to make that URLs both with a trailing slash or no slash redirects without any problem.

I ran into an issue where the global redirect code was overriding the custom redirection code.
For this, I added my custom redirection lines above the main global redirection code and added the “L” flag for them to be processed first if the condition is met.

 Issue where global redirect code was overriding the custom redirection code

If there are any pages that you didn’t import to your new site, you need to either consider creating them on your new site or redirecting the old site’s URLs to the homepage of your new site so that they won’t turn 404.

If the redirection is not working in spite of adding proper code in htaccess (which happened for me), then the caching plugin on your WordPress site maybe the culprit.

Try to remove the htaccess code added by your caching plugin or just backup and wipe your old site off completely and add only the htaccess code needed for redirection.

Rechecking the redirection

In order to check if the proper redirection is in place, I headed over to my old sheet where I had a huge list of all the pages on GoBloggingTips (my old site).

Now I copied all those URLs and pasted it in a bulk HTTP Status Checker.

Rechecking the redirection with HTTP Status Checker

Now I need to make sure that only one 301 redirects and 200 final status code should be there. If there are no 301 redirects or 404 errors, then you need to fix those URLs using htaccess

Ensuring proper canonicalization

You need to make sure that the self-canonicalization is there on your site to prevent duplicate content issues.

Ensuring proper canonicalization

Go to a blog post page of your new site, right-click and select inspect element. There hit CMD + F and search for “canonical”.

Make sure the canonical link is set to your new domain URL, not the old one.

Or else, it’ll crush your rankings.

Informing Google about the change of address

Now, in order to speed up your new site indexation process, you need to inform Google about your site change.

You need to head over to the Google Search Console, and add the new site (if you haven’t already).

Now you need to head over the property of your old site.

Inform Google about the change of address
Submit the request to change the address

Please note that you need to request the site address change only after updating your htaccess with the necessary redirection code and ensuring all the URLs of your old site are properly redirecting to the new one.

Results of the migration

I’m tracking the changes in the rankings and traffic using Accuranker and Google Analytics.

Day #1

It’s been a day I did the migration. All the traffic from my old site is redirecting successfully to my new site.

Day#1 migration results

As of now, around 40 pages have been indexed. Although around 21 of my posts are indexed but they are not ranking. I may want to wait for the respective old site’s URLs to deindex for the new ones to rank.

I can see that Google is quick to index my most popular posts, which gets more traffic first. For the initial week, I would expect Google to index all my popular posts.

Week #1

It’s been a week I did the migration from GoBloggingTips to BloggingX. Here are the results.

  • Domain authority: 16 (was 36)
  • Citation Flow: 31 (was 35)
  • Trust Flow: 19 (was 24)
  • Domain Ratings: 47 (was 60)

As you can see, the Majestic and Ahrefs were quite quick to catch up with the 301 change in backlinks.

Coming to the change in rankings, I tracked top 35 traffic-driving keywords that are driving around 80% of my traffic for changes in rankings using Accuranker.

Here are the results.

1st Week Rankings
1st Week Rankings 2

As you can infer from the above screenshots, I’ve lost a good chunk of traffic due to the loss in rankings. However, I’m pretty sure that within a few days/weeks I will regain all the traffic back.

The below screenshot #1 is the traffic of my old site the last week before the migration and the second one is the first week of my new site after the migration.

GBT Last Week Analytics
BX First Week Analytics

As you can see there’s a decline in organic traffic.

But, the referral and direct traffic turned out to be more.

The total traffic I got on my new site is more than what I used to get daily on my old site. It is due to the reason I promoted my new site extensively and also may be due to the fact that it’s a new brand and people are curious.

Week #2

It’s been two weeks, I migrated from my old site to the new site. Here are the results:

  • Domain authority: 17 (was 36 in old site)
  • Citation Flow: 34 (was 35)
  • Trust Flow: 19 (was 24)
  • Domain Ratings: 53 (was 60)

Coming to the rankings here the results.

Note: The color coding is relative to the rankings before the migration.

BX Migration Second Week 1
BX Migration Second Week 2

As you can see from the above screenshots, the improvements in rankings is decent. In fact some of the rankings are better than that of pre-migration.

Migration Analytics Week Two

As you can see from the above screenshot, the organic traffic has been declined 16.52% from the previous week.

  • Old site last week before migration: 3,946 organic users
  • New site week #1: 3,158 organic users
  • New site week #2: 2,541 organic users

It’s a total 35.61% traffic decline.

The above traffic report may contradict with the keyword ranking report I presented earlier.

It may due the below reasons:

  1. A decline in rank for the related keywords that my previous site was ranking for.
  2. A decline in rankings for 2-3 keywords that are driving great traffic
  3. A decline in people for searching for “BloggingX” on Google after the launch-promotion.

I firmly believe that the traffic from related keywords have reduced a lot. It takes some time for Google to rank your new site to also rank for related keywords along with the main keywords.

This section of the case study is updated periodically over the 3 month period of migration. It’s last updated on Sunday, January 27, 2019 – 7 days after the domain migration.

So, bookmark this page 🙂 – Drag me

Last week of the first month

It’s been a month I moved my old site to the new one. Here are the metrics:

  • Domain authority: 20 (was 36 in old site)
  • Citation Flow: 35 (was 35)
  • Trust Flow: 20 (was 24)
  • Domain Ratings: 62 (was 60) – Think this is the most accurate as I gained some backlinks after I migrated.
BX Rankings Ss1 Month 1
BX Rankings Ss2 Month 1

In this period we recovered a lot of rankings loss, except for a few keywords for which we completely lost the rankings that were anyways not valuable for me.

The improvement in rankings of posts in the top 5 position improved a lot causing good traffic growth.

Anyways, let’s look at the traffic

GBT last week analytics
BX Traffic Month 1

The last week of my old site I received 3,946 organic users. A month after moving it 3416 users on the new site.

  • Old site last week before migration: 3,946 organic users
  • New site week #1: 3,158 organic users
  • New site week #2: 2,541 organic users
  • New site month #1: 3,416 organic users

That’s fairly a good growth.

The share of direct and social traffic is great as you can compare in the screenshots. If you remember, increased direct traffic is one of the reasons why I rebranded and did website migration.

In the first month after migration, I focused more on content upgradation – I gave 7 of my old posts a serious facelift and also published a couple of new blog posts. I made sure that all of these posts are of above 2500 words or even more.

I initially expected the traffic to be fully recovered in under 2 months. So, let’s see how the next month turns out and will report back the same to you.

The week of victory

It’s been like 1 month, 5 days after I finished the migration. I have recovered all my traffic.

Here are the metrics.

  • Domain authority: 21 (was 36 in old site)
  • Citation Flow: 35 (was 35)
  • Trust Flow: 20 (was 24)
  • Domain Ratings: 62 (was 60) – Most accurate

Below rankings’ color coding is relative to the initial rankings on GoBloggingTips.

Victory Week 1

Victory Week 2

Although I lost some rankings of the top keywords, the improvements in top 5 positions are more and I also ranked for many LSI keywords.

Below is the traffic report.

GBT last week analytics
Traffic of GoBloggingTips of last week before migration
GoBloggingTips To BloggingX
  • Old site last week before migration: 3,946 organic users
  • New site week #1: 3,158 organic users
  • New site week #2: 2,541 organic users
  • New site month #1: 3,416 organic users
  • New site after 1 month, 5 days: 4,181 organic users

So, it took ~40 days for my newly rebranded site to reclaim all the rankings and traffic.

However, I do need to also note that ever since I moved, in the span of 1 month, I’ve put forward ~18,000 words in the form of new posts and content upgradation on my new blog. This definitely has speeded up the recovery speed.

Domain migration checklist

Before migrating any site or a domain, it’s very important to keep a detailed checklist of the things you need to do – as if you’re a pilot.

Because, domain migration can easily go wrong, if you do not take proper care of technicalities, redirects, SEO, and other things.

It’s very hard for you to keep a track of all things without documentation.

Personally, before I carried out my migration, I prepared a detailed checklist.

I’ll present you all the things you need to include in your checklist and you need to consider. Make sure to make the necessary changes to the checklist as per your requirements.

I’ve just presented you a list of things to do. In order to further explore how to do the things I outlined in the checklist, you may want to refer to the above sections.

Preparation checklist for website migration

  1. Mental preparation: You need to remember that it may take upto 3 months to regain all the SEO rankings and search traffic after the website migration is done. So, you are the one to decide whether this temporary loss pays back in multifolds after the rebrand.
  2. Do you want to really migrate? Weigh in the pros and cons, and decide whether there’s a real need for site migration. Begin with the end goal in mind. Take your time, sit back, relax, and research.
  3. Domain acquisition: Acquire the domain name to which you want to migrate. Make sure you are not doing any copyright infringement or the domain do not have a manual penalty in place.
  4. Content audit: Do a content audit of your old site, because this is a chance for you to get rid of the outdated content on your site.
  5. Set the stage: Make all the necessary changes in your old site, so that once migrated the quality content will be upto the standards of your new site.
  6. List down the indexed URLs: Make a list of all the indexed URLs of your old site in a spreadsheet.
  7. List down blog posts: Make a list of all the blog post URLs in a spreadsheet.
  8. Write a checklist: Prepare your own checklist (considering your business), detailing the things you need to do to make sure the website migration process goes smooth.
  9. Track: Keep a record of keyword rankings and Analytics of your old site.

Checklist for website migration execution

  1. Backup: While executing the website migration you need to take backup prior to the migration and also before any significant changes to your site. Remember that your hosting provider typically takes only daily backups, not hourly backups.
  2. Migrate images: Move all your images from your old site to new site.
  3. Retain folder hierarchy: Keep the image folder hierarchy in place so that the images URL paths will not be changed.
  4. Export the content: Now export the content from your old site to the new one.
  5. Update the links: Update the internal links and images links from old site to the new one by running search and replace functionality on your new site.
  6. Check for broken links: Run a broken link checker on your new site and remove all of them.
  7. Add redirection: Now, add 301 redirection code to htaccess file present at the root directory of your old site’s server to redirect each and every page of the old site to new one. Add custom redirect code to all removed pages of your old site as well.
  8. Crawl the URLs: Crawl the URLs of your old site to make sure that there are no 404 errors and the proper redirection is in place.
  9. Setup robots.txt: Set up a new robots.txt on your new site.
  10. Create a sitemap: Create a new sitemap on your new site.
  11. Setup tracking: If you haven’t integrated Google Analytics with your new site, do it as soon as the migration is complete.
  12. Self-canonicalization: Make sure that every post on your new site contains canonical links to the new URLs but not the old URLs.
  13. Inform Google: Update your new site under “Change of Address” under Google Search Console to speed up the Google indexation process of your new site.

Post-migration checklist

  1. Promote: In order to speed up the indexation of your new site, promote it extensively on social media.
  2. Site audit: Go through each of your pages on your new site and see whether the proper formatting, schema markup, on-page SEO in place.
  3. SEO audit: Execute a complete onpage SEO audit on your new site
  4. Update your profiles: Update all your social profiles with the link to your new domain vs the old one.
  5. Update your ads: If you are running any PPC campaigns or ads, update the landing page URL to the new domain.
  6. Change the backlinks: Change the backlinks (that you have control over) to the new one.
  7. Outreach: Execute an email outreach campaign to let people who linked to your old site to update the hyperlinks.
  8. Track and tweak: Keep track of the search rankings positions, indexed pages, traffic, and user engagement.
  9. Monitor search console: Keep a close watch on your Google Search Console account for any notifications or warnings
  10. Change social media handles: Consider changing your Facebook and Twitter account names to reflect your new brand name.
  11. Press release: You may also want to get a press release out that you have rebranded your website.
  12. Don’t forget why you migrated in the first place and hustle!

Wrapping up

Hope you guys found this guide and case study helpful. Don’t forget to implement even a single thing I included in the above domain migration checklist.

Before beginning the domain migration, answer “why”? Once you come up with a definitive answer, you can start with a well-organized website migration and rebranding process.

Are you migrating to a new domain?

Let me more about it in the comments section below.