Shopify redirect guides / Troubleshooting

Why Is My Shopify Redirect Not Working?

Diagnose Shopify redirects that do not fire, check live source pages and theme embeds, and test native 301 redirects separately from browser redirects.

By Taimanle Updated

A saved redirect rule and a working storefront redirect are two different things. Start by checking what the old URL serves, then check which system is meant to redirect it. That separates a native Shopify limitation from a theme setup issue.

1. Check whether the old page still exists

Shopify’s native URL redirects apply to broken source URLs. A source that still serves a valid page will not trigger the native redirect. Some reserved paths, including /cart and /products, are also excluded. See Shopify’s redirect considerations.

For example, suppose you want to move visitors from /products/linen-shirt-old to /products/linen-shirt. Open the old URL directly on your published storefront. If it still displays the old product, adding a native rule is not enough. Decide whether that product should remain available before changing its publication or URL.

If you need to keep the source page live, TML URL Redirect can handle supported storefront paths through its theme app embed. That browser redirect needs the embed to run; it does not turn the source page’s HTTP response into a server-side 301.

2. Verify the exact source and destination

Copy the failing URL from the address bar into your notes. Keep the domain, path, query string, and language or market subfolder visible while investigating. Then open the intended destination on its own.

Check these details before editing a rule:

  • Is the source the old product path, or a collection-specific product link?
  • Did someone paste a preview URL instead of the published storefront URL?
  • Does the destination show the right product, collection, or page?
  • Is another rule already using the same source?
  • Does the destination redirect back to the source or lead through another rule?

Use one clear final destination for each source. For example, replace /old-shirt → /summer-shirt → /products/linen-shirt with /old-shirt → /products/linen-shirt when the last URL is the intended destination. Keep a copy of the original rules before editing them.

Shopify notes that query-string URLs can behave unexpectedly. Test the exact URL your customers use, including any language subfolder, rather than assuming a base-path test covers every variant. Shopify’s limitations and troubleshooting describe the platform cases to check.

3. Check the active theme when using TML URL Redirect

If your rule relies on browser handling, confirm the TML URL Redirect app embed is enabled on the theme customers actually visit. Enabling it on a draft theme does not verify the published theme. Repeat this check after publishing a replacement theme.

Follow the setup tutorial, then review the rule’s sync status in the app. A rule that is skipped or fails to synchronize should not be treated as an active native redirect. Read the reason shown and test the storefront behavior separately.

For an approved external destination, also check the destination-domain settings in the app. If you are unsure which rule type is responsible, record the rule and status before changing settings so support can trace the original problem.

4. Test a native 301 separately from a browser redirect

Test the HTTP response

In Chrome, open Developer Tools, choose Network, enable Disable cache, and navigate directly to the old URL. Inspect the initial document request. A native permanent redirect should return a redirect status such as 301 and a Location response header pointing to the destination.

If you use a terminal, replace this example with your own storefront URL:

curl -sS -D - -o /dev/null https://your-store.example/old-shirt

This prints the first response’s headers without following the redirect. A subsequent request to the destination should load the intended page successfully. Domain normalization can introduce another redirect first, so inspect each hop if needed.

Test browser behavior

Open the old URL in a fresh browser session and watch the address bar and Network log. A theme-script redirect can navigate after the page loads, while the initial document response remains 200 or 404. curl does not execute that script.

Use an HTTP permanent redirect for a permanent page move where the platform allows it. Google’s redirect guidance explains why JavaScript redirects are a fallback when server-side options are unavailable.

5. Retest and collect a useful support report

Browsers can cache permanent redirects. Retest in a fresh session or another browser after changing a destination, and keep Developer Tools open with caching disabled while checking responses.

Before sending a support request, collect:

  • Your storefront domain and the exact failing source URL.
  • The destination you expected and the destination you observed.
  • Whether the old page still loads and which theme is published.
  • The rule’s sync status and any warning shown in the app.
  • The time of your test and the initial HTTP response, if available.

Send these details through TML support. This makes the next step specific: correct a path, resolve a rule conflict, enable the embed, or use a redirect method suited to that source.

For bulk changes, continue with the Shopify redirect CSV guide. For a full store move, use the migration redirect checklist.