Migration
Technical SEO
Shopify

WooCommerce to Shopify Migration SEO Checklist

Migrate from WooCommerce to Shopify without sacrificing organic visibility, product data, analytics, or customer experience.

Boran Uztemur10 min read

Moving from WooCommerce to Shopify is not a file import. It is a controlled change to URLs, templates, structured data, navigation, checkout, analytics, and the systems search engines use to understand the store. A migration can improve operations and performance, but an unplanned launch can erase years of accumulated signals in one night.

The safest objective is not “keep every URL exactly the same.” Shopify and WordPress have different routing rules. The objective is to preserve the meaning and destination of every valuable URL, transfer the content customers need, and give crawlers unambiguous redirects, canonicals, internal links, and sitemaps.

Build a migration inventory before touching Shopify

Crawl the live WooCommerce store and export every indexable URL, status code, canonical, title, meta description, heading, word count, structured-data type, image, internal link, and hreflang reference. Add URLs from Google Search Console, GA4 or your analytics platform, the XML sitemap, paid landing pages, backlinks, and server logs. A crawler alone will miss orphan pages that still receive traffic or links.

Classify URLs as products, categories, tags, filters, blog posts, pages, media, account pages, and utilities. Then add business data: organic sessions, revenue, conversions, backlinks, and seasonal importance. This becomes the source-of-truth URL map and stops the team from treating a high-value discontinued product like an empty tag archive.

Capture baselines for the previous 12 to 16 months where possible: indexed pages, clicks, impressions, query groups, landing-page sessions, conversion rate, revenue, Core Web Vitals, crawl errors, and top countries. Account for seasonality and promotions. Without a baseline, every post-launch change becomes guesswork.

Decide what will move, merge, redirect, or disappear

Every old indexable URL needs an intentional outcome:

  • Move: an equivalent Shopify page exists and preserves the same purpose.
  • Merge: several thin pages combine into one stronger destination.
  • Redirect: the original item is gone but a genuinely relevant replacement exists.
  • Retire: there is no useful substitute, so the old URL returns 404 or 410.

Do not redirect every missing page to the homepage. It confuses customers, weakens relevance, and can be treated like a soft 404. A removed product may redirect to its direct replacement or a narrow collection; an old category should map to the equivalent collection; a useful guide should map to the migrated article.

Create a one-to-one CSV with old URL, new URL, action, reason, priority, and test status. Normalize protocol, hostname, trailing slash, capitalization, parameters, and encoded characters. Include WordPress patterns such as /product/, /product-category/, date archives, attachment pages, pagination, and localized paths.

Design the Shopify information architecture first

Shopify uses opinionated routes such as /products/handle, /collections/handle, /pages/handle, and /blogs/blog-name/article-handle. You normally cannot reproduce every WooCommerce path. That is acceptable when the new structure is consistent and redirects are exact.

Design collections around how shoppers browse, not around every historical WordPress taxonomy. Preserve strategically important category copy, FAQs as visible content, buying guides, and internal links. Avoid creating dozens of automated collections that differ only by a minor attribute unless each page serves a distinct search and shopping need.

Map navigation from the home page to primary collections, subcategories where useful, and products. Google explains that crawlable links and site relationships help it understand ecommerce structure. Use normal anchor links rather than interactions that expose destinations only after client-side code runs.

Migrate product data without losing search context

A product import should include handles, titles, descriptions, vendors, product types, options, variants, SKUs, barcodes, prices, compare-at prices, inventory rules, weights, images, image alt text, tax status, shipping requirements, and relevant metafields. Validate variant combinations and availability instead of trusting a successful CSV message.

Keep useful product copy. Removing specifications, compatibility details, sizing information, delivery expectations, or care instructions can reduce both relevance and conversion. Clean WordPress shortcodes, builder markup, broken relative images, and inline styles before import. Preserve the intent, but use Shopify-native sections and metafields for maintainability.

Products that are temporarily unavailable should not be deleted automatically. Keep a useful indexable page when the item will return and explain availability. For permanently retired items, choose a replacement based on actual equivalence. Never redirect a product solely because both items share a broad category.

Rebuild metadata, canonicals, and structured data

Exporting SEO plugin fields does not guarantee Shopify will use them. Map titles and descriptions to Shopify fields or your chosen implementation, then inspect the rendered HTML. Each indexable page needs a self-referencing canonical using the public preferred hostname.

Shopify stores can expose alternate product paths through collections and query parameters. A correct canonical can consolidate those variants, but canonical tags are hints, not a substitute for clean internal linking. Link internally to the canonical product URL consistently.

Validate Product structured data against visible price, currency, availability, brand, variants, and review content. Do not copy ratings that are not displayed or independently collected. Breadcrumb markup should mirror the visible path. Article markup needs accurate author and publication dates. Structured data is not a place to invent information that the page does not show.

If the store is multilingual, map every language version separately. Each localized page should use a self-canonical and reciprocal hreflang to its actual translation. Do not canonical all languages to English. Our Shopify Markets SEO guide explains the international layer.

Preserve editorial content and media

WooCommerce migrations often focus on products while abandoning years of blog traffic. Inventory WordPress posts, authors, categories, featured images, embedded video, downloadable files, and internal links. Decide whether the Shopify blog is sufficient or whether a headless/content platform is justified.

Retain useful headings, tables, lists, captions, and update dates. Replace WordPress image and attachment URLs with stable new assets. Redirect the old article and attachment URLs where they have value. Rewrite internal links so visitors do not bounce through redirects after launch.

Avoid publishing hundreds of near-empty posts just to preserve URL count. Improve, merge, or retire content based on utility and evidence. A smaller site with complete topic coverage can be clearer than a large archive of duplicate tags and date pages.

Implement redirects as a tested system

Import direct 301 redirects into Shopify for paths that the platform does not already own. Avoid chains such as old URL → temporary URL → final URL. Every important source should resolve in one hop to a 200 destination.

Watch for conflicts with existing Shopify routes, apps, markets, and automatic redirects. Query strings may need special handling outside Shopify’s basic redirect interface. Domain-level redirects and HTTPS behavior should be configured at the appropriate platform or DNS layer, then tested with real requests.

Before launch, test the entire redirect map programmatically. Flag destinations that return non-200 responses, point to another redirect, land on an irrelevant page, or lose locale. Sample manually from every template type and priority group. Keep redirects indefinitely while they serve users or external links; do not remove them after an arbitrary month.

Rebuild analytics and conversion measurement

Treat analytics as a parallel migration. Document the existing GA4 property, Google Ads tags, consent platform, affiliate tracking, email attribution, server-side integrations, and event definitions. Decide what should remain comparable across launch.

Validate view_item, add_to_cart, begin_checkout, and purchase with the expected item identifiers, value, currency, quantities, coupon, transaction ID, and customer consent state. Prevent duplicate purchase events caused by overlapping apps or old checkout code. Shopify’s checkout and customer-event architecture changes over time, so use supported pixels and extensions rather than copying legacy scripts blindly.

Annotate the launch date in reporting. Preserve campaign parameters through the journey. Compare order counts and revenue between Shopify, GA4, and ad platforms, understanding that attribution models will not match perfectly. Our GA4 ecommerce troubleshooting guide provides a detailed validation sequence.

Use a staging and launch checklist

Build the new store behind password protection or another controlled preview. Password protection is not a replacement for checking index controls, but it prevents an unfinished duplicate store from being discovered casually. Do not block assets required for rendering during final crawl tests.

Before launch, verify:

  1. Products, variants, pricing, tax, shipping, discounts, and payments.
  2. Navigation, search, filters, account flows, forms, and transactional email.
  3. Titles, descriptions, canonicals, robots directives, structured data, hreflang, and social previews.
  4. Redirect map, internal links, images, downloads, and the custom 404 page.
  5. Mobile and desktop layouts, accessibility, and key performance templates.
  6. GA4, advertising events, consent states, and purchase deduplication.
  7. Domain ownership, DNS records, SSL issuance, and rollback responsibilities.

Lower DNS TTL ahead of the planned switch if your provider and operating process require it. Freeze content changes long enough to take a final delta export from WooCommerce. Assign one decision-maker for launch, one person for DNS, one for application checks, and one for analytics. Keep the old platform and data recoverable until reconciliation is complete.

Launch without sending mixed signals

At launch, connect the preferred domain, confirm HTTPS, remove storefront protection, and crawl the public site. Check that the home page and important templates return 200, old URLs return a direct permanent redirect, and no staging canonical or noindex remains.

Generate the Shopify sitemap and submit its public URL in Search Console. Do not repeatedly submit individual URLs as a substitute for correct discovery. Inspect a representative home, collection, product, article, and localized URL. Verify rendered HTML, selected canonical, indexing allowance, and discovered hreflang.

Monitor server and platform errors, orders, payment failures, analytics events, organic landing pages, and top redirects during the first hours. Fix checkout or widespread 5xx errors before cosmetic issues. Do not make unrelated design changes during the stabilization window because they make diagnosis harder.

Monitor the first 90 days

Daily during the first week, review 404s, redirect failures, indexability, analytics revenue, checkout completion, and major query/landing-page movements. Weekly, compare Search Console page groups rather than looking only at total clicks. Products, collections, brand queries, non-brand queries, and blog content can recover at different speeds.

Some volatility is normal while search engines recrawl and process redirects. Investigate persistent loss with evidence: missing content, incorrect destination, accidental canonical, weak internal links, blocked rendering, changed intent, or measurement failure. Avoid reversing the entire migration because of two days of noisy data.

Keep the old crawl, URL map, exports, redirect test results, and release notes. They make every investigation faster. Update redirects when product decisions change, but preserve the original mapping history.

Migration acceptance criteria

A migration is ready when every high-value old URL has an approved outcome; every new indexable URL has a self-canonical; localized pairs are reciprocal; important structured data matches visible content; analytics events reconcile within an agreed tolerance; and no critical customer flow depends on the old site.

It is successful when customers can find equivalent or better information, search engines can follow direct signals, and the business can operate the new platform without depending on undocumented fixes.

If you need a migration owner rather than a collection of disconnected vendors, contact Shopimaster. We can build the inventory, URL map, Shopify data model, redirects, theme, analytics validation, launch runbook, and post-launch monitoring as one accountable project.

Need help with your Shopify store?

We build, fix, and scale Shopify stores for ambitious brands. Tell us what you need.

Start a Project