Categories
SEO

How to Do Site Migrations Without Losing Traffic

I’ve recently landed a new client. He’s a plastic surgeon in Europe who has split his main website into two: one surgical and one non-surgical. His concern was that the new site (which is now several months old) is not capturing anywhere near the same levels of traffic it used to have on the old site.

When I did the quick audit, I realized (and told him) that the site migration may not have been done well.

Migrations are often simple, but they are also the most tricky. They need to be properly planned and carried out. Otherwise, they can cause a lot of damage or losses that are irrecoverable.

Here’s how I do site migrations. It may not be the best method, but it is the way I’ve successfully done them. And I’ve done quite a few.

Google Search Console

First, claim the site in Google Search Console (GSC). If the secondary domain already exists, claim that, too. If the site is either new or never claimed before, it might take a while for the site to appear in GSC. So the earlier the better.

The reason to claim sites in GSC is critical: you can “move” to a new domain via GSC, which tells Google where the new site is now residing. However, this is only when it’s a whole site move. It does not apply to partial site migrations or splits.

However, if the new domain exists and it is a split, claiming the sites in GSC is still important as it places the site on Google’s radar and allows you to see any crawl issues from their standpoint. But another benefit is backlinks, as you can export all external backlinks from GSC. (I’ll come back to this.)

Create a URL Inventory

Next, do a complete inventory of the site. You can do it in three ways: crawl the site with Screaming Frog. When done, you can export the list of URLs it found. It will export it in a CSV file, which you can open in Excel or upload to Google Sheets. Google Sheets is my preferred spreadsheet software.

The second way is to visit the source site’s sitemap.xml file and extract all the URLs. Simply visit the source domain and add “sitemap.xml” at the end, like this:

https://michelfortin.com/sitemap.xml

(Some complex sites may have multiple sitemaps or sectional sitemaps, so be careful when doing this. Make sure to locate all of them.)

Then, copy and paste the sitemap into a URL extractor, which will give you a CSV file. You can add it to Excel or upload it to Google Sheets (or simply copy and paste it into a new tab of the same sheet used previously).

The third method is to visit Google directly and type in “site:michelfortin.com” into the search form. This will give you a list of all the URLs currently indexed in Google. Extract the URLs from the search engine results pages (SERPs) using a plugin or a tool, like Google SERPs Extractor.

Why all three? It’s just a safety measure.

You don’t need to do it for small sites. Just one is fine. But for larger sites, you want to make sure to capture everything. For instance:

  • Sitemaps will give you a list of all currently visible URLs. This is the easiest way. But it won’t show you all the URLs if some are excluded.
  • Screaming Frog will give you a list of all files, including images, as well as a list of all internal and external links. But it will also give you a list of any redirects, which will need to be moved or updated. (I’ll return to this.)
  • SERP extractor ensures you get all URLs in Google, which may include recently deleted or moved URLs that Screaming Frog will have missed.

301s and 404s

If the source site has 301 redirects at the server level, even if all the internal links are updated, it will be important to keep a note of these as they will need to be moved, removed, or updated once the site (or a portion of it) has migrated.

For example, say you have a deleted URL “A” that’s redirected to URL “B”. But then URL “B” will be part of the move to the new domain. Therefore, once the site has moved, the initial redirect from URL “A” as well as URL “B” will both need to be modified to point to URL “C” on the new domain.

This is the reason why it is important to update any internal links within the site the moment a URL changes. Too many redirect chains (or long ones) not only cause havoc from an SEO standpoint, but they can also become a nightmare when migrating to a new domain.

In fact, this is critical: I would definitely fix all redirects showing up in the Screaming Frog crawl, any broken links, and any 404s (i.e., page not found errors) first before doing any site migration. Because if you migrate a page with errors, you will now compound those errors. And the headaches.

It’s the same with backlinks. You want to take an inventory of all the backlinks pointing to your site. If they’re old and already redirected at the site level, that’s fine. But remember that these redirects will need to be updated once the site has migrated to make sure you don’t lose any backlinks.

You can use Google Search Console or any SEO tool like SEMrush or Ahrefs, which will provide you with a list of backlinks. What you want are the URLs to which these backlinks are pointing. Whether they are pages or files (like images), add these URLs into a new tab in the Google Sheet created earlier.

Now, here’s something important: what if the URLs are old? Perhaps they’re broken, moved, or dead already. This is the perfect time to double-check and see if they’re still good before doing the site migration.

Use a bulk URL redirect checker. I use Screaming Frog by uploading a list of URLs to manually check. There are several other tools like HEADMasterSEO. The purpose is to see if any of the URLs that the backlinks are pointing are alive, redirected, or broken/dead.

You will get response codes like 200 (good), 301 (redirected), or 404 (dead). Again, the best-case scenario would be to have the URLs all properly redirected already. But if not, either create the necessary redirects now or add them to your inventory to properly redirect once you migrate.

Map and Migrate

Then, when all the above is done and ready, time to migrate. But first, you need to map your old or soon-to-be-moved URLs from your Google Sheets inventory to the new URLs. Add them in a second column. You will need to redirect them to the new site once migrated.

You want to ensure all pages that have moved are properly redirected to the new ones. If the new site is already developed and live, you can redirect the old URLs from the old site (and update any previous redirects) to point to the new URLs on the new domain.

(If you’re doing a domain-to-domain move, typically a redirect at the server level will do. Page A on domain one will go to Page A on domain two.)

Once migrated, make sure all the new URLs are self-canonicalized properly to the new domain. A canonical tag is a piece of HTML code that lets Google know what the real URL is for the page it’s visiting, and therefore the one to index and pay attention to. Most SEO plugins will do this for you.

Recrawl and Update

Whether it’s a full site migration or a portion, update all internal links on both sites. If you use WordPress, chances are the “permalinks” feature will do this. But if your links are absolute and not relative (i.e., pointing to the full URL path), then they’re still pointing to the previous domain.

So you will need to carefully do a search and replace to update all the links. In fact, complete a new crawl of both the old and new sites, and fix anything that’s not working. It will also give you the proper canonical URLs.

And finally, you can go back to GSC, submit the new sitemap for the new domain, and submit a change of address for the old (if it’s a complete move).

It goes without saying that you also need to update any external assets or tools to point to the new domain, such as links inside PDFs, Google Analytics (always create a new property), social media profiles, etc.

Some Final Notes

You may also want to reach out to your most prominent backlinks, those coming from the most authoritative sites, and ask them to update their links to point to the new URLs. Until then, make sure you have all the redirects in place, even if the URLs or files no longer exist.

Keep your old domain indefinitely to make sure the redirects stay alive. Unless you’ve sold the old domain, you should keep it. Even if you’re sure all URLs have been updated, including any backlinks, you don’t want to lose any physical (like in print ads) or non-textual (like on YouTube) mentions of your old domain.

Finally, keep an eye on things. Use a position ranking tracker (many SEO tools like SEMrush offer this) to monitor your target keywords, and monitor traffic to make sure there are no dips or any sudden 404s. For example, some new backlinks may be unaware of the move and point to old URLs down the road.

Finally, remember that moving sites is relatively easy. But if a site migration is not properly planned and done correctly, it can cause a lot of problems — problems from which your site may not recover.

Avatar of Michel Fortin

By Michel Fortin

Michel Fortin is a digital marketing advisor specializing in SEO, communications, and strategy. For over 30 years, he helped hundreds of thousands of clients increase their visibility and their revenue. He is also the VP of Digital Marketing at Musora, the company behind award-winning platforms Drumeo and Pianote. He is the author of the More Traffic Memo™ SEO email newsletter.