Every page on your Shopify store has a URL, and that URL sends signals to search engines. A clean, descriptive URL tells Google what the page is about before it even reads the content. A messy one with random characters or unnecessary parameters adds confusion and dilutes ranking signals.
Shopify gives you some control over URLs through handles, but it also enforces a fixed path structure you cannot change. Understanding what you can and cannot control is the first step to better URL-based SEO.
In this post
- Shopify URL anatomy
- How handles work
- Writing clean URLs
- URL length and SEO
- Variant URLs and the ?variant= parameter
- When separate product URLs help SEO
- Collection URL paths
- Redirects after URL changes
- Common URL mistakes
- Frequently asked questions
- Related reading
Shopify URL anatomy
Shopify URLs follow a predictable pattern. Every resource type gets a fixed path prefix that you cannot remove or customize:
| Resource | URL pattern | Example |
|---|---|---|
| Product | /products/{handle} | /products/classic-hoodie-navy |
| Collection | /collections/{handle} | /collections/hoodies |
| Page | /pages/{handle} | /pages/about-us |
| Blog post | /blogs/{blog-handle}/{post-handle} | /blogs/news/spring-collection |
| Product in collection | /collections/{coll}/products/{handle} | /collections/hoodies/products/classic-hoodie |
You cannot remove the /products/ prefix. You cannot create a product URL like yourstore.com/classic-hoodie. This is a Shopify platform limitation that applies to every store regardless of plan. What you can control is the handle – the part after the prefix.
Use the URL Analyzer tool to check your current URLs for SEO issues like excessive length, missing keywords, or duplicate content patterns.
How handles work
A handle is the URL-safe version of your product, collection, or page title. When you create a product called “Classic Hoodie – Navy Blue,” Shopify auto-generates the handle “classic-hoodie-navy-blue.” All lowercase, spaces become hyphens, special characters are stripped.
You can edit handles manually in the Shopify admin. Go to the product, scroll to the “Search engine listing” section, and click “Edit.” The URL handle field lets you type whatever you want (within Shopify’s character rules). This is where you have control.
A few rules for handles:
- Lowercase letters, numbers, and hyphens only
- No spaces, underscores, or special characters
- Maximum 255 characters (but aim for much shorter)
- Must be unique across each resource type
- If you duplicate a handle, Shopify appends a number (classic-hoodie-1)
Changing a handle changes the URL. The old URL returns a 404 unless you set up a redirect. More on that in the redirects section below.
Writing clean URLs
A clean URL is short, descriptive, and includes your target keyword. Here is what that looks like in practice:
Good: /products/classic-hoodie-navy
Bad: /products/classic-hoodie-navy-blue-unisex-cotton-blend-2024-spring
The good URL is 23 characters. It contains the product name and the key differentiator (navy). The bad URL is 58 characters and stuffs in words that add no SEO value in the URL. Google does not reward longer URLs with more keywords. In fact, shorter URLs tend to rank slightly better in studies.
Best practices for clean handles:
- Include the primary keyword. “leather-wallet-brown” ranks better than “product-12345.”
- Skip filler words. Remove “the,” “and,” “for,” “with” from handles. “classic-hoodie-navy” not “the-classic-hoodie-for-men-in-navy.”
- Use hyphens, not underscores. Google treats hyphens as word separators. “classic-hoodie” is two words to Google. “classic_hoodie” is one word.
- Avoid dates or years. “spring-2024-hoodie” will look outdated next year. “classic-hoodie” is evergreen.
URL length and SEO
Google can handle long URLs, but shorter ones perform better for several reasons. Short URLs are easier to read in search results. They get shared and linked to more often. And they look more trustworthy to shoppers who check the URL before clicking.
Aim for handles under 50 characters. Remember that the full URL includes your domain and the path prefix (/products/), so the total URL might be 70-80 characters even with a short handle. That is fine. Google truncates URLs in search results after about 60-70 characters of the path, so everything beyond that is hidden from searchers anyway.
The URL Analyzer flags handles that exceed recommended lengths and suggests shorter alternatives based on your product title.
Variant URLs and the ?variant= parameter
When a Shopify product has variants, each variant gets a URL parameter: /products/classic-hoodie?variant=12345678. This parameter tells Shopify which variant to pre-select. But it does not create a separate page for Google to index.
Google treats /products/classic-hoodie and /products/classic-hoodie?variant=12345678 as variations of the same URL. The canonical tag points to the base URL. So your navy hoodie variant and your olive hoodie variant share the same indexed page, the same meta title, and the same ranking signals.
This is fine if color is a minor detail. It is a problem if each color variation is a distinct product that deserves its own search presence. A navy hoodie and a tie-dye hoodie attract different searchers. Under the variant model, only one of them can be the meta title.
Use the Separate vs Variants tool to evaluate whether your products would benefit from separate URLs or if variants are sufficient.
When separate product URLs help SEO
Separate product listings give each variation its own URL: /products/classic-hoodie-navy, /products/classic-hoodie-olive, /products/classic-hoodie-burgundy. Each page has unique metadata, unique images, and its own place in Google’s index.
This matters most when:
- Color names have search volume. People search for “navy hoodie” and “olive hoodie” as separate queries. Separate URLs let you target both.
- Product images differ significantly. A navy product photo and an olive product photo attract different clicks in Google Images. Separate URLs give each its own image set.
- Google Shopping optimization. Each product URL can have its own Shopping feed entry with color-specific titles and images. This improves ad relevance and click-through rates.
- AI search discovery. AI assistants can recommend specific colors when each has its own page. “The navy Classic Hoodie from YourStore is $45” is a better AI recommendation than “the Classic Hoodie comes in multiple colors.”
The trade-off is navigation. Separate products need a way to connect to each other on the storefront. That is exactly what combined listings solve – they link separate products with swatches so customers can switch between them naturally. Read the full breakdown in separate products vs variants: the SEO impact.
For stores already using separate products with Rubik Combined Listings, each product in a group keeps its own clean URL. The app stores grouping data in metafields with no external API calls, so the URL structure stays pure. No tracking parameters or app-generated paths get added to your product URLs.
Collection URL paths
Collection URLs follow the pattern /collections/{handle}. When a product is browsed through a collection, Shopify creates an alternate path: /collections/hoodies/products/classic-hoodie. This means the same product has two URLs.
Shopify handles this with canonical tags. The product page at /collections/hoodies/products/classic-hoodie includes a canonical tag pointing to /products/classic-hoodie. Google follows the canonical and consolidates ranking signals to the primary URL. You do not need to do anything extra here. The system works.
However, make sure your internal links point to the canonical URL (/products/classic-hoodie) rather than the collection-scoped URL. Linking to /collections/hoodies/products/classic-hoodie in your blog posts or email campaigns adds an unnecessary redirect hop and splits click-through data. The SEO Checker on CraftShift can scan your pages for internal links that point to non-canonical URLs.
Redirects after URL changes
Changing a product handle changes its URL. The old URL stops working. If that old URL had backlinks, was shared on social media, or ranked in Google, those signals are lost unless you redirect.
Shopify has a built-in redirect system. Go to Online Store > Navigation > URL Redirects and create a redirect from the old path to the new one. Always use 301 redirects (permanent). Shopify defaults to 301, so you do not need to configure this manually.
When to redirect:
- Renaming a product handle. /products/old-name to /products/new-name. Do this every time you change a handle.
- Deleting a product. Redirect to a similar product or the parent collection page. A 404 wastes any SEO value the old page had.
- Merging products. If you are combining two separate products into one, redirect the removed product’s URL to the surviving one.
- Migrating from another platform. Old URLs from WooCommerce, BigCommerce, or Magento need redirects to their Shopify equivalents.
For bulk redirect creation, the Redirect Generator on CraftShift lets you upload a CSV of old-to-new URL mappings and generates the redirect format Shopify needs. This saves significant time during migrations or large-scale handle cleanups.
Common URL mistakes
Keyword stuffing in handles. “mens-cotton-premium-navy-blue-hoodie-pullover-sweatshirt” is not a URL strategy. It is spam. Use the primary keyword and one differentiator.
Changing handles without redirects. This is the number one URL mistake on Shopify. Every handle change needs a redirect. No exceptions. Otherwise you create 404 errors and lose any backlinks or ranking signals the old URL had accumulated.
Using variant parameters for SEO. Some store owners try to get variant URLs indexed by submitting them to Google Search Console. This does not work because the canonical tag overrides the parameter URL. If you need each variation indexed, use separate products with combined listings. See the combined listings without Shopify Plus guide.
Ignoring blog URL structure. Blog posts follow /blogs/{blog-handle}/{post-handle}. The blog handle matters. “/blogs/news/hoodie-care-guide” is less descriptive than “/blogs/style-guide/hoodie-care-tips.” Choose blog handles thoughtfully when creating your blog sections.
Duplicate handles with numbers. If Shopify appends “-1” to a handle, it means you already have a product with that handle. This often happens during imports. Clean these up. “classic-hoodie-1” looks unprofessional and confuses both customers and search engines.
Frequently asked questions
Can I change my Shopify product URL?
Yes. Edit the URL handle in the product’s “Search engine listing” section in Shopify admin. Always create a redirect from the old URL to the new one. Without a redirect, the old URL returns a 404 and you lose any backlinks or ranking signals it had.
Can I remove /products/ from Shopify URLs?
No. Shopify enforces the /products/ prefix on all product URLs. You cannot change this on any plan, including Shopify Plus. The handle after /products/ is the only part you can customize.
Do Shopify variant URLs get indexed by Google?
Typically no. Variant URLs (/products/hoodie?variant=123) have a canonical tag pointing to the base URL (/products/hoodie). Google consolidates these to the canonical URL. If you need each variation indexed separately, use separate product listings connected with combined listings.
How long should a Shopify URL handle be?
Aim for under 50 characters. Include your primary keyword and one differentiator (like the color name). Skip filler words. Shorter URLs perform better in search results and look more trustworthy to shoppers.
How do I set up redirects on Shopify?
Go to Online Store > Navigation > URL Redirects. Enter the old path and the new path. Shopify creates a 301 (permanent) redirect automatically. For bulk redirects, use a CSV import or a tool like the CraftShift Redirect Generator.
When should I use separate product URLs instead of variants?
Use separate product URLs when each variation has different images, targets different search keywords, or needs its own Google Shopping entry. Colors with search volume (like “navy hoodie” vs “olive hoodie”) benefit from separate URLs. Connect them with swatches using a combined listings app.
Does the /collections/x/products/y URL cause duplicate content?
No. Shopify sets a canonical tag on collection-scoped product URLs pointing to the primary /products/ URL. Google follows this canonical and consolidates signals. Just make sure your internal links point to the canonical /products/ URL, not the collection-scoped version.