How to Manage Redirects in Shopify

Complete guide to Shopify redirects: using the built-in URL redirect manager, automatic redirects, bulk CSV imports, limitations, Shopify-specific gotchas, and third-party apps for advanced needs.

Shopify handles redirects through a built-in URL redirect manager. You do not have access to server config files, .htaccess, or Nginx configuration. Everything goes through the Shopify admin or the API. For the full overview of all redirect types, see our HTTP Redirect Guide.

This is both a strength and a limitation. The interface is simple, but you give up the flexibility that server-level configuration provides. This guide covers what you can do, what you cannot, and how to work around the gaps.

The Built-in Redirect Manager

Shopify's redirect manager lives under Online Store > Navigation > URL Redirects (the exact path may vary by admin version, but Navigation is the key section).

Adding a single redirect

  1. Go to Online Store > Navigation
  2. Click URL Redirects
  3. Click Create URL redirect
  4. Enter the old URL path in "Redirect from" (e.g., /old-product)
  5. Enter the new URL path in "Redirect to" (e.g., /products/new-product)
  6. Click Save redirect

All redirects created through this interface are 301 permanent redirects. Shopify does not offer 302 temporary redirects through the admin. There is no option to change the status code.

What counts as a valid path

  • Redirect from: Must be a path on your Shopify store. It starts with /. You cannot redirect from an external domain or a full URL. Only paths within your store.
  • Redirect to: Can be a path on your store (/collections/summer) or a full external URL (https://other-site.com/page).

Examples

| Redirect from | Redirect to | Notes | |---|---|---| | /old-product | /products/new-product | Basic product redirect | | /pages/about-old | /pages/about | Page slug change | | /collections/summer-2024 | /collections/summer-2025 | Seasonal collection update | | /blog/old-post | /blogs/news/new-post | Blog post redirect (note the /blogs/ path) | | /promo | https://external-landing.com | Redirect to external site |

Automatic Redirects

Shopify automatically creates a 301 redirect when you change the URL handle (slug) of a product, collection, page, or blog post, but only if you check the "Create a URL redirect" checkbox that appears when editing the handle.

This checkbox is easy to miss. It appears in the SEO section of the product/page editor, right below the URL handle field. If you change the handle without checking this box, the old URL simply 404s.

When automatic redirects are created

  • Changing a product URL handle (with the checkbox checked)
  • Changing a collection URL handle (with the checkbox checked)
  • Changing a page URL handle (with the checkbox checked)
  • Changing a blog post URL handle (with the checkbox checked)

When automatic redirects are NOT created

  • Deleting a product, collection, or page (no redirect created, just a 404)
  • Changing the URL of a blog itself (not a post within a blog)
  • Changes made via the Shopify API (unless you explicitly create the redirect via the API too)
  • Changing your primary domain (Shopify handles domain-level redirects separately)

If you delete a product, you need to manually create a redirect from the old product URL to an appropriate destination, whether that is a replacement product, the parent collection, or the homepage.

Bulk Import via CSV

For site migrations or large-scale URL changes, adding redirects one at a time is impractical. Shopify supports bulk CSV import.

CSV format

The CSV file needs exactly two columns:

Redirect from,Redirect to
/old-url-1,/new-url-1
/old-url-2,/new-url-2
/old-url-3,/new-url-3

The header row must be Redirect from,Redirect to (case-sensitive in some Shopify versions). Each path must start with /.

Importing the CSV

  1. Go to Online Store > Navigation > URL Redirects
  2. Click Import
  3. Upload your CSV file
  4. Review the preview and click Import redirects

Shopify validates the CSV during import and rejects rows with errors (missing leading slash, duplicate "redirect from" paths, invalid paths).

Tips for bulk imports

  • Test with a small batch first (10-20 redirects) before importing hundreds
  • Shopify does not overwrite existing redirects. If a "redirect from" path already has a redirect, the import skips that row
  • To update an existing redirect, delete it first, then import the new version
  • There is no bulk export from the admin UI. Use the Shopify API or a third-party app if you need to export your current redirects

Limitations

Shopify's redirect system is intentionally simple. Here is what it does not support.

No regex or pattern matching

You cannot create a redirect like /blog/2024/*/ that matches all posts from 2024. Every redirect is a specific path-to-path mapping. If you are restructuring URLs across hundreds of pages, you need to create one redirect per page.

No 302 temporary redirects

All redirects are 301 permanent. If you need a temporary redirect (for a seasonal campaign, A/B test, or maintenance page), Shopify's built-in tools cannot do it. You need a third-party app or a workaround with theme Liquid code.

No wildcard redirects

You cannot redirect /old-section/* to /new-section/*. Each URL needs its own redirect entry. For large sections, this means bulk CSV import.

No query string handling

Shopify redirects match on the path only. Query parameters are ignored in the "redirect from" field. You cannot redirect /search?q=old-term differently from /search?q=new-term.

Redirect count limits

Shopify does not publish an official maximum number of redirects, but stores with tens of thousands of redirects have reported performance issues. For stores with very large redirect lists (from multiple migrations), consider cleaning up old redirects that no longer receive traffic.

No redirect chains

If you create a redirect from A to B, and then later create a redirect from B to C, Shopify does not automatically update the first redirect to point from A to C. You end up with a redirect chain: A goes to B goes to C. Shopify will follow the chain, but it adds latency and is not ideal for SEO.

Periodically audit your redirects and update any chains so that every redirect points directly to the final destination.

Shopify-Specific Gotchas

Redirect paths must match Shopify's URL structure

Shopify uses specific URL prefixes: /products/, /collections/, /pages/, /blogs/, /blogs/[blog-name]/. A redirect from /my-product only works if nothing else in Shopify is already serving content at /my-product. If a live product, collection, or page exists at that path, the redirect is ignored.

Apps can create conflicting routes

Some Shopify apps register their own URL routes. If an app uses /apps/my-app/ and you try to redirect from that path, the app's route takes priority. Check for app route conflicts if a redirect is not working.

Domain redirects are separate

If you added a second domain in Shopify (e.g., you bought new-brand.com and want it to redirect to your primary store.myshopify.com), that is handled in Settings > Domains, not in the URL redirect manager. Shopify automatically 301 redirects secondary domains to your primary domain.

The /admin path

You cannot create a redirect from any path starting with /admin. Shopify reserves this for the admin interface.

Trailing slashes

Shopify generally handles trailing slashes consistently (it adds them). But when creating redirects, make sure your "redirect from" path does not include a trailing slash unless the URL you are redirecting from actually has one. Test both variants.

Third-Party Apps for Advanced Needs

When the built-in redirect manager is not enough, several Shopify apps fill the gaps.

What to look for in a redirect app

  • Regex or wildcard support: For pattern-based redirects
  • 302 support: For temporary redirects
  • Bulk management: Better import/export than the built-in CSV
  • Chain detection: Automatic identification of redirect chains
  • 404 monitoring: Alerts when users hit dead URLs

Popular options include Easy Redirects, Redirect Pro, and TransCy (which handles redirects alongside language routing). Check the Shopify App Store for current reviews and compatibility with your plan.

When a third-party app makes sense

  • You need regex or wildcard redirects
  • You need 302 temporary redirects
  • You are managing more than a few hundred redirects
  • You need redirect analytics (which URLs are being hit, how often)
  • You are doing a large migration and need better tooling than CSV import

When the built-in tool is enough

  • You have fewer than a hundred redirects
  • All redirects are permanent (301)
  • You do not need pattern matching
  • Your URL structure is stable and changes are infrequent

Test after every change

Shopify's redirect manager does not show errors for redirects that conflict with existing pages or app routes. The redirect simply does not work. Always test each redirect after creating it.

Migration to Shopify

If you are migrating from another platform to Shopify, redirects are critical for preserving SEO. For the complete migration checklist, see Site Migration Redirect Checklist.

The basic process

  1. Map old URLs to new URLs: Export your current site's URL list. Map each URL to its Shopify equivalent. Remember that Shopify has fixed URL prefixes (/products/, /collections/, etc.).
  2. Prepare the CSV: Format your redirect map as a Shopify-compatible CSV.
  3. Import redirects before launching: Add all redirects to Shopify before pointing your domain. This way, the redirects are live the moment traffic arrives.
  4. Test thoroughly: After import, test a sample of redirects. Focus on high-traffic pages first.
  5. Monitor after launch: Watch Google Search Console for crawl errors. New 404s mean missing redirects.

Common migration issues

  • Old platform used /blog/post-name but Shopify uses /blogs/news/post-name. The path structure is different.
  • Old platform had clean URLs like /shoes but Shopify requires /collections/shoes or /products/shoes. You need a redirect for each.
  • Query string parameters from the old site (like ?product_id=123) cannot be matched by Shopify redirects. If your old site used query-string URLs, you may need to handle those redirects at the DNS or CDN level before traffic reaches Shopify.

Trace your redirect chains

Verify your Shopify redirects are working correctly with full chain tracing.

Try Redirect Tracer

References

  1. Shopify Help Center, "URL Redirects," https://help.shopify.com/en/manual/online-store/menus-and-links/url-redirect
  2. Shopify API Documentation, "Redirect," https://shopify.dev/docs/api/admin-rest/current/resources/redirect

Never miss a broken redirect

Trace redirect chains and detect issues before they affect your users and SEO. Free instant tracing.

Try Redirect Tracer