BLOG // Web Design

CMS Migration SEO: Keep Rankings Through the Switch

December 30, 2024 · Nexrena · 3 min read

← Back to blog Web Design

CMS migration is risky. URLs change, structure changes, content moves. Without a plan, you lose rankings. With one, you preserve — or improve.

Why Migrations Drop Rankings

Google ranks URLs, not “pages” inside WordPress or Drupal.

Switch platforms and those URLs often change: /blog/post-name/ becomes /resources/post-name, trailing slashes flip, or the CMS injects /index.php/. Every unmatched URL becomes a 404. Link equity disappears. Indexed pages fall out.

The quieter failure: content ships, but schema, canonicals, and internal links do not. Google recrawls a weaker site.

Treat the move as a URL and signal transfer. Design can change. The index should not have to start over.

Redirect Map

Build the map before anyone configures the new CMS.

  1. Export every old URL. Crawl the live site with Screaming Frog. Export indexed URLs from Search Console (Pages and Performance, last 16 months if available). Add the current XML sitemap. Deduplicate.
  2. Score what matters. For each URL, record status code, impressions, clicks, and referring domains if you have a backlink export. Anything with impressions or backlinks is required.
  3. Map old → new. Spreadsheet columns: Old URL | New URL | Type (301 or 410) | Notes. One row per URL. No blanks on indexed pages.
  4. Keep paths when you can. Same content, new CMS — reuse the path. The safest migration changes as few URLs as possible.
  5. Consolidate on purpose. Thin or near-duplicate pages map to one stronger URL. Do not dump leftovers on the homepage.
  6. 301 permanent. That is the signal for a platform switch. A 302 says “temporary” and does not pass equity the same way.
  7. No chains. A → B → C wastes crawl budget. Redirect to the final URL in one hop.

Example rows

Old URLNew URLType
/blog/cms-migration//resources/blog/cms-migration-seo/301
/services/seo//services/seo-growth/301
/print/about//about/301
/old-promo-2019/—410

410 (Gone) is for content you are retiring with no close replacement. A homepage catch-all hides 404s and confuses relevance.

Implement the map at the server or edge (nginx, Cloudflare, Netlify, Vercel redirects) — not only in the CMS. CMS rules miss static files and leftover plugin paths.

Content

  • Don’t lose content. Migrate everything you still want indexed. “Start fresh” is a ranking reset unless you are pruning on purpose.
  • Consolidate. Merge thin pages into one. 301 the thin URLs to the survivor.
  • Update internal links. Template rewrites are not enough. Body copy, CTAs, and PDFs still point at old paths. After launch, crawl for internal 404s.

Keep working titles, H1s, and meta through launch. Improve them after the index stabilizes.

Technical

  • Sitemap. New sitemap, new URLs only. No old paths, no 301s, no noindex pages. Submit it in Search Console. Add Sitemap: in robots.txt.
  • Schema. Re-implement Organization, Service, BreadcrumbList, and Article. Plugins rarely survive a platform change. Validate with Rich Results Test.
  • Canonicals. Self-referencing on unique pages. Match host, protocol, and trailing-slash rule exactly. See technical SEO foundations.
  • robots.txt. Confirm you did not ship a staging Disallow: /.
  • Search Console. Same domain, same property. Use URL Inspection on top commercial URLs after launch.

After Launch

Crawl the old URL list in Screaming Frog list mode. Every mapped URL should 301 to the right destination.

Watch Coverage and new 404s for 2–6 weeks. A short dip is normal. A clean map recovers. A missing map does not.


We’ve run CMS migrations with the redirect map built before design starts. Plan your migration or see the redirect strategy for mapping in more detail.

Keep exploring

Continue with one service page and one FAQ answer tied to this topic.

Related articles