Why Migrations Fail

There’s plenty of articles out there that contain checklists on how to perform a migration and the steps you need to take. While some of these are good, nobody explicitly calls out why migrations fail. Well we’ve done plenty of migrations in our careers and want to share what caused the majority of failures.

What is a Migration?

As a refresher, a migration occurs when you’re undergoing a site move. This may mean that you’re changing to a new CMS, changing to a new domain, merging a domain, or just drastically changing up your URL structure. Sometimes, a redesign can count, but in general we don’t fully consider those to be a migration.

With that said, here’s a list of all the issues we encountered on a semi-frequent basis that led to a bad outcome.

Failure Reason: Content Changes

When you’re undergoing a migration, you’re putting a lot of work on Google to understand the nature of the migration. When you decide to completely throw out the current content and swap in new content, you’re adding in yet another element for Google to consider. If the old content was better, you’re very likely to see drops. This also makes it hard to diagnose where the migration went wrong.

In one particular case content was changed last minute and this was not mentioned. The site saw a drop of around 30% in organic traffic as a result of this. When it was discovered that content had changed, the old content was placed back on several key pages. Within days the URLs that were reverted back to the original before-migration content were back up to original numbers.

Failure Reason: Internal Linking Changes

Some of the worst failures we’ve seen have to do with the changing of internal links. Whether you decided to remove URLs from your menu or you decided that some categories no longer need to be linked, it’s likely that you’re going to see a loss in ranking. This is also one of the harder areas to diagnose as an issue. On the upside, you have to be fairly intentional about doing this, so there should be some documentation on what was done.

This comes up often, but the worst case involved completely removing internal links to several important categories while at the same time consolidating categories. The traffic loss was around 40% and was never fixed despite being called out multiple times.

Failure Reason: Removed Pages

It’s inevitable that some pages may not make the cut and may just be set to 404, or be consolidated into another page. This can create a problem if:

  1. The removed page had a lot of equity
  2. The consolidated pages don’t adequately represent the terms you wanted to target
  3. No new equivalent page exists

While it’s fine to remove pages and consolidate categories, you need to make sure that you aren’t diluting a page by having it target too many terms (like shoes and belts as an example). In many cases, it’s better to have two distinct pages. Most importantly though, you need to be sure that the removed page wasn’t backed by powerful backlinks that are now lost because the page wasn’t redirected. If a page has to be removed because of legal reasons or a product is discontinued, just understand that you’re likely going to lose that traffic for good.

The impact ranges per site and based on the page removed. This was a contributing factor to the site that lost around 40% of it’s traffic that’s mentioned above.

Failure Reason: Phased Launches

While Google has stated that it’s fine to move the site in sections, we often find this leads to issues. We’ve seen issues with ranking and we’ve seen that create internal business issues. If half the site moves but then the project gets delayed, you’re stuck with both websites for the time being. If you have multiple international sites and you move one but the others don’t update their href lang tags, you’ll have issues. While you can do a phased launch, you need to make sure that you aren’t harming yourself.

The worst case we saw with this involved an international site moving one country site and leaving the others alone. This led to broken href lang tags and content that didn’t match the others. The end result was Google completely dropped the site that migrated over in favor of their other international site.

Failure Reason: Rushed Timeline

Shigeru Miyamoto of Nintendo said “A delayed game is eventually good, but a rushed game is forever bad” and this is fairly true when applied to migrations. Migrations have a lot of complex parts. While we focus on the SEO side of migrations, there’s also the work developers and engineers also need to do. Every time we’ve seen a migration rushed to meet a deadline that’s been imposed by the C Suite etc., it has always led to problems. We’ve reported major technical issues that need to be fixed or else the site will have massive problems, and it was still launched without the tech issues being fixed. You can imagine how the migration went.

Failure Reason: Broken Redirects

The key factor in ensuring migration success is that redirects are properly set up and firing correctly. If you forget to move over important pages, or just toss pages because it no longer fits the brand, you’re losing out on all the value that those pages have. If you want a migration to be successful, you need to make sure that everything with value gets redirected. Another aspect to keep in mind is that just because redirects fire on launch day, it does not mean they’ll still be working weeks later. We’ve seen rollbacks where the redirects get removed and we’ve seen developers remove redirects after a couple weeks because they didn’t think they were necessary.

Failure Reason: Generic Redirects

Just because you redirected a page, it doesn’t mean it will carry value. Redirects need to be matched to a page that is relevant and fairly aligned with the original page. When people mass migrate all pages to the homepage even when they don’t align, you’re not going to get that value and it’s essentially a soft 404. Take the time to align your redirects with the best matching page so you have a better chance at maintaining value. 

Failure Reason: Incorrect Canonicals

This doesn’t come up often, but sometimes we see cases where the canonical tag points to the old URL structure. We’ve also seen canonicals contain the staging site address and we’ve seen broken canonical tags due to using relative links over absolute links. Broken canonicals on a site that didn’t undergo a migration are bad enough, so make sure your canonicals are correctly set once you launch.

Failure Reason: Staging URL Links

Another rare issue we come across is where the site is launched, but all of the URLs are the staging site variant. Not only are these the wrong URLs, but when Google attempts to crawl the site it may be blocked depending on your robots.txt rules. One particular case we saw had a site’s URLs all swapped to staging URLs a couple months after launch. There was around 30-40% traffic loss within days of this occurrence. Make sure that the URLs on the site are the right URLs. An incorrect staging link here or there isn’t a major issue, but when all the URLs are staging links, you’re in for some hurt.

Failure Reason: Leftover Noindex

This usually occurs when noindex tags are used on a staging site to prevent Google from indexing pages and they get rolled over to the production site. It doesn’t matter if your redirects and everything else was done correctly, if a noindex tag is present Google is not going to index that page. If the entire site is noindexed, you’d essentially be looking at 100% traffic loss until you solved it. Always double and triple check for noindex tags when launching to make sure they aren’t present.

Failure Reason: Robots.txt Block

Along with noindex tags rolling over, sometimes robots.txt files also get transferred over. You don’t want to block Google from crawling your site, especially when you’re in the midst of launching a migration. While not as bad as leaving noindex tags everywhere, not allowing Google to crawl the entire site is also asking for trouble. Always double check to make sure the real robots.txt file is being used and keep in mind that if you changed your URL structure you might need to make updates.

Failure Reason: Javascript Issues

This isn’t exactly migration specific, but if you’re moving to a Javascript framework like Angular and React, you need to be aware of the pitfalls that can entail. If you went from server-side rendering to client-side rendering, you need to make sure that prerendering or dynamic rendering is being utilized. You also need to be aware of things like onClick Javascript links, which are not followed by Google. Make sure that Google can read everything the first time it crawls the site and make sure the site is actually crawlable. You can read our guide on Javascript and SEO which covers many of the issues you may encounter.

We’ve seen one site where the many of the most important internal links were swapped from <a href> to Javascript onClick links and were not fixed despite our warnings. Traffic dropped by around 40%. A while back there was also a case that made the rounds about a site that had swapped to a Javascript framework without any prerendering. That drop was around 60%.


Migrations are usually a scary prospect, and while it’s nice to know what to do, you should be aware of what causes issues. If you’re going through a migration now, or one is coming up in the future, make sure you keep this list in mind. We’ll also be adding to it as we encounter new issues, but for now this should help you better understand where migrations typically fail.

Similar Posts