A WooCommerce to Shopify SEO migration needs a URL map built from the old site and the actual destination catalog. A successful product import does not prove that old product links still work. The migration needs separate evidence for content, redirects, final destinations and the links visitors use to discover products.
This guide focuses on product and category mapping, Shopify redirect imports and validation. Use the website redesign SEO checklist for the wider launch process. The fictional store paths and downloadable files below demonstrate the method. They are not a client case study, and they cannot be imported unchanged into a real store.
Key takeaways
- Inventory old URLs from several sources before changing the platform.
- Match products and categories by identity and purpose, not just similar slugs.
- Separate Shopify-importable redirects from reserved-path and query exceptions.
- Test the first response, final destination, content and indexing signals after launch.
- What should you collect before leaving WooCommerce?
- How do you map product pages and categories correctly?
- Which URLs need a Shopify-specific exception review?
- How do you prepare and import the redirect CSV?
- How should you test redirects before and after launch?
- What else must change besides the redirects?
- How do you monitor the migration without promising unchanged rankings?
What should you collect before leaving WooCommerce?
Collect a URL inventory while the old store still works, then preserve a crawl and key page evidence. Include products, categories, useful editorial content, policies and known legacy links. Shopify's Migrate from WooCommerce guide explicitly includes redirect setup and post-launch checks. The URL work deserves its own owner rather than being assumed complete after catalog transfer.
Start with the sitemap and a crawl of internal links. Add landing pages from analytics and Search Console, links from important external sites, previous redirect rules and any old campaign URLs still in use. These sources overlap but do not replace one another. A sitemap can omit an older linked page, and recent analytics can miss a seasonal product's historical importance.
Export the product catalog separately. WooCommerce's Product CSV Importer and Exporter documentation describes its built-in export workflow. Preserve stable identifiers such as SKU alongside product names and variation relationships. Treat the catalog as an identity reference, not as proof that it contains every historical public URL you need to resolve.
Record the existing permalink configuration and custom routing rules before changing them. Two WooCommerce stores can expose the same product through different path structures. Category bases, language folders and past slug changes can create exceptions to a simple product-prefix rule. Sample the real URLs, including uppercase characters and trailing slashes, instead of assuming every address follows one clean pattern.
Store the inventory somewhere the launch team can access independently of the old hosting account. Include collection dates and source labels. Avoid copying customer information or order exports into an SEO worksheet. The mapping task needs public URLs and product identity evidence, not a database of buyers. This keeps the working document easier to share and review.
How do you map product pages and categories correctly?
Choose the destination by product identity and visitor intent, then confirm it exists in Shopify. A matching handle is helpful but insufficient. Compare SKU, model, variant selection and the content a visitor expects from the old link. Keep the old URL, proposed target, decision reason and reviewer in the same row so assumptions remain visible.
Download the fictional migration decision map. It separates approved redirects from removals and manual-review cases. The accompanying Shopify redirect CSV example contains only the two import columns. Replace its illustrative destinations with verified store paths and review the decisions before uploading anything.
| Old address | Proposed outcome | Why it needs that decision |
|---|---|---|
| /product/trail-mug/ | /products/trail-mug | Same product identity |
| /product-category/camping/ | /collections/camping | Equivalent category purpose |
| /product/old-filter/ | Manual review | Replacement compatibility must be confirmed |
| /shop/trail-mug/ | Platform exception review | Shopify restricts redirect source prefixes |
| /product/retired-gift/ | Intentional removal | No relevant replacement in this example |
Product categories usually need collection destinations, but the taxonomy may change during replatforming. Compare the visible category purpose and available product set. A collection with the same name but a completely different inventory is not automatically an equivalent destination. Write a short reason for consolidated categories, especially when several old categories point to one new collection.
Check variant links carefully. An old size or color URL may need to preserve a specific choice, not just reach the parent product. Verify how the new landing page selects that variant and whether the canonical remains appropriate. Use the Shopify duplicate product URL guide for the separate relationship between product routes, collection paths and canonical identity.
Don't send every removed product to the homepage. Google's Site moves with URL changes guidance warns about irrelevant redirects and recommends mapping to relevant replacements. When several products are genuinely consolidated, document the new page's coverage. When no replacement exists, a removal can be the correct outcome rather than a forced redirect.
Which URLs need a Shopify-specific exception review?
Check whether Shopify can apply the proposed redirect before calling the map ready. Shopify's Creating and managing URL redirects documents reserved paths, active-page restrictions and query-string considerations. Redirects do not override a valid page, and some source prefixes cannot be handled through the normal redirect interface. Keep those rows out of an ordinary import until resolved.
The old WooCommerce /shop path deserves attention because Shopify lists /shop among restricted source prefixes. A store with product URLs under that prefix cannot assume a bulk CSV will solve the entire migration. Inventory those requests and decide how the architecture will handle them. Any alternative routing layer must be compatible with the actual domain and platform setup.
Treat legacy query-based product addresses separately as well. An address using an old product ID in its query string is not equivalent to a clean product path. Test the exact request, including parameters, and document whether the chosen mechanism preserves the intended distinction. A spreadsheet that removes all queries during normalization can accidentally merge different products into one source row.
Likewise, distinguish cosmetic URL normalization from meaningful locale or variant information. Removing a language folder or variant parameter might simplify the map while breaking the visitor's expected destination. If the store serves several markets, check the final country's content and return links using the Shopify Markets hreflang audit. Don't combine language and product consolidation without reviewing both.
Make exceptions visible in the launch checklist, with an assigned owner and a testable expected result. A red flag labeled unresolved is useful. A spreadsheet row that looks approved but relies on an untested platform behavior is dangerous because the launch team may never revisit it. The map should describe what is known, what is intentional and what still needs work.
How do you prepare and import the redirect CSV?
Keep the decision worksheet and Shopify import file separate. The worksheet needs reasons, statuses and evidence; the import file needs the platform's expected fields. Shopify provides a sample URL redirect CSV from its redirect documentation. Compare your headers with that current sample and test a small reviewed batch before importing the full set.
Redirect from,Redirect to
/product/trail-mug/,/products/trail-mug
/product-category/camping/,/collections/camping
These are fictional paths, not verified products on your store. Prepare UTF-8 CSV output using a spreadsheet export or a proper CSV writer. Check quoting when a value contains special characters. Avoid formulas in the final import cells, and inspect the file itself rather than assuming the spreadsheet's visible display is identical to its exported contents.
In Shopify, open Content, then Menus and URL redirects. Use Import, select the CSV, review the import and complete it. Interface labels can evolve, so follow the current help page if your admin differs. Export the resulting redirects afterward and compare them with the approved import. An accepted file is evidence of a configuration step, not proof of every live response.
Watch for duplicate source rows, self-redirects and targets that still point to retired addresses. A source that appears twice with different targets needs a decision before import. A target that redirects again needs review even if the browser eventually reaches a working product. Prefer mapping the old address directly to the final relevant destination you intend to maintain.
Do not call an example file production-ready solely because its headers match Shopify's template. Import behavior, reserved paths and live destination content require store-specific checks. Keep a rollback export and import log with the date, operator and reviewed row count. Those records make a failed batch easier to isolate without disturbing unrelated redirects already in place.
How should you test redirects before and after launch?
Test the first response and final page separately. Following redirects automatically can hide a missing initial redirect, a chain or a temporary status. Use a request that shows the original status and Location header, then inspect the final response and rendered page. For status choices and chains, see the 301 versus 302 redirect guide.
# Illustrative requests: replace example.com with your actual store.
curl -sS -D - -o /dev/null https://example.com/product/trail-mug/
curl -sS -L -o /dev/null -w '%{http_code} %{url_effective}\n' \
https://example.com/product/trail-mug/
Save the source, first status, first destination, number of hops, final status and final URL. Then inspect the destination's title, canonical, robots directives and visible product identity. A final 200 response can still display the wrong product, a password screen or an error message. Technical status is only one part of a correct mapping.
Before domain cutover, test the configuration through the staging or preview arrangement your platform supports. Recognize its limits: a preview host may not exercise the same hostname, market routing or edge rules as production. Mark those checks provisional. Repeat the critical paths on the real public hostname immediately after launch, including both high-value pages and each exception class.
Use the redirect verification worksheet to capture the result and evidence location. Test the entire approved map with a crawler when practical, and inspect representative rendered destinations manually. Sample every path type rather than testing only easy product rows. Include one intentionally removed URL so the team knows what a valid removal looks like.
Google's Troubleshoot Google Search crawling errors distinguishes moved content from unavailable content without a replacement. Use that distinction when reviewing failed rows. Restore accidentally missing products, fix incorrect mappings and retain intentional 404 or 410 outcomes when no suitable replacement exists. Do not convert every reported missing URL into a homepage redirect.
What else must change besides the redirects?
Update links that your store controls to point directly to the new destinations. Navigation, collection cards, product recommendations, editorial content and policy references should not depend on the redirect map forever. Crawl the new site and identify links still using the old WooCommerce paths. Fix them at their source rather than accepting extra hops as the normal user journey.
Review canonical URLs and sitemap entries independently. A redirect map does not repair a theme or app that generates the wrong canonical, nor does it guarantee a sitemap contains the intended products. Check indexable destinations, excluded pages and accidental noindex rules. Use the canonical tag guide when deciding which URL should own substantially equivalent content.
Keep product feeds in scope. The new landing URL, selected variant, displayed currency and checkout behavior need to agree with the submitted item. A migration can preserve ordinary page access while breaking Shopping eligibility. The Shopify Merchant Center price mismatch guide provides a separate worksheet for tracing those offer-data conflicts.
If a product is temporarily unavailable during the move, do not treat the stock state as proof that its URL should disappear. Use the out-of-stock product SEO decision guide to separate temporary shortages, discontinued inventory and genuine replacements. Content migration and inventory decisions should agree, but they are not the same question.
How do you monitor the migration without promising unchanged rankings?
Keep the launch date, redirect revisions and major content changes in a shared log. Compare equivalent Search Console periods and review the affected page groups. Track old URLs, new destinations, countries and devices consistently. A migration can involve temporary search changes, and no redirect spreadsheet can guarantee that every ranking remains unchanged after replatforming.
Prioritize observed failures first: broken important links, wrong destinations, excluded intended pages and inconsistent product data. Keep the evidence attached to each issue and retest after the fix. Separate a crawler's failed request from a confirmed indexing problem. Search Console's historical crawl evidence may describe an earlier response, so compare it with the current live response before making another change.
Does importing products create every redirect automatically?
Don't assume so. Catalog migration and URL resolution need separate verification. Export the configured redirects and test the old addresses against the real store. Pay particular attention to custom WooCommerce permalinks, older renamed products and category routes. The import can successfully create products while legacy links still fail or reach a less relevant destination.
Should you redirect a discontinued product to a collection?
Only when the destination meaningfully serves the original visitor and the consolidation is justified. A closely related replacement may be better, while an unrelated collection may be misleading. Document the reason and inspect the destination. If there is no relevant replacement and no useful retained page, an intentional removal can be more accurate than a forced redirect.
Is a same-domain platform move a domain change?
No. Moving from WooCommerce to Shopify while retaining the public domain is a platform migration that may still change many paths. A hostname change is a separate condition with additional checks. Record the actual old and new URL pairs and apply the relevant migration guidance. Don't use tools intended for a domain change merely because the hosting platform changed.
A good redirect map is a set of reviewed decisions with observable results. Preserve the old inventory, resolve platform exceptions, validate final pages and keep the new internal links direct. For a store with complex legacy paths, a technical SEO migration review can help turn that map into a practical launch and retest plan.
