CMS Migration Guide: A Checklist

Kristina Azarenko

Apr 24, 20208 min read
Learn how to migrate from one CMS to another

Website migration is a serious step for any business. That is why before making any further recommendations, I always make sure that it is justified. And if it is, the next step is to make the migration process SEO-friendly. 

There are many types of migrations, including:

  • Moving from HTTP to HTTPS
  • Moving from a subdomain to subfolder or vice versa
  • Moving from one domain to another
  • Moving from one content management system to a different system

Here is a checklist SEMrush published earlier to give an overall view of all the different types of migrations. 

In this post, I will concentrate on a particular migration type, switching content management systems — as this specific type has its own challenges. I will show you what you need to know before moving to another CMS, what issues you will face, and the exact steps to overcome these issues.

Why You Might Want to Migrate to Another CMS

There are not many reasons, to be honest. All the clients I have worked with had only one — they wanted to account for the business growth. And it is a valid reason.

For example, a company starts an online store. They don’t know how things will go and how the business will look like five years later.

In the beginning, they don’t need sophisticated CMS features like bulk stock management, worldwide shipping options, etc. But as the store grows, the limits of the initial content management system might become more evident, and at some point, it might make sense to move everything from the old CMS to a new CMS.

It requires a lot of work upfront but also produces huge savings of time and money in the long run, provided the SEO part is done correctly. And that is exactly what I will be covering here.

The Idea of a CMS Migration

I am a visual person, so I came up with this image to illustrate the CMS migration idea:

CMS migration idea rainbow edition

It is a rainbow between 2 points: the old CMS and the Target CMS. The rainbow colors are bridging the gap between the 2 systems. Each color is a particular step that you need to complete to go from the old CMS to the target CMS without any losses. 

I will cover each of these steps in detail below. 

The Main Issues You Might Face During a CMS Migration

It is obvious that the old CMS and the new CMS features are not matching as Lego blocks. Here are some possible issues you might discover while switching your CMS:

Inability to Keep the Old URLs Structure

  • Example: in Magento 2, the category path is included in the product URL by default. So if your current product URLs don’t include the category path, you will need to use some customization or extension to achieve that.

Different Templates or Rules for Generating Meta Tags and H1 Tags

  • Example: HubSpot doesn’t allow having different H1 and title tags on a page (though they seem to be in the process of changing it). 

Different Approach to the Service Files (robots.txt, XML sitemap)

  • Example: Shopify does not allow editing the robots.txt and XML sitemap. So if you are migrating to it, you should account for that.

Structured Data 

  • Example: If you are migrating from WordPress where you use plugins to add structured data, find similar plugins that will work for your target CMS. 
  • Flexibility (canonicals, meta robots, etc.)

  • Analytics tagging

Pro tip: Tracking codes are often overlooked. Before the migration starts, you should make a list of all the tracking codes and customizations to transfer them to the new CMS. 

Bridging the Gap: RAINBOW Steps to Make a CMS Migration as Seamless as Possible

Here is a summary of all the steps. As I mentioned above, each of them needs to be completed to properly go from the old CMS to the target CMS:

CMS migration idea with steps rainbow edition

R. Run a Crawl

Before you even start planning the migration, you need to understand the scope — are there 100, 1,000, or 10,000 URLs? You also want to find any technical issues which should not be transferred to the new CMS. For example, you might find pages with self-referencing canonicals, while these canonicals should point to other URLs instead. 

After the crawl, you will have a list of the website pages. I always recommend using a few sources to get a full list, including:

  • Crawl Data

  • Google Search Console pages 

  • Google Analytics pages

  • Your XML sitemap(s)

For example, you can export crawled pages from SEMrush Site Audit:


Export all URLs from each tool, combine them into one document, and remove duplicates. You will need these URLs to analyze them and make strategic decisions (see the step ‘I’ below).

Additionally, before making any changes to the current website, you should create a backup (or make sure that it is done on the dev side). Of course, after the CMS migration, the folders’ structure on the server will look differently. But you will at least have raw data and content you can go back to if something goes wrong or gets deleted.

The outcome of the R step: 

  • You have a comprehensive list of all website URLs.

  • You have a list of the technical SEO issues you want to fix during the migration to another CMS.

  • A backup of the current website.

A. Analyze CMS Features

Now it is the time to see how the features of your current CMS are translated into the features of the new CMS.

Make a list of things to take into account while migrating. These will be absolutely important SEO aspects that you want to have control over as much as possible. They include:

  • URL Structure - You want to leave the same structure if that is possible. But if not, you should know it at this point before creating the redirection map.

  • Meta Information - You want to leave the same tags or mimic the meta tags templates. If it is not possible, create new templates that will be supported by the CMS you are migrating to.

  • Website Architecture - Make sure that nothing will be lost during the migration process, e.g., the breadcrumbs will stay, the main navigation will have the same categories, etc. 

  • Canonical Tags and Meta-robots Directives - The new CMS should give an option to change these settings on a page level.

  • Robots.txt and XML sitemap. 

  • Structured data. 

  • Hreflang (for International websites).

  • Any important custom features - Automatic rules for creating new pages, redirecting old pages, etc. For example, if you are migrating an online store, and the old CMS has a feature to automatically redirect a discontinued product to the category page, your migration plan should include it as well. 

This step is hard and requires lots of research and cross-team communication, but it is the backbone of the whole migration process.

The Outcome of the A Step: 

  • A list of the most important SEO features and ideally an indication of whether each feature is available in the new CMS. The more you know, at this point, the better.

Note: If the CMS you are migrating to is custom-built, you will most likely have no information on the functionality available there. You still need a list of the features which are absolutely necessary for SEO so that they can be created or added to the custom system.

I. Indicate the URLs to Redirect

By this step, you already have a list of all the website pages as well as know if any changes in the URL structure will be required. So now it is time to create a URL map. 

Keep the map simple. I usually include just 3 columns: Old URL, Action, and Final URL:


Then create an additional map that will have only the URLs that need to be redirected. This redirect map is for the developers.

The reason why I prefer having 2 maps is simple: I want to make sure that each URL is handled properly. If you create only the redirect map, you might miss that the other URLs return 404s. So I keep the map with all pages for myself and send the redirect map to the developers. 

The outcome of the I step:

  • A map of all the URLs with an indication of the action.

  • A redirect map for developers.

N. Note Down User Stories and Acceptance Criteria

When it comes to complicated technical things like switching a content management system, it is important to communicate your requirements and recommendations properly (and even overcommunicate). 

That is where user stories come in. A user story states the outcome you want to achieve. It follows this structure:

As a {type of user} I want {outcome} so that {the reason}

For example:

As an SEO, I want product URLs to be the same even if users go to the product page from different categories so that we don't have duplicate product pages.

Each user story should have acceptance criteria. They clarify the outcome you want to achieve. Here is an example of acceptance criteria for the above user story:

  • Product pages are found within the /products/ sub-folder.

  • Product pages are not found inside of any /categories/ sub-folders.

  • Product pages contain canonical tags that point to themselves.

  • The link to products that are part of multiple categories is the same URL no matter what category it is in.

  • The internal links point to the canonical versions of the product URLs.

The outcome of the N step:

You have user stories and acceptance criteria for each user story ready to be uploaded to the task management system (e.g., JIRA).

B. Become an Investigator 

Once you have the staging environment (or test site, or UAT - there are many names for that) ready, it is time to put your investigator hat on (every SEO has it!) and test if everything works properly and meets your acceptance criteria. 

This is a very important step, and you need to catch all the SEO issues before the website goes live on the new CMS. 

The outcome of the B step:

There will most likely be a few rounds of testing as after each issue is fixed; you will need to re-test it. Once it is completed, the test website should be ready to go live.

O. Once It is Done 

After the website goes live, it is time to make some final but crucial checks. 

  • Check if the redirects in your redirect map are implemented correctly.

You can do it using the list mode in Screaming Frog:


Source: How To Audit Redirects

  • Check your robots.txt to make sure the website is allowed for crawling.

  • Check meta robots to make sure the indexing is allowed.

  • Check if the tracking codes are installed.

  • Make an annotation in Google Analytics to mark the migration date so that you will have a better way to analyze post-migration traffic:


Also, add a note to your SEMrush reports:


Here are some more immediate checks you want to do after the CMS migration. 

This step is important as it helps you quickly catch any SEO issues and solve them before they cause any visibility or traffic decrease.

The outcome of the O step:

You are sure that all the information was transferred correctly, and the website on the new CMS is ‘SEO healthy’. 

W. When It is Over, It Is Not Over 

Any website migration is not a "set and forget it" thing. Even if everything looks great, you still need to closely monitor traffic after the migration.

One thing to note here: you might see a temporary decrease in traffic even if everything has been done correctly. The reason is that Google needs time to re-evaluate your new site, and the more structural changes have been made, the longer it can take

But nevertheless, there should not be huge declines if all the RAINBOW steps are properly handled. 

The outcome of the W step:

  • Peace of mind.
  • Post-migration fixes are done if any issues are discovered.

Final Thoughts

A CMS migration is a complex task where all teams should work in sync. As an SEO, your role is to direct the process in terms of website organic presence, educate other teams on SEO along the way, and have all the checks in place.

Find Keyword Ideas in Seconds

Boost SEO results with powerful keyword research

Free Keyword Research Tool

Author Photo
Kristina is an eCommerce & Technical SEO Consultant, the founder of MarketingSyrup, industry blogger and international speaker. She is also an author of the SEO Challenge Course. Kristina has helped many American and Canadian businesses grow their search visibility, traffic and most importantly revenue during the last 10 years of working in-house, at agencies and as a contractor. Being a technical SEO consultant, Kristina also helps make website migrations SEO-friendly.