Unadhi Guides

Moving from WooCommerce to Shopify: a redirect sheet that maps every old product URL to its new Shopify page, ready to import as Shopify's URL redirect CSV

Updated 22 Oct 2026 · Disclosure: the product data scraper linked below is an Unadhi product on the Apify Store. This guide is free, and the sheet works without it if you list your old product URLs by hand or from your sitemap. Current Apify pricing is only on the Store page. This page has no affiliate links and nobody paid to be mentioned. Menu names in Shopify and WooCommerce change from time to time.

What you get: one Google Sheet that turns your old WooCommerce shop into a finished Shopify URL redirect file. The map tab has one row per old product URL (for example /product/oak-chopping-board/), matched to the new Shopify product page (/products/oak-chopping-board-large) by SKU first, then by title, with a column you can type over by hand. Every row says how it was matched and gets a check: ok, ok: to collection (no product match, so it goes to the closest collection you chose), duplicate or path Shopify will not redirect. The redirects tab keeps only the ok rows in two columns, Redirect from and Redirect to, which you download as CSV and import in Shopify under Content → Menus → URL redirects. Old links from Google, Pinterest, newsletters and other sites then land on the right product instead of a "Page not found". Formulas are below. The example rows are made up.

The finished sheet

map tab (example rows are made up)

Redirect from (old path)Old SKUOld titleHandle by SKUHandle by titleYour handleRedirect toMatched byCheck
/product/oak-chopping-board/OAK-LOak chopping board, largeoak-chopping-board-large/products/oak-chopping-board-largeSKUok
/product/linen-apron-sage/Linen apron – sagelinen-apron-sage/products/linen-apron-sagetitleok
/product/gift-box-2025/GB-25Gift box 2025/collections/gift-boxesno match: closest collectionok: to collection
/shop//collections/allno match: closest collectionpath Shopify will not redirect

redirects tab (what you import)

Redirect fromRedirect to
/product/oak-chopping-board//products/oak-chopping-board-large
/product/linen-apron-sage//products/linen-apron-sage
/product/gift-box-2025//collections/gift-boxes

Who this is for, and when you need it

Small shops moving their own store from WooCommerce to Shopify (the same sheet works from other platforms the scraper can read). WooCommerce product pages usually sit under /product/ and Shopify's under /products/, so every old product link breaks on the day you point your domain at Shopify unless you add a redirect for it. Build the sheet while both stores exist: the old shop still live, the new Shopify store set up with its products. Google's site move guidance also suggests moving in a quieter period if your traffic is seasonal, so if you can choose, avoid the weeks just before Black Friday.

Step 1: list your old product URLs in a tab named scrape

With the product data scraper

Open the E-commerce Product Data Scraper (Shopify, WooCommerce, any shop) on the Apify Store and run it on your old shop:

{
  "startUrls": [{ "url": "https://your-old-shop.example" }],
  "maxProductsPerShop": 5000,
  "includeDescription": false
}

Export the dataset as CSV. In your Google Sheet use File → Import → Upload, "Insert new sheet", and name the tab scrape. Keep the headers as they are; the formulas look up url, sku and title by name.

Free, without the scraper

Paste your old product URLs into column A of a tab named scrape with the header url, and add sku and title columns if you have them. WordPress lists product URLs in its sitemap (often /wp-sitemap-posts-product-1.xml, or /product-sitemap.xml if an SEO plugin makes the sitemap). Your analytics "top pages" report is worth adding too, because Google's guidance is to start with the URLs that get traffic and links.

Step 2: export your new Shopify products into a tab named shopify

In Shopify admin go to Products → Export, choose all products and the plain CSV option, and import the file into the same Google Sheet as a new tab named shopify. The current export has columns named Title, URL handle and SKU (one row per variant; the title is only on the first row of each product). Older exports call them Handle and Variant SKU; if yours do, change those names in the formulas.

Step 3: the settings tab

Step 4: build the map tab

Row 1 headers as in the table above (columns A to J below). Put these in row 2 and fill down as far as your scrape tab goes.

Work down the sheet in this order: fix every duplicate (usually the same product listed twice in the scrape), then look at every ok: to collection row: if the product still exists on Shopify under another name or SKU, type its handle in column G so the visitor lands on the product itself. Rows marked path Shopify will not redirect are fine to leave: for example WooCommerce's /shop/ page can't be redirected because Shopify reserves paths beginning with /shop, and an old path that already starts with /products/ only works if the Shopify handle is the same.

Step 5: the redirects tab, then import into Shopify

  1. New tab named redirects. In A1 type Redirect from, in B1 Redirect to. In A2: =FILTER({map!B2:B, map!H2:H}, LEFT(map!J2:J, 2)="ok")
  2. With the redirects tab open, use File → Download → Comma-separated values (.csv). Compare the header row with Shopify's sample URL redirect CSV (linked from the "Import your URL redirects" section of Shopify's help page) and match its header names if they differ.
  3. In Shopify admin go to Content → Menus → URL redirects → Import, add the file, review the import, then import the redirects.
  4. Shopify redirects only from URLs that are broken on the Shopify store, so they start working once your domain points at Shopify and the old pages no longer exist there. Shopify allows up to 100,000 URL redirects (more on Plus).
  5. Test ten old URLs from the sheet in a private browser window after the switch, including your three best sellers. Then keep the redirects: Google's guidance is at least a year, and longer is better for people following old links.

Categories are not in the scrape. Add your old category pages by hand at the bottom of the map tab (WooCommerce usually uses /product-category/name/), and type the matching Shopify collection path, such as /collections/name, straight into column H over the formula.

Partner programme opening soon

Partner programme opening soon: join the free waitlist. Planned terms are 50% of each referred sale (75% once you have 5+ paying customers), single level, paid through Gumroad only from revenue received.

Sources

Related

← All guides

Unadhi Guides are free, independent explainers. We correct errors as soon as we find them: write to mininglife7@gmail.com.