CMS Migration SEO Guide: WordPress to Shopify and Beyond
Moderate 14 min 2026-03-20

CMS Migration SEO Guide: WordPress to Shopify and Beyond

Quick Summary

  • What this covers: CMS migrations break URLs, lose redirects, and drop rankings if executed wrong. Map every URL, preserve link equity, and validate before launch.
  • Who it's for: site owners and SEO practitioners
  • Key takeaway: Read the first section for the core framework, then use the specific tactics that match your situation.

Migrating from one CMS to another—WordPress to Shopify, Magento to WooCommerce, Joomla to Drupal—changes your URL structure, template system, and often your domain architecture. One wrong move and you lose 30-70% of organic traffic in the first month.

The risk isn't the migration itself. It's the broken redirects, missing content, duplicate pages, and indexing delays that follow when you skip pre-launch validation.

This guide maps the full CMS migration process from audit to post-launch monitoring, with specific gotchas for popular platform combinations.

Why CMS Migrations Kill Rankings

URL Structure Changes

WordPress uses /blog/post-title/. Shopify uses /products/product-title. Your old URLs return 404s unless you redirect them. If Google can't find your pages, you lose rankings within days.

Template and Schema Differences

WordPress themes structure content differently than Shopify templates. Headings change. Schema markup changes. Internal linking changes. Google re-evaluates your pages as if they're new.

Content Loss

Not all CMSs export cleanly. Alt text, meta descriptions, custom fields, and internal links often don't transfer. You rebuild those manually or lose them.

Indexing Delays

Google takes 2-8 weeks to re-index migrated sites. During that window, old URLs 404 and new URLs aren't ranked yet. Traffic drops.

Pre-Migration: Audit Your Current Site

1. Export Full URL List

Use Screaming Frog or your sitemap:

  1. Crawl your site → Export all URLs to CSV
  2. Include: Pages, posts, categories, tags, products, media
  3. Record: URL, status code, meta title, meta description, canonical

Why: This is your redirect mapping source. Every old URL needs a new destination.

2. Identify High-Value Pages

Google Search Console > Performance:

Export pages by:

Why: These pages drive traffic. Prioritize them in redirect mapping.

3. Export All Metadata

Pull:

Why: New CMS won't preserve these automatically. You'll re-enter them manually.

4. Audit Internal Links

Screaming Frog > Internal > All:

Export internal links. You'll recreate critical links post-migration (category cross-links, contextual links in content).

5. Backup Everything

Download:

Migration Planning: Map Old URLs to New URLs

Create Redirect Mapping Spreadsheet

Old URL New URL Status Code Priority
/blog/seo-tips/ /articles/seo-tips/ 301 High
/category/tutorials/ /tutorials/ 301 Medium
/old-product/ /products/new-product/ 301 High

Redirect Rules

  1. Direct match: Old page exists on new site → 301 redirect old to new
  2. Consolidation: Multiple old pages merge into one → 301 all to strongest page
  3. Deletion: Old page has no equivalent → 301 to most relevant parent category or homepage (last resort)
  4. Media: Images and PDFs → Redirect or re-upload and update URLs

Handle URL Structure Changes

WordPress → Shopify

WordPress:

/blog/post-title/
/category/category-name/
/product/product-name/

Shopify:

/blogs/news/post-title
/collections/collection-name
/products/product-name

Redirect pattern (Apache .htaccess):

RewriteRule ^blog/(.*)$ /blogs/news/$1 [R=301,L]
RewriteRule ^category/(.*)$ /collections/$1 [R=301,L]

Shopify → WooCommerce (WordPress)

Shopify:

/collections/shoes
/products/nike-air-max

WooCommerce:

/product-category/shoes/
/product/nike-air-max/

Redirect pattern:

RewriteRule ^collections/(.*)$ /product-category/$1 [R=301,L]
RewriteRule ^products/(.*)$ /product/$1 [R=301,L]

Migration Execution: Build on New CMS

1. Set Up Staging Environment

Never migrate live. Build on:

User-agent: *
Disallow: /

2. Import Content

Use CMS-specific migration tools:

WordPress → Shopify

Shopify → WordPress

WordPress → WordPress (Theme Change)

3. Re-Enter Metadata

Manually re-add:

4. Recreate Internal Links

Critical internal links (topic clusters, category cross-links) often don't transfer. Manually recreate high-value links using your Screaming Frog internal link export.

5. Test All Functionality

Pre-Launch: Validate Redirects and Indexing

1. Implement 301 Redirects

Add redirects to .htaccess (Apache), nginx.conf (Nginx), or use a plugin:

WordPress: Redirection plugin Shopify: Shopify automatically handles some redirects, but add custom ones via Bulk Redirects app

Test redirects:

  1. Enter old URL in browser
  2. Verify it redirects to correct new URL (check address bar)
  3. Use Redirect Path Chrome extension → Shows redirect chain and status codes

2. Update XML Sitemap

Generate new sitemap with all new URLs:

WordPress: Yoast SEO or RankMath auto-generates Shopify: Sitemap auto-generates at /sitemap.xml

Verify sitemap includes all pages, products, blog posts, and categories.

3. Submit Sitemap to Search Console

Google Search Console:

  1. Sitemaps → Add new sitemap URL
  2. Remove old sitemap (if structure changed)

Bing Webmaster Tools: Repeat process

4. Update Internal Links to New URLs

Search your content for old internal links:

WordPress: Use Better Search Replace plugin

Shopify: Use Store Content Scanner app or manually update links

5. Block Staging from Indexing

Before launch, ensure staging site has:

<meta name="robots" content="noindex, nofollow">

Or robots.txt:

User-agent: *
Disallow: /

Launch: Go Live

1. Remove Staging Blocks

Delete noindex meta tags and restore robots.txt:

User-agent: *
Allow: /

2. Update DNS (If Changing Hosting)

If migrating to new hosting, update DNS A records to point to new server. Propagation takes 1-24 hours.

3. Force HTTPS

Ensure new site uses HTTPS. Redirect HTTP to HTTPS:

Apache (.htaccess):

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

4. Request Indexing (High-Priority Pages)

Google Search Console > URL Inspection:

Submit top 20 pages by traffic for immediate indexing.

5. Monitor for Errors

Search Console > Coverage:

Watch for:

Post-Launch: Monitor and Fix

Week 1: Fix Immediate Issues

  1. 404 errors → Google Search Console > Coverage > Excluded
    • Identify 404s
    • Add 301 redirects to correct pages
  2. Redirect chains → Screaming Frog > Response Codes > Redirection (3xx)
    • Flatten chains (A→B→C becomes A→C)
  3. Broken internal links → Screaming Frog > Internal > Broken Links
    • Update or remove links

Week 2-4: Monitor Traffic

Google Analytics:

Compare traffic 4 weeks before migration vs 4 weeks after:

Search Console:

Month 2: Re-Index Check

Search Console > Coverage:

Month 3: Rankings Audit

Track keyword rankings:

Use Ahrefs, Semrush, or Search Console > Performance > Queries

Platform-Specific Gotchas

WordPress → Shopify

Shopify → WooCommerce

Wix → WordPress

Common Mistakes

Mistake 1: No Redirect Mapping

You migrate without mapping old URLs to new URLs. Old URLs return 404s.

Fix: Create redirect mapping spreadsheet before migration.

Mistake 2: Forgetting Media Redirects

Images and PDFs break because old /wp-content/uploads/ URLs don't exist on new CMS.

Fix: Re-upload media and update URLs, or redirect old media paths.

Mistake 3: Losing Meta Descriptions

CMS doesn't import meta descriptions. All pages have default "Shop now" descriptions.

Fix: Export metadata before migration, re-enter manually.

Mistake 4: Redirect Chains

Old URL redirects to staging URL, then to live URL.

Fix: Redirect old URL directly to final live URL (flatten chains).

Mistake 5: Launching Without Testing

You launch, then discover checkout is broken or forms don't work.

Fix: Test everything on staging before launch.

Frequently Asked Questions

How long does a CMS migration take?

2-8 weeks depending on site size and complexity. Small blog (50 pages): 1-2 weeks. E-commerce store (500+ products): 4-8 weeks.

Will I lose rankings during migration?

Temporary drop (10-30%) is common. Rankings recover within 4-8 weeks if redirects are correct. Poor execution can cause permanent ranking loss.

Do I need to change my domain during CMS migration?

No. CMS migration and domain migration are separate. Keep your domain unless you have a business reason to change it.

Can I migrate without downtime?

Yes, if you build on staging, test, then flip DNS to new server. Downtime should be <1 hour (DNS propagation).

Should I migrate all at once or in phases?

All at once for small sites. Phases for large sites (e.g., migrate blog first, then products). Phased migrations are complex—avoid unless necessary.

Next Steps

Audit your current site. Export URLs, metadata, and internal links. Create redirect mapping spreadsheet matching every old URL to a new destination. Build on staging. Test redirects with Redirect Path extension. Launch and monitor Search Console for errors daily for the first week. For related guidance, see Site Migration SEO Checklist, Redirect Mapping Guide, and Post-Migration Audit.


When This Fix Isn't Your Priority

Skip this for now if:

This is one piece of the system.

Built by Victor Romo (@b2bvic) — I build AI memory systems for businesses.

← All Fixes