WP Shopify Redirect Mapper

WP ➜ Shopify Redirect Mapper

Upload WordPress URLs and download a Shopify-ready redirects CSV. Tip: Add an optional type column with values like post, page, product to force routing.

Products → /collections/<collection>/products/<handle> Blogs → /blogs/<blog>/<article> Pages → /pages/<slug>

1) Upload files

CSV should have a URL column named one of: url, source, from, wordpress_url, wp_url, link. Optional columns: category (or categories), handle_override, type (post/page/product/category/tag).

2) Options

Used for blog posts → /blogs/<blog-handle>/<article>

Used when a product has no explicit/inferrable category.

3) Process

Preview

Redirect from Redirect to
Built for WP → Shopify migrations. Note: category is for products only; leave blank for posts & pages. Use type to force a post/page when needed.

How to use the Redirect Mapper (step-by-step)

1) Create your input CSV

Use Excel/Sheets. Add headers on the first row:

  • url – the original WordPress URL

  • category – the Shopify collection handle you want this product to land in
    (optional) handle_override – only if the Shopify product handle is different from the WP slug

Minimal example (what most people need)

url,category
https://www.thecheesesociety.co.uk/product/colston-bassett-stilton-pdo/,blue-cheese
https://www.thecheesesociety.co.uk/product/the-bold-and-the-blue/,cheese-gift-boxes
https://www.thecheesesociety.co.uk/product/fourseed-sourdough-crackers-2/,accompaniments
https://www.thecheesesociety.co.uk/product/cheese-wedding-cake-40-60-guests/,cheese-celebration-cakes

Since your WP site doesn’t use product categories, the category column is how you tell the tool which Shopify collection to use. Just type the correct collection handle (lowercase, hyphenated).

The tool treats single-segment pages as Shopify Pages automatically:

  • https://www.thecheesesociety.co.uk/contact//pages/contact

  • https://www.thecheesesociety.co.uk/about//pages/about

  • https://www.thecheesesociety.co.uk/delivery//pages/delivery

So in your CSV, just leave category blank for pages (and blog posts)

If a handle is different on Shopify

url,category,handle_override
https://www.thecheesesociety.co.uk/product/monthly-cheese-club/,subscriptions,monthly-cheese-subscriptions

Save as CSV.


2) Open the tool

You’ve got two versions:

  • Shortcode plugin (works great with Classic Editor):
    Create a page and put this shortcode in the content:

    [wp_shopify_redirect_mapper]
  • Standalone HTML (can be iframed or opened locally in your browser) — same UI.


2) In the tool, do this

  1. Upload your CSV in “WordPress URLs file (CSV or TXT)”.

  2. Ignore “Category map (CSV)” — you don’t need it if you already put the right collection handles in your category column.

  3. Options (defaults are fine):

    • Blog handle: blog

    • Fallback collection: all (only used when a row has no category and none can be inferred)

    • Prefer /collections/…/products/…: ✅ keep ON

    • Trailing slash: optional; your choice

  4. Click Process URLs → review the Preview table.

  5. Click Download CSV to get the Shopify-ready file.


3) Import into Shopify

  1. Shopify Admin → NavigationURL redirectsImport.

  2. Upload the CSV you downloaded from the tool.

    • Column headers will already be: Redirect from, Redirect to (what Shopify expects).

    • Values are path-only (no domain), which is correct.


What the buttons mean (plain English)

  • WordPress URLs file: Your main CSV/TXT (with the url column, plus category, etc.).

  • Category map (CSV): Optional translator.
    Only use this if your CSV’s category values are human labels (e.g., “Blue Cheese”) and you want them auto-converted to collection handles (e.g., blue-cheese).

    • If you’re already typing blue-cheese in the category column, you can skip this.

    • If you want to use it, create a tiny file like:

      source_category,collection_handle
      Blue Cheese,blue-cheese
      Cheese Gift Boxes,cheese-gift-boxes
      Subscriptions,monthly-cheese-subscriptions
  • Blog handle: Used for blog post redirects (/blogs/<handle>/<article>). Doesn’t affect products.

  • Fallback collection: Used only when the tool can’t find/doesn’t get a category for a product.

  • Prefer /collections/<col>/products/<handle>: Keeps product targets under the right collection.

  • Add trailing slash: Style preference.

  • Process URLs: Runs the mapping rules.

  • Download CSV: Gets the Shopify import file.

  • Clear: Resets the page.


FAQ (quick)

  • My WP product URLs are /product/<slug> and don’t show categories. What do I do?
    Just fill the category column with your target Shopify collection handle for each row. That’s it.

  • Do I need a Category map?
    No, not if your category column already uses the correct handles (blue-cheese, cheese-gift-boxes, etc.). It’s only for translating human labels to handles.

  • What if I leave category blank?
    The tool will try to infer from the URL (only works if your URL has /.../<cat>/product/<slug>), otherwise it uses your Fallback collection.