WooCommerce to Shopify redirects:
map every old URL.
WooCommerce and Shopify use different URL patterns, so old product, category and blog links break at launch unless you redirect them. Build the map from your real URLs, then check it free before you import it into Shopify.
1. How the URLs change
With WooCommerce’s default settings, product addresses start with /product/. Shopify product addresses always start with /products/. Your exact old paths depend on the permalink options under Settings → Permalinks in WordPress, so check yours against WooCommerce’s permalink guide.
- Product
/product/linen-apron/becomes/products/linen-apron- Product category
/product-category/kitchen/becomes/collections/kitchen- Blog post, “Day and name” permalinks
/2023/04/12/apron-care/becomes/blogs/news/apron-care- Shop page at
/shop, or the “Shop base” option with it /shop/…cannot be redirected by Shopify- “Plain” permalinks
/?p=123or/?product=111may not redirect reliably
Copy each destination from the handle Shopify shows for that product, collection or article. A Shopify article address includes its blog’s handle, such as /blogs/news/. Don’t assume the old WooCommerce slug carried over unchanged.
2. List the URLs your old store really has
- Your sitemap. Since WordPress 5.5, the core sitemap index is at
/wp-sitemap.xml. SEO plugins such as Yoast replace it with their own, so use whichever sitemap your site actually serves (WordPress announcement). - Pages people actually arrive on. Add landing pages from your analytics or Search Console, including old URLs that are no longer in the sitemap.
- Redirects WordPress already runs. Rules from a redirect plugin or server config stop working once your domain points to Shopify. Put them in the map, pointed at the final Shopify URL.
Write one row per old URL, using Shopify’s import headers: Redirect from,Redirect to. Keep each old path exactly as your site used it, including any trailing slash.
3. Find the problems in this map
This is a fictional learning file for a small kitchen-textiles store. Replace the paths with your own before any store use. The audit reads the file in your browser and never visits the URLs in it.
Scroll sideways in the CSV to read long lines.
Redirect from,Redirect to
/product/linen-apron/,/products/linen-apron
/product/field-hoodie/,/products/field-hoodie-grey
/product/field-hoodie/,/products/field-hoodie-navy
/product-category/kitchen/,/collections/kitchen
/shop/,/collections/all
/?product=111,/products/tea-towel
/2023/04/12/apron-care/,/blog/apron-care/
/blog/apron-care/,/blogs/news/apron-care
8 rows: 2 errors · 3 need review · 3 clear
The audit counts the header as row 1. Here is what needs attention:
- Rows 3 and 4 · one old URL, two destinations
- The hoodie was one variable product in WooCommerce, but the map sends its URL to two Shopify products. A redirect can only go one place. In this example the hoodie became one Shopify product with color variants, so both rows collapse into one.
- Row 6 · a path Shopify won’t redirect
- Shopify says you can’t redirect URLs that begin with
/shop,/cart,/ordersand a few other prefixes. That covers WooCommerce’s shop page while its slug isshop. If you also used the “Shop base” product option, it covers every product URL too. Update the links you control, such as emails, ads and social profiles, to the new Shopify addresses. - Row 7 · a query-string URL
- Shopify says URLs with query strings “might not work as expected” as redirects. That affects “Plain” permalinks like
/?p=123. If they still get visits, import a few and test them live before relying on the rest. - Row 8 · a chain
- An older WordPress redirect sent the dated post URL to
/blog/apron-care/, which row 9 then sends on to Shopify. Point both straight at the Shopify article, so visitors take one hop instead of two.
Rows 2, 5 and 9 are structurally clear. That does not prove the Shopify destinations exist yet.
4. Correct the map and check it again
The corrected file keeps one destination for the hoodie and sends the dated post straight to Shopify. It drops the two rows Shopify can’t reliably handle. Keep those on a separate list so you can decide about them, rather than silently losing them.
Scroll sideways in the CSV to read long lines.
Redirect from,Redirect to
/product/linen-apron/,/products/linen-apron
/product/field-hoodie/,/products/field-hoodie
/product-category/kitchen/,/collections/kitchen
/2023/04/12/apron-care/,/blogs/news/apron-care
/blog/apron-care/,/blogs/news/apron-care
5 rows: 0 errors · 0 need review · 5 clear
“Clear” describes the map’s structure only. These redirects have not been installed or tested on a store.
5. Import into Shopify, then test live
- Import the corrected two-column map. In Shopify, go to Content → Menus → URL redirects → Import. Our downloadable findings report is not a Shopify import file.
- Only broken URLs redirect. Shopify: “If the URL still loads a valid webpage, then the URL redirect won’t work.” A Shopify page at the same path wins over your redirect.
- Use relative destinations such as
/products/linen-apronfor your own store. Shopify asks for a full URL only when the destination is on another domain. - Test the old URLs once your domain points to Shopify. Shopify’s redirect help doesn’t say how it treats a trailing slash, so test the exact form people link to, such as
/product/linen-apron/.
Details can change, so check Shopify’s current URL redirect instructions before you import.
Check your own map
The free audit checks up to 1,000 rows in your browser. Your CSV is not sent to our servers, and you don’t need an account. It finds loops, chains and conflicting destinations. With Shopify’s Redirect from,Redirect to headers, it also flags the Shopify restrictions above. It cannot install redirects or see your live store.
A bigger catalog, or want proof after launch? The Migration Pass is $39 one-time for one project. For 30 days it audits maps up to 10,000 rows and checks up to 100 old URLs daily against the destinations you expect. Live checks require DNS verification of your domain. They don’t render JavaScript or guarantee rankings.