WordPress website migration: a step-by-step guide to keep and improve your SEO after migration

Static and headless WordPress. In one click.

Site migration can mean many things

The term “site migration” can refer to several different types of migrations. Let’s take a look at some of the reasons why you’d want to migrate a website.

Replatform or CMS migration

Some sites start with one CMS (Content Management System) platform like Drupal or Joomla or even a custom CMS and then later decide they’d like to switch to another platform, like WordPress. Or vice versa.

This is probably the most complex of all the migrations because you’ll likely need to take into consideration many factors such as: database structure, taxonomy structure, link structure, and meta data.


Businesses or non-profits usually decide to redesign their site for a few reasons:

  1. Rebranding/Reskinning
    Every few years, web design trends change and many sites want to keep up with the times and don’t want to be seen as old-fashioned or outdated. These redesigns can also give sites an opportunity to review their analytics and see how they can better serve their customers.
  2. Responsive design
    Every once in a while, there is a new requirement for websites that can’t be ignored, and ultimately becomes the golden standard of how all websites should be built. Responsive design, or optimizing your site for different devices, is the perfect example of such a requirement, to the point where if a site is not responsive, it’s now considered archaic.

New or evolving needs

Even if you don’t plan on doing a full site migration, making significant changes to your site such as altering the menu or changing the taxonomy (categorization system) can really wreak havoc on your SEO rankings because changing your site architecture can affect internal linking and the link structure itself. That’s why it’s so important to consider even minor changes as a migration so you take all the necessary precautions.

Move from HTTP to HTTPS

Turns out making your site secure and adding one little letter can cause all sorts of issues. Migrating to HTTPS requires obtaining an SSL certificate, creating redirects, fixing mixed content errors, and more. Here’s a comprehensive guide to SSL. Note that SSL is only the first step in securing your site. You can further secure your site by using CSP and HSTS security headers (fyi Strattic takes care of all the HTTPS implementation including CSP and HSTS security headers).

New domain

If you changed the name of your organization, or managed to acquire the .com or .pizza version of your domain, you’re likely to change your domain. The tricky part of this kind of migration is that you need to leave the old domain running for quite a while so that it can redirect properly to your new domain.


Another reason you’re likely to change your domain name is because you’d like to cater more personally to audiences based on their location with a country-specific domain like .de or .cn.  This migration comes with its own special challenges such as making sure your sites aren’t competing with themselves and aren’t considered duplicate content.

Planning the big move

If you were to move into a new house in a new city, you’d probably take care of lots of really important tasks like hiring movers, getting the key for the new house, signing your kids up for a new school, donating or throwing stuff away, and going to the post office to set a forwarding address.

The concept is not far off from what you need to do to migrate your site – you’ll need to be super organized, prioritize tasks, and keep track of where everything used to be and where it is now.

Step 1: Managing the project and setting expectations

For a successful migration, it’s really important that everyone involved – designers, developers, SEO team, and client are on the same page.

  1. Make a formal checklist and set sequential tasks so that certain tasks are only worked on when another task is finished. For example, you shouldn’t be assigned a task to open the site to search engines until every other task has been completed.
    Tool Recommendation: Monday 
  2. Assign each task to the right person – whether it’s the designer, the developer, marketing, or the client, make sure that person owns the task and there’s no confusion.
    Tool Recommendation: Monday, Asana, Trello
  3. Set priorities – which tasks are urgent, which can wait until later, etc. Being as clear as possible on every possible front will lead to a more successful migration.
    Tool Recommendation: Monday, Asana, Trello
  4. Warn your team or client about a drop in traffic and rankings for possibly 6-8 weeks after the migration. Hang in there, I know it can make for some serious nail-biting but if the migration is done right, the rankings and traffic will come back and are even likely to increase.

Step 2: Taking stock, benchmarking and backups!

It’s better to be overly OCD at this stage and keep a snapshot of everything on the old site because once it’s gone it’s harder to go back and check to see how everything used to be.

  1. Benchmark current keyword rankings. In order to check the impact of the migration, it’s critical to get a benchmark of the keywords that you’re currently ranking for.
    Tool recommendation: Rank Ranger
  2. Traffic/revenue analysis. Take a snapshot of overall visits, bounce rates, and conversions per page on the current website before you start making changes. Ask yourself “How much is this page worth to me? What’s going to happen after making a significant change?” These are the pages that you want to prioritize and make sure are still working properly after the migration..
    Tool recommendation: Google Analytics
  3. Identify authoritative URLs and backlinks and URLs being used in PPC campaigns, so the links can be double and triple-checked afterwards.
    Tool recommendation: Screaming Frog is a paid tool, but well worth it, and does exactly this. It crawls everything on your site and then reports it back to you in a user-friendly way. You can even pull in data from Google Analytics!
  4. Backup current site. If something goes fabulously wrong, you’ll have something to turn back to. If it’s a WordPress site, make sure to take a backup that includes the full database and files.
    Tool recommendations:
    HTTrack, a free service that creates a copy of your site that you can download locally to your desktop for easy reference – you don’t need to upload it to a server.
    Blogvault – reliable, easy to use WordPress backups
  5. Crawl current site. Crawl every URL, h1 tag, meta description, canonical tag, etc. across the site so that you can compare it with the post-migration crawl
    Tool recommendation: Screaming Frog
  6. Download the current sitemap so you have a backup to refer to should you need it.
  7. Check the current site’s robots.txt file. This is super important and often falls through the cracks. Check what folders are being disallowed so you know what the setup should be on the new site.
  8. Check the current site’s permalink structure. In WordPress, take a screenshot of the settings under Settings > Permalinks. Keeping track of how the permalink structure was set up can help troubleshoot any issues and if the new permalink structure is different, you can create additional redirects.

Step 3: Moving to the new site

  1. Temporarily hide the new site from search engines until you’re ready to make it live. You can do this under Settings > Reading and check the box next to “Discourage search engines from indexing this site”.
  2. Import content via WordPress’ Importer tool or manually copy and paste the content from the old site (you can hire someone from fiverr to help). Make sure to keep all content, headings, canonical tags, tags, categories, and all the meta data like SEO title and meta description, and structured data (schema).
  3. Review taxonomies across the site to account for any changes to link structure and plan link redirects accordingly.
  4. Map old URLs to new URLs. Make a list of all the pages that have a new URL on the new site. For example, let’s say your About page used to be www.example.com/about and now it’s going to be www.exaple.com/company. Make a simple two-column spreadsheet with the old url in the first column and the new url in the second column.
    Tool recommendation:Google spreadsheets and save as a CSV file.
  5. Create redirects. Use a tool like the Redirection plugin to help you upload your CSV file that you created in step 4 to help automate the 301 redirection (not 302 redirects which are only temporary redirects) from old URLs to new URLs.
    Note: if you migrated from HTTP to HTTPS or www to non-www, you’ll also need to add a 301 redirect in your .htaccess file, otherwise Google will see the different variations of the site as competing sites and might give the sites a duplicate content penalty.
  6. Generate a sitemap on the new site.
    Tool recommendation: Yoast SEO plugin
  7. Hreflang: If you’re using a new language domain for your site, make sure you’re using the proper hreflang tag to indicate the site’s language, so the search engines don’t penalize your site for duplicate content.

Step 4: Post-launch

  1. Unblock search engines (Settings > Reading): check (and double, triple-check) that the site is open to search engines.
  2. 301 redirect on old domain. If you’re migrating to a new domain, you need to set up a 301 redirect on your old domain to make sure search engines or users that try to access pages on your old domain get redirected to the same page on the new domain. You can add the 301 redirect in your .htaccess file where your old domain was hosted. We’d recommend leaving this redirect for at least 6 months.
    #Options +FollowSymLinks
    RewriteEngine on
    RewriteRule ^(.*)$ http://www.example.COM/$1 [R=301,L]

    Replace example.com with your new domain.

  3. Test redirects to make sure redirects of all variations are working. Ex. www, non-www, HTTP, HTTPS, etc. All of these variations should be redirecting to one domain, otherwise your site could get penalized for duplicate content.
  4. Add the new domain to Google Search Console so you can keep track of any 404 errors
  5. Update the GTM (Google Tag Manager) and Google Analytics with the new URL.
  6. Re-crawl site with ScreamingFrog to check redirects, metadata, headings, and everything else is working properly
  7. Test all forms, including any dependent functionalities such as forms that have event tracking for Google Analytics set up.

In short

Site migrations are planned for a variety of reasons, but the same checklist will apply to most scenarios and help maintain your website’s SEO. No matter the reason for the migration, the most important tasks during a migration are:

  1. Back up your current/old site
  2. Identify the most authoritative pages and pages with the highest conversion rates to make sure they don’t suffer due to the migration.
  3. Use tools like RankRanger and ScreamingFrog to benchmark your keywords and technical SEO configuration before and after the migration
  4. Map old URLs to new URLs and create 301 redirects
  5. Check all domain versions such as www, non-www, HTTP, HTTPS
  6. Update the URL in all your Google tools (GTM, GA, GSC)
  7. Open your site up to search engines at the end of the process

By paying attention to these items, you can prevent your site suffering from major SEO issues such as duplicate content or search engines being unable to crawl pages because of 404 errors.

This post is inspired by Rachel Slovin, Managing Director of Kahena, who gave a presentation about site migration to our local WordPress Meetup group.