SmartEcomSEO
Technical SEO

Shopify URL Structure: Can You Change /collections and /products?

Shopify's fixed URL prefixes explained: what you can and can't change, whether /products/ hurts rankings, how to pick handles, and when headless is worth it.

Illustration for “Shopify URL Structure: Can You Change /collections and /products?”
Key takeaways
  • You can't remove or rename /products/, /collections/, /pages/ or /blogs/ on any Shopify plan, including Plus. Only a headless storefront changes them.
  • The fixed prefixes don't hold stores back in Google. Handles, duplicate paths and internal links matter far more than the folder name.
  • Changing a product title doesn't change its handle. Handle changes need the redirect box ticked, and CSV imports match products by handle.
  • /collections/saunas/infrared is a tag page, not a nested collection. Build hierarchy with breadcrumbs and links, not fake folders.
  • In Markets, handles can be translated per language, but the word products can't, and handles can't be customized per market.

Every Shopify migration meeting we've sat in has the same question: can we get rid of /collections/ and /products/? The short answer is no. On Shopify's Online Store, the resource prefixes are fixed on every plan, Shopify Plus included. The longer answer is that it matters much less than people think, and the parts of the URL you do control are where the SEO work is.

We checked the details below against Shopify's documentation and live behavior on Shopify's Dawn demo store in September 2026.

The Shopify URL map#

ResourceURL patternWhat you can edit
Product/products/{handle}Handle
Collection/collections/{handle}Handle
Product inside a collection/collections/{collection}/products/{handle}Nothing; canonicalizes to /products/{handle}
Collection tag page/collections/{handle}/{tag}The tag
Vendor and type pages/collections/vendors?q=..., /collections/types?q=...Nothing
Page/pages/{handle}Handle
Metaobject page/pages/{type}/{handle}Both parts
Blog and article/blogs/{blog}/{article}Both handles
Blog tag page/blogs/{blog}/tagged/{tag}The tag
Policies/policies/refund-policy and similarNothing
Search/search?q=...Nothing
Market subfolder/{locale}/products/{handle}, e.g. /en-ca/Translated handles per language
App proxy/apps/..., /a/..., /community/..., /tools/...Set by the app

/products, /collections and /collections/all are protected paths: Shopify's help center lists them among URLs that can't be redirected.

Does /products/ or /collections/ hurt rankings?#

We haven't seen evidence that it does, and there's a practical argument against the worry. Many of the largest Shopify stores rank for competitive category terms with /collections/ in every category URL. Google's own guidance on URL structure asks for simple, descriptive, readable URLs, and a Shopify URL like /collections/infrared-saunas is exactly that.

What does hurt on Shopify:

  • Bad handles. /products/copy-of-new-sauna-2 or a 40-word Amazon title as a handle.
  • Duplicate paths. Themes that link to /collections/x/products/y instead of /products/y.
  • Fake hierarchy. Tag pages used as sub-categories.
  • No internal structure. A flat catalog with no breadcrumbs or collection-to-collection links.

All four are fixable without leaving Shopify.

What you control: handles#

A handle is the last part of the URL. Shopify's rules for generating one are documented: handles are always lowercase, spaces and special characters become a single hyphen, leading special characters are removed, and a duplicate title gets a number suffix (potion then potion-1).

The documentation also says: "After a resource has been created, changing the resource title doesn't update the handle." That one sentence explains most of the messy handles we find on audits. Products get renamed, collections get repurposed, and the handle keeps the old name.

Handle rules we use on large catalogs#

DoDon't
/collections/infrared-saunas/collections/infrared-saunas-for-sale-best-price
/products/barrel-sauna-4-person-thermowood/products/kl-2033-b (internal model code only)
Keep the buyer keyword, drop filler wordsStuff every keyword variant into the handle
Keep handles stable once they rankRename handles every season
Fix -1, -copy and copy-of- handlesLeave duplicates from imports and theme tests

For Chinese brands moving from Amazon, the common problem is handles generated from marketplace titles: long, keyword-stuffed, and sometimes with the brand name repeated three times. Shorten them before launch. After launch, change only the ones that are clearly hurting, and always with a redirect.

Changing handles safely#

  1. In the admin, edit the handle under the SEO section and keep "Create a URL redirect" ticked.
  2. With CSV imports, be careful. Shopify's product CSV uses the handle to match existing products. Change the handle in the file and you usually get a new product, not a renamed one.
  3. With apps or the API, confirm the tool creates redirects. Many bulk editors can, but it's often an option you have to switch on.
  4. Then update internal links. Menus, rich-text descriptions and blog posts that point to the old handle should point to the new one, so you're not relying on redirects forever.

Big renames belong in a redirect plan, covered in Shopify redirects at scale.

A 30-minute handle audit#

You don't need a crawler for a first pass. Export products and collections from the admin and look at the handle column in a spreadsheet:

  1. Sort by length. Handles over roughly 60 characters are usually marketplace titles or keyword lists. Flag them.
  2. Search for -1, -2, copy and test. These come from duplicated products, imports and theme experiments.
  3. Look for codes without words. /products/kl-2033-b tells neither shoppers nor Google what the product is. Add the product type and one key attribute.
  4. Compare collection handles with your keyword list. If your biggest buyer keyword is "outdoor saunas" and the collection handle is /collections/range-b, that's worth a change and a redirect.
  5. Check Search Console before changing anything. A handle that already earns clicks should stay unless the gain is clear.

Fix the worst offenders first and leave the rest. A redirect is safe, but every change still asks Google to recrawl and reassign signals, and on a large catalog that takes weeks.

"Remove /collections/ from product URLs": the fix that does exist#

When people ask to remove /collections/ from product URLs, they usually mean the product links in collection grids look like /collections/saunas/products/barrel-sauna. That one you can fix. It comes from the within filter in older themes:

liquidliquid
{%- comment -%} Old pattern: creates collection-path product links {%- endcomment -%}
<a href="{{ product.url | within: collection }}">{{ product.title }}</a>

{%- comment -%} Fix: link to the canonical product URL {%- endcomment -%}
<a href="{{ product.url }}">{{ product.title }}</a>

Search your theme code for within, replace each instance, and check breadcrumbs that relied on the collection in the URL. The full walk-through, including a breadcrumb fallback, is in Shopify duplicate content, explained.

Hierarchy without folders#

Shopify collections can't nest in the URL. There's no /collections/saunas/infrared-saunas. And the URL that looks like it, /collections/saunas/infrared, is a legacy tag-filter page: the parent collection's copy with fewer products, self-canonical, indexable by default, and impossible to redirect.

Build hierarchy with signals Google does read:

  • Breadcrumbs on collections and products, with BreadcrumbList markup.
  • "Shop by" links from the parent collection to its sub-collections, as plain <a href> links.
  • Consistent naming. /collections/saunas, /collections/infrared-saunas, /collections/outdoor-saunas, /collections/barrel-saunas.
  • Navigation menus that mirror the structure.

A simple breadcrumb that uses a primary-collection metafield (more reliable than whatever collection happens to be first):

liquidliquid
{%- liquid
  assign crumb = product.metafields.custom.primary_collection.value
  if crumb == blank
    assign crumb = product.collections.first
  endif
-%}
<nav aria-label="Breadcrumb">
  <a href="{{ routes.root_url }}">Home</a>
  {%- if crumb %} / <a href="{{ crumb.url }}">{{ crumb.title }}</a>{% endif %}
  / <span>{{ product.title }}</span>
</nav>

This assumes a collection-reference metafield named custom.primary_collection. Create it under Settings > Custom data > Products first. How we plan the collections themselves is in the collection page SEO guide.

Blog URLs#

The default blog handle is news, giving /blogs/news/article-handle. Many stores rename it to guides or journal. Do that before you publish, not after. Changing a blog handle changes the URL of every article in it, so if you must do it later, check that a redirect exists for every article URL rather than assuming.

For high-ticket brands, we usually run buying guides in a dedicated blog (/blogs/guides/) and keep company news separate. It keeps the guides sitemap clean and makes internal linking from collections easier to manage.

Market subfolders and translated handles#

With Shopify Markets on subfolders, a product lives at /products/barrel-sauna and /en-ca/products/barrel-sauna, and Shopify adds hreflang for the set. You can translate handles, with limits Shopify documents:

  • Translated handles are optional and added manually through Translate & Adapt, a compatible app or CSV. Automatic translation doesn't include them.
  • /en-ca/products/shoes can become /es-mx/products/zapatos, but "the word products can't be translated".
  • Handles can't be customized per market, only per language.
  • When a translated handle is created, Shopify redirects from the default-language URL to the translated one.

For European markets, translated handles are worth it on your top collections at minimum. See our international SEO service for how we roll them out.

When headless changes the URL structure#

A headless storefront (Hydrogen or another framework using the Storefront API) lets you define any route, including /saunas/infrared/. It also moves the sitemap, canonicals, robots.txt, redirects, structured data and rendering onto your team. We only recommend headless for business reasons: a complex content experience, a multi-brand setup, or performance targets the theme can't meet. URL aesthetics alone don't justify it.

SituationOur recommendation
Migrating from Magento or WooCommerce with category-path URLsStay on Online Store; map every old URL to the new handle
"We want /saunas/ instead of /collections/saunas/"Not worth a headless build
Large content site with custom routing needsHeadless can make sense; budget for rebuilding the SEO basics
Tag pages used as sub-categoriesReplace with real collections and links

Mapping other platforms' URLs to Shopify#

When you migrate, every old pattern needs a destination. These are the mappings we plan for most often:

Old platformTypical old URLShopify destinationWatch out for
Magento/sofas/leather-sofa.html/products/leather-sofaThe same product under several category paths
Magento/sofas/sectionals.html/collections/sectional-sofasLayered-navigation parameters that had rankings
WooCommerce/product/leather-sofa//products/leather-sofaTrailing slashes and /product-category/ paths
WooCommerce/product-category/sofas/sectionals//collections/sectional-sofasNested categories flattening into one level
BigCommerce/leather-sofa//products/leather-sofaProducts and categories sharing the root path
Amazon-first brandNo store URLs yetNew handles from buyer keywordsHandles copied from marketplace titles

Two rules make this manageable. Keep the old slug as the new handle wherever it was already clean, which makes the redirect map easy to check. And map every old category to the closest real collection, never to the home page. Where an old sub-category has no equivalent, that's usually a sign you need a new collection, not a redirect to the parent.

If you're moving platforms, the URL mapping is the part that decides whether traffic survives. Our Shopify migration SEO service handles the full process. Our migration SEO checklist covers it step by step.

The bottom line#

You can't change the folders, and you don't need to. Choose short handles that match what buyers search, stop linking to duplicate paths, replace tag pages with real collections and build hierarchy with breadcrumbs and links. That's the part of URL structure that moves rankings, and it's part of every Shopify technical SEO engagement we run. For the wider picture, start with the Shopify technical SEO guide.

People also ask

Questions people ask about this

Can I remove /collections/ or /products/ from Shopify URLs?

Not on Shopify's Online Store, on any plan including Shopify Plus. The prefixes /products/, /collections/, /pages/ and /blogs/ are fixed. You can edit the handle after the prefix. The only way to use a different structure is a headless storefront such as Hydrogen, which moves the SEO basics, from sitemaps to redirects, onto your own team.

Does the /products/ prefix hurt Shopify SEO?

We haven't seen evidence that it does. Large Shopify stores rank for competitive terms with /collections/ and /products/ in their URLs, and Google asks for simple, descriptive URLs, which Shopify URLs are. Bad handles, duplicate collection-path links, tag pages used as categories and weak internal linking cause far more problems than the prefix.

Does changing a product title change its URL on Shopify?

No. Shopify's documentation says that after a resource is created, changing its title doesn't update the handle. To change the URL, edit the handle in the product's SEO section and keep Create a URL redirect ticked so the old URL 301-redirects to the new one. Then update internal links that still point to the old handle.

Can Shopify collections be nested in the URL?

No. Every collection lives at /collections/{handle}. A URL like /collections/saunas/infrared is a tag-filter page, not a sub-collection, and it's indexable by default with the parent's copy. Create a separate collection such as /collections/infrared-saunas and show the hierarchy with breadcrumbs, BreadcrumbList markup and links from the parent collection.

Can I translate Shopify URLs for other languages?

Yes, the handle part. With Markets and Translate & Adapt (or a compatible app or CSV), you add translated handles per language manually; automatic translation doesn't include them. The word products and the other prefixes can't be translated, and handles can't be customized per market, only per language.

Next step

Want this done on your store?

Fixes for the crawl, index and schema problems Shopify creates on its own: duplicate product paths, tag pages, filter URLs, app bloat and Markets hreflang.

Talk to Zack directlyUsually replies within 24 hours
WeChatSearch this ID in WeChat
WhatsApp +86 186 8214 2136