Shopify URL Redirects
A Better Help Doc
Written and maintained for the brands and agencies who are conducting a site migration. Especially if you are a small team who needs to make every hour count. This guide helps you build a strategy to accurately complete 301 redirects if you’re migrating to Shopify. Specifically, this document can help you if you’re:
- Migrating from Wordpress
- Migrating from Magento
- Migrating from Salesforce
- Migrating from Sitecore
- Migration from BigCommerce
- Migrating from Webflow
- Migrating from a homegrown PHP site
If you’re undertaking a project that includes complex 301 redirect mappings and need a team who lives and breaths this specific type of work, chat with us.
Shopify’s URL Redirect Logic: Overview
The official Shopify Help Doc for URL redirects is found here. It’s a streamlined document with general guidelines a Shopify store manager can reference to add individual and bulk 301 redirects. It lacks specifics on the types of URLs a Shopify store can support natively, but this report is intended fo fills the gaps.
Summarized Findings of Shopify’s URL Redirect Functionality
- Shopify’s URL redirect logic is very robust.
- From our test of 100 different URL string formats, Shopify functionally supported 99 out of 100 of the types.
- The native system does not support wildcards for URL redirects.
- Updating existing URL redirect paths was easy with the import tool, as long as you follow Shopify’s undocumented rules
- Limits exist with total number of redirects Shopify & ShopifyPlus stores will manage.
- Limits exist with the total number of characters for a URL redirect string.
- You cannot create 301 redirect chains, thankfully.
- Many exceptions and rules exist for URLs with parameters.
- The interface for URL redirect management is user-friendly, but can benefit from more details.
- Tests did not examine redirect options available for Hydrogen and Oxygen.
- We give Shopify’s current URL redirect system a helpfulness score of 85%.
The rating was lowered by 5% for no wildcard support, by 1% for the single URL string type it did not support, by 2% for URL character-length limits, by 3% for the odd behavior with parameterized URLs, and by 4% for essential information management details missing from the redirect UX.
Testing was conducted on June 19, 2024.
Our Redirect Testing Methodology
We wanted to answer a few questions with our tests, to help avoid pitfalls with Shopify’s 301 redirect rules:
- What characters or string combinations does the URL redirect system not support?
- Are there any limits with URL string length?
- Is there a maximum number of records for bulk imports?
- Does the system support wildcard redirects?
- Is there any auto-formatting or conversion of strings after import that changes the original data?
For reference, here is our full list of URLs we used to test these different conditions. Tests were conducted on a Shopify standard plan (not ShopifyPlus).
11 Findings to Help with Shopify Redirects
Shopify Does Not Play Nice With These URL String Types
The list of URL string formats that Shopify could not support is short, with only one type of string it could not ingest. Strings with a semicolon character after the equals operator, such as:
/page?param=;semicolon
What’s noteworthy with this string is that Shopify’s system will convert the semicolon special character into the URL encoded value as follows in the redirect table:
/page?param=%3Bsemicolon
When you enter the unencoded URL string into the address bar of a browser, it will return a 404 error.
This syntax causes a 404 error on Shopify’s servers. An unencoded semicolon after the equals operator:
🔴
/page?param=;semicolon
Whereas this correctly redirects on Shopify’s servers. An encoded semicolon after the equals operator:
🟢
/page?param=%3Bsemicolon
This functionality deviates from other special character handling. If a URL string with unencoded characters is entered in the address bar, such as the right brace character:
/page?param=}
Shopify will automatically encode it when the URL request is received and no 404 error will occur.
/page%7Drightbrace
Additionally noteworthy, other variations of a URL string with an unencoded semicolon validate in Shopify’s redirect system such as:
Correctly redirects on Shopify’s servers. Unencoded semicolon character in the string, no equals operator.
🟢
/page;semicolon
The data suggests that the 404 error is only triggered when an unencoded semicolon occurs after the equals operator.
No Support for Wildcard Redirects from Shopify
Wildcard redirects are still on the wish list of many Shopify users. Their support forums are inundated with requests for this feature. To date Shopify has remained silent on where this would fall on the product roadmap.
For the time being, website owners planning a move to Shopify should understand that native Shopify & ShopifyPlus do not offer this option.
What are wildcard redirects?
Wildcard redirects are a type of URL redirection that allows you to redirect multiple URLs that match a specific pattern to a single destination. This is particularly useful when migrating a website, reorganizing content, or managing large numbers of similar URLs. Instead of setting up individual redirects for each URL, you use a wildcard character (usually *) to represent any sequence of characters.
Suppose you are restructuring your blog and moving all posts from the /blog/ directory to /articles/. Instead of setting up individual redirects for each blog post, you can use a wildcard redirect:
From: /blog/*
To: /articles/*
This wildcard redirect will automatically map:
/blog/post1 to /articles/post1
/blog/post2 to /articles/post2
/blog/post3 to /articles/post3
This simplifies the redirection process and ensures all URLs under /blog/ are seamlessly redirected to their new location under /articles/. As of the date of this article, Shopify and ShopifyPlus default stores do not include this capability without app support.
Shopify Does Its Best to Avoid Creating Redirect Chains
There is a nice safeguard in the Shopify redirect table that prevents you from creating redirecting chains. If you try to create a redirect to a page that is already a value in the “Redirect from” field, you will get an error.
In this test the URL records we tried to create were as follows, which was not allowed:
🔴
/BOTH redirects to /SHORT
/SHORT redirects to /homepage
What are Redirect Chains?
Redirect chains occur when a URL is redirected to another URL, which in turn redirects to yet another URL, creating a sequence or “chain” of redirects. This can happen unintentionally when multiple redirects are set up over time without proper management.
Redirect chains are problematic because they can slow down page load times, negatively impact SEO, and create a poor user experience. Each additional redirect adds latency as the browser must follow each step in the chain before reaching the final destination.
For example, if you have the following redirects set up:
/old-page redirects to /new-page
/new-page redirects to /latest-page
When a user visits /old-page, they are first redirected to /new-page, and then immediately redirected again to /latest-page, resulting in a redirect chain.
New Rules to Follow When Setting up Redirects on Shopify
Our biggest discovery in our tests is that Shopify’s documentation is out of date. According to Shopify, if you’re trying to redirect anything that starts with these reserved prefixes, your redirect rules will not be created:
/apps
/application
/cart
/carts
/orders
/services
/products
/collections
/collections/all
We found that not to be true.
These “Redirect from” values WILL BE allowed and will work correctly, even though the documentation says they should not:
🟢
/apps
/application
/carts
/orders
/services
*Cart was the exception. It is reserved, but not when you add subdirectories after it, such as:*
/cart/people
These “Redirect from” values will be created in the table, but not followed:
🔴
/cart
/products
/collections
/collections/all
If reserved prefixes are followed by subdirectories, Shopify will allow and follow them, for example:
🟢
/cart/people
/carts/people
/products/people
/collections/people
Our test data revealed that only these URL prefixes will be ignored completely if entered on their own:
🔴
/cart
/products
/collections
/collections/all
Creating and Updating URL Redirects is Easy on Shopify
The creation of a new redirect is simple on Shopify. They give users two options:
- Individual URL redirect creation, one at a time
- Bulk redirect creation, through a CSV file - here’s the latest template for that import.
When adding URLs to Shopify’s system, users can input relative URL paths, no top level domain, for the origin (from) and absolute or relative URL paths in the destination (to). Example:
/example_product.php
Creating Individual URL Redirects
The redirect rules Shopify has in place will not allow you to create the same URL redirect twice when using the individual redirect interface.
Once a URL is in the ‘Redirect from’ table listing, if you try to add it again you will get an error.
If you want to update the individual URL record, you need to find it in the redirect table, or use the bulk import method. If a URL that already exists is included in a bulk import file, the record’s ‘Redirect to’ field will be updated with the value from the CSV file.
Our advice is to always import redirects in manageable, efficient batches. For example, if you have 10,000 URL redirects, import 1,000 at a time and check them if you have the time. It’s better to catch errors in smaller datasets than hunting them down in bigger ones.
Be Thoughtful with Bulk URL Redirects in Shopify
To create bulk redirects, populate the CSV file with the headers Shopify requires, create the 1:1 mappings, make sure all URLs are formatted as relative paths. If you create a file with absolute paths in either the the ‘Redirect from’ or ‘Redirect to’ fields, Shopify will take matters into their own hands. Here’s a few scenarios:
Shopify will remove what it identifies as ‘http-protocol+top-level-domain’ and create the preferred relative path:
🔴
https://www.wislr.com/path/to/resource%20with
🟢
/path/to/resource%20with
URL path has no HTTP protocol, but includes a Top Level Domain or Subdomain.
Shopify will add a ‘/’ as a prefix to the URL redirect record to create the preferred relative path:
🔴
www.wislr.com/unicode/test?value=%E2%9C%93%20
co.wislr.com/mix/of%20encoded
🟢
/www.wislr.com/unicode/test?value=%E2%9C%93%20
/co.wislr.com/mix/of%20encoded
URL path has no HTTP protocol or subdomain, but includes a Top Level Domain
Shopify will add a ‘/’ as a prefix to the URL redirect record to create the preferred relative path:
🔴
wislr.com/nested/directory/structure?param1=value1
🟢
/wislr.com/nested/directory/structure?param1=value1
The takeaway is to double-check your import file before you use it. Otherwise you will create URL redirect rules that don’t operate in the manner you need them to.
If a redirect record already exists in the table and the same values is included in the import file, Shopify will update the record with the most current data from the import file. This is extremely helpful in our opinion, so long as you want that record to update. All the more reason to double-check the data.
Our advice is to always import redirects in manageable, efficient batches. For example, if you have 10,000 URL redirects, import 1,000 at a time and check them if you have the time. It’s better to catch errors in smaller datasets than hunting them down in bigger ones.
Shopify’s Limit on URL Redirect Records
All good things have their limit, and Shopify’s redirect rules are no different. There’s two thresholds for URL redirects.
Shopify Plans (not Plus):
Maximum 100,000 URL redirects
ShopifyPlus Plans:
Maximum 20,000,000 redirects
We have not tested these limits, that would be wild! These are the current documented specifications for the platform. Please keep them in mind as you plan your redirects and prioritize the top URLs for traffic and revenue. To the best of our knowledge Shopify does not increase these limits, despite constant pleading from the support forums.
Shopify’s Limit on Characters in URLs
This is where things get spicy with Shopify’s redirect system. Official guidelines from Shopify do not specify strict character limits.
To validate the limits of URL characters for a redirect we first built and tried to import very long strings. We started with a 2,000 character-long URL, since browsers can handle URI requests up to 2,083 characters in length. Here’s the darling in all her beauty:
/2000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBcccccccccccccccccccccccccccccccccccccccccccccccccccDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Our initial method was to import a 2,000 character URL using the bulk redirect template and that’s when Shopify’s alarms were triggered. The threshold we officially discovered was a 1,024 character limit for URL redirect strings, inclusive of the forward slash prefix ‘/’.
🟢 / 300 char length URL: Passed
🟢 / 600 char length URL: Passed
🟢 / 1,000 char length URL: Passed
🔴 / 2,000 char length URL: Failed
Some Important and Undocumented Redirect Rules to Understand About Shopify
Shopify will normalize alphabetical characters in your URL strings. This means, weather you put in a capital or lowercase letter, it will serve URL request for those different patterns in the same way. The following URLs will all go to the same page, even if individual records exist:
/CASE/TEST.html
/case/test.html
/Case/Test.html
The lowercase string with take priority over the others:
/case/test.html
In our tests, even though there are two unique records for “Redirect from” with different values for “Redirect to”, the /about.html page will always be served for both records:
#1
/Case/Test.html [redirect to] /homepage
#2
/case/test.html [redirect to] /about.html
It’s intriguing and potentially vexing that Shopify will allow you to enter all of these unique values in the redirect table and only serve one of them. We advise you review your data carefully if you feel your URL taxonomy could fall into these patterns before importing into Shopify.
You Can Use Absolute URL Paths for Shopify Redirects
Absolute URL paths for your redirects are okay our test found, if they are in the “Redirects to” field. They can be to any URL you desire. Here is one example where a URL path will redirect to a LinkedIn profile when requested:
[Redirect from]
/Case/Test.html
[Redirect to]
https://www.linkedin.com/wislr
Also, in the “Redirect to” field Shopify does not remove top level domains, even if it’s for your own Shopify store.
Parameterized URLs
It our tests Shopify preserved URLs with parameterized URLs, with some exceptions. If you have URLs that have been indexed with many unique parameterized URL strings, then those unique strings can be added to Shopify’s redirects tables and go to unique destinations. We did this test with a common taxonomy for these type of URLs, UTM parameters. For example:
This URL string is in the redirect table’s “Redirect from” field and went to it’s intended destination:
/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google&utm_term=redirects
We modified the URL string and removed the last parameter ‘&utm_term=redirects’, which created a 404:
/how-is-pkl?utm_campaign=301s+in+2024&utm_content=blue&utm_id=3012024&utm_medium=display&utm_source=google
This behavior was reproduced in other tests with different parameters as values, which confirmed that Shopify treats parameterized URLs has literal strings. They do not concatenate the URL down to the base URL if you remove a parameter from a redirect URL, so long as the URL does not exist on the Shopify site.
To further confirm this we pointed a URL to itself, which by default Shopify does not allow. You would get this message:
This entry is allowed when the parameters are in the “Redirect from” field. It does not constitute a redirect loop, but based on behavior in the browser, our test showed that Shopify ignores this record. When the “Redirect from” URL is requested, Shopify serves the full parameterized URL string, not the root page as expected in the table:
This entry is allowed but Shopify will not append the parameters to the page that loads, as the rule expects. They will only load the root URL. Parameters are never added to the URL that loads:
Our final observation about URLs with parameters is that Shopify will rewrite the data you give it in some cases. Yes, Shopify will rewrite the URL data you give it for some parameters.
Here are examples where our tests found this pattern.
Original redirect data ingested by Shopify:
/test?name=John&Doe
Shopify rewrote the strong to have ‘Doe’ be the first parameter attribute in the string:
/test?Doe&name=John
Original redirect data ingested by Shopify:
/user?name=John&age=30&active=true
Shopify rewrote the string to have a new order for the parameters listed:
/user?active=true&age=30&name=John
The tests we ran suggests that Shopify is trying to put the parameters in alphabetical order. We wondered if this was a bug since we have determined that Shopify treats parametrized URLs as literal strings, so why undermine that rule by rewriting the parameter order. Currently, you will never get URL strings with multiple parameter values to retain their structure. This could have big implications for some Content Management Systems.
Update to Shopify’s URL Redirect UX is Needed
During our extensive use of Shopify’s redirect tool, we found ourselves appreciating some elements and missing others.
We appreciate these features:
- Bulk redirect import buttons and functionality
- Filtering and fast search for URL taxonomy
- Export of URLs
- Ease to create a single URL
We found the tool lacks these data points and functionality:
- Total count of URLs imported
- Easier way to copy and paste more than one URL into the system. If you add more than one URL at a time, you have to use the import document. One use case where copy / paste would be helpful is if a set of URLs were all intended to point to the same destination.
In Conclusion
The system Shopify has for managing 301 redirects is good for most businesses, but is not yet Enterprise level. With time we hope they evolve to include wildcard redirects and more redirect records for their standard and plus plans. The ability to use their redirect system and the various types of URL formats it supports leaves us rating them with a strong helpfulness score.
If you’re undertaking a project that includes complex 301 redirect mappings and need a team who lives and breaths this specific type of work, chat with us.
Frequently Asked Questions
Who is WISLR’s Shopify URL Redirects knowledge-base intended to help?
Our knowledge base primarily assists brands and agencies conducting site migrations to Shopify. It’s especially valuable for small teams who need to make every hour count, helping clients match and complete up to 100,000 URL redirects efficiently.
Does Shopify have an official support document for URL redirects?
Yes, Shopify maintains an official help document for URL redirects at help.shopify.com. While it provides general guidelines for adding individual and bulk 301 redirects, our guide supplements it with detailed specifications about URL types and platform limitations.
What are the URL strings Shopify does not support?
Shopify only has one unsupported URL string format: strings with an unencoded semicolon character after the equals operator (e.g., /page?param=;semicolon
). All other URL formats, including encoded semicolons and semicolons in other positions, are supported.
Does Shopify support redirects using wildcards or regex?
No, Shopify does not currently support wildcard redirects or regex patterns in their native redirect system. This limitation exists for both standard Shopify and Shopify Plus stores.
What are wildcard redirects?
Wildcard redirects allow you to redirect multiple URLs matching a specific pattern to a single destination. For example, redirecting all URLs under /blog/*
to /articles/*
. While this feature is commonly requested, it’s not currently available in Shopify’s native functionality.
Can Shopify avoid creating redirect chains?
Yes, Shopify has built-in safeguards to prevent redirect chains. The system will not allow you to create a redirect to a URL that is already being redirected elsewhere.
What are redirect chains?
Redirect chains occur when URLs redirect through multiple steps before reaching the final destination (e.g., A→B→C). These chains can slow down page loads and impact SEO performance. Shopify’s system helps prevent these by design.
Is it easy to create and update URL redirects on Shopify?
Yes, Shopify provides two straightforward methods: individual URL redirect creation through their interface and bulk import via CSV file. Both methods support relative and absolute URL paths.
How do you create bulk URL redirects in Shopify?
Bulk redirects can be created using Shopify’s CSV import tool. We recommend importing in batches of 1,000 for easier error checking and management. A template for the import is available here.
Does Shopify have a maximum limit on URL redirection records?
Yes. Standard Shopify plans are limited to 100,000 URL redirects, while Shopify Plus stores can handle up to 20,000,000 redirects. These limits are fixed and cannot be increased.
Does Shopify have redirect character count limits?
Yes, Shopify enforces a 1,024 character limit for URL redirect strings, including the forward slash prefix (’/’). URLs exceeding this length will not be accepted by the system.
Is there a tool to validate URLs for Shopify compatibility?
While Shopify doesn’t provide an official validation tool, our comprehensive testing has shown that 99% of standard URL formats are supported. The main consideration is the 1,024 character limit and avoiding unencoded semicolons after equals operators.