Why Shopify Default URL Structure Hurts Founders
Shopify's default URLs tank rankings. Learn why /products/ and /collections/ hurt SEO, how to override them, and the exact steps to fix your store.
The Problem With Shopify's Default URL Structure
You shipped a Shopify store. You have products. You have traffic. But Google isn't ranking you.
There's a reason. Shopify's default URL structure is optimized for platform simplicity, not search visibility. When you launch a Shopify store, every product gets a URL like /products/your-product-name. Every collection gets /collections/category-name. Every blog post gets /blogs/your-blog/post-name.
This sounds fine. It's not.
These hardcoded prefixes create structural friction that hurts rankings in three specific ways:
First, they waste keyword real estate. Your URL slug should scream relevance to Google. Instead, you're burning characters on /products/ before you even get to your actual product name. If you're selling "organic matcha green tea," your URL is /products/organic-matcha-green-tea. Google sees the prefix as noise. A competitor with yoursite.com/organic-matcha-green-tea has a structural advantage.
Second, they create unintentional duplicate content at scale. Shopify lets products appear in multiple collections. That same matcha product shows up in "Teas," "Green Products," and "Wellness." Each collection generates a separate URL to the same product. Without aggressive canonical tag management, you've created multiple indexable versions of the same page—a canonical mess that fragments your ranking power across URLs instead of consolidating it.
Third, they make category pages weak. Collection pages are where you build topical authority. But Shopify's default /collections/ structure doesn't let you nest categories hierarchically. You can't create /teas/green-teas/ or /wellness/supplements/. Everything flattens to one level. That kills your ability to build topical clusters that Google rewards.
The brutal truth: Shopify's defaults are designed to work for Shopify. Not for you.
Why Shopify Uses These Defaults
Understanding the "why" helps you understand the fix.
Shopify is a multi-tenant platform serving millions of stores. They need a URL structure that's:
- Predictable across all stores (so their infrastructure scales)
- Collision-proof (no two stores accidentally share a URL pattern)
- Backward-compatible (changing it would break millions of existing stores)
- Simple to manage (fewer configuration options = fewer support tickets)
So they locked the prefixes. /products/, /collections/, /blogs/ are hardcoded. You can customize the slug (the part after the prefix), but not the prefix itself.
This is a platform constraint, not a bug. But it's a constraint that costs you rankings.
According to Shopify's official SEO guidance, short, descriptive URLs are better. But Shopify's own defaults don't follow this advice. The platform acknowledges the issue exists—it just doesn't solve it for you.
The Ranking Impact: What Actually Happens
Let's get specific about what this costs you.
When Google crawls your Shopify store, it sees:
- Product pages at
/products/[handle](all products share the same prefix) - Collection pages at
/collections/[handle](all categories share the same prefix) - Blog posts at
/blogs/[blog-handle]/[article-handle](fixed blog path)
Google's algorithm doesn't penalize you explicitly for using prefixes. But prefixes do three things that hurt you implicitly:
1. They reduce keyword density in the URL itself. URLs are a ranking signal. A 50-character URL with 10 characters wasted on /products/ is 20% less efficient at signaling relevance. Multiply that across 500 product pages, and you've handicapped your entire catalog.
2. They make topical clustering impossible. If you sell both yoga mats and yoga blocks, you want to nest them under /yoga/ to build authority on "yoga" as a topic. Shopify's flat structure forces /products/yoga-mat and /products/yoga-block. Google sees two isolated product pages, not a yoga authority cluster.
3. They create crawl budget waste. When the same product appears in five collections, Google crawls five URLs to the same content. That's five crawls burned on duplicates instead of new content. Coverage issues in Google Search Console often show "Excluded by canonical tag" for collection pages—which means Google crawled them, wasted budget, then ignored them.
According to research on Shopify URL structure optimization, the duplicate URL problem from collections is the single biggest SEO issue Shopify stores face. It's not theoretical. It's measurable.
How to Audit Your Current Shopify URLs
Before you fix anything, measure the damage.
Step 1: Check Your Product URL Structure
Go to your Shopify admin. Click Products. Open any product. Look at the URL field. It should show something like:
https://yourstore.myshopify.com/products/your-product-name
Or if you have a custom domain:
https://yourstore.com/products/your-product-name
Note the prefix. You're stuck with it. The only variable is your-product-name (the "handle").
Step 2: Check Your Collection URLs
Click Collections. Open any collection. The URL will be:
https://yourstore.com/collections/category-name
Again, /collections/ is locked. Only the slug changes.
Step 3: Audit Duplicate URLs in Google Search Console
This is where the real damage shows up.
Go to Google Search Console (if you haven't set it up yet, do that first). Click Coverage. Look for pages marked "Excluded by canonical tag."
These are your collection pages. Shopify automatically adds a canonical tag pointing collection pages back to the primary product URL. That's good—it prevents duplicate indexing. But it also means:
- Google crawled the collection page
- Google determined it was a duplicate
- Google ignored it
- You wasted crawl budget
If you have 50 products and each appears in an average of 3 collections, that's 150 collection URLs Google crawled and ignored. That's crawl budget you could have spent on new content.
To see the exact scope, use the URL Inspection tool in Search Console. Type in one of your collection URLs. It should show "Excluded by canonical tag" with a note about which product URL it points to.
Step 4: Check Your Blog URL Structure
Click Blog posts in your Shopify admin. The URL will be:
https://yourstore.com/blogs/news/my-article-title
The /blogs/news/ part is locked (where "news" is your blog name). Only the article slug changes.
This is actually better than product URLs because blog posts don't have the collection-duplication problem. But it's still not ideal. You can't nest blog categories hierarchically.
The Three Ways to Fix Shopify URLs
You have three options. They're not all equally good.
Option 1: Use Canonical Tags (Quick, Incomplete Fix)
What it does: Tells Google which version of a duplicate URL is the "primary" one.
How it works: Shopify already does this automatically for collection pages. When a product appears in multiple collections, Shopify adds a canonical tag on each collection page pointing back to the primary product URL. This prevents duplicate indexing.
The problem: It doesn't solve the prefix problem. Your product URL is still /products/your-product. The canonical tag just manages duplicates; it doesn't make the URL shorter or more keyword-rich.
When to use it: If you only have a few collections per product, this is fine. It's already happening automatically. But if you have 10+ collections with heavy overlap, you need more.
Implementation: Check that Shopify's automatic canonicals are working. In Search Console, inspect a collection URL. You should see a canonical tag pointing to the product URL. If it's not there, you have a bigger problem.
For a deeper understanding of when to use canonical tags versus other methods, read when to use noindex vs. robots.txt.
Option 2: Use a Custom Domain + Subdirectory Redirect (Medium Effort, Partial Fix)
What it does: Routes your products through a custom URL structure on a subdomain or subdirectory, then redirects to Shopify.
How it works:
- You own
yourstore.com - You create a subdirectory:
yourstore.com/shop/products/ - You set up a reverse proxy or redirect that routes
/shop/products/your-itemto Shopify's/products/your-item - Google sees the custom URL structure
- Users see Shopify's infrastructure
The problem: This is technically complex. It requires server-side configuration (reverse proxy, nginx, or similar). Most founders don't have the infrastructure to do this. It also creates redirect chains, which dilute PageRank slightly.
When to use it: If you have engineering resources and want to keep Shopify but own your URL structure. This is rare for most founders.
Implementation: This requires a custom reverse proxy setup. It's beyond the scope of a quick fix. If you're interested, consult a DevOps engineer.
Option 3: Migrate Off Shopify (Nuclear Option, Complete Fix)
What it does: Move your store to a platform with flexible URL structures (Webflow, custom Next.js, WordPress + WooCommerce, etc.).
How it works: You own your URL structure completely. No prefixes. Full hierarchy. Complete control.
The problem: This is a massive lift. You're rebuilding your entire store. You're managing your own infrastructure. You're losing Shopify's built-in features. For most founders, this isn't worth it.
When to use it: If you're a technical founder with engineering resources and you're already unhappy with Shopify for other reasons. If SEO is your primary growth lever and you're willing to invest the time.
Implementation: Choose a new platform. Migrate products. Set up 301 redirects from old Shopify URLs to new URLs. Monitor Search Console for crawl errors. This takes weeks or months.
If you do migrate, read setting up 301 redirects for domain migration to preserve your existing rankings.
The Practical Fix: Optimize Within Shopify's Constraints
Most founders can't afford Option 2 or 3. So here's what you actually do: optimize within Shopify's constraints.
You can't change the prefix. But you can make everything else count.
Step 1: Craft Keyword-Rich Product Handles
Your handle is the only part of the product URL you control. Make it count.
Bad handles:
blue-yoga-mat(generic, no intent signal)product-123(not a word)mat-v2(version numbers waste space)
Good handles:
premium-non-slip-yoga-mat(keyword-rich, specific)organic-cotton-yoga-mat(material + use case)eco-friendly-yoga-mat-6mm(differentiator + spec)
Your URL becomes:
/products/premium-non-slip-yoga-mat
Google sees "yoga mat" in the URL. That's a ranking signal.
Rules for handles:
- Include your primary keyword. If you're ranking for "yoga mat," the word "yoga" should be in the handle.
- Keep it under 50 characters total. Longer URLs get truncated in search results. Shorter is better.
- Use hyphens, not underscores. Google treats hyphens as word separators. Underscores don't separate words.
- Avoid duplicate handles. Each product needs a unique handle. Don't create
yoga-matandyoga-mat-bluefor variants. Use one handle per product and manage variants in Shopify's variant system. - Match your H1 title. If your page title is "Premium Non-Slip Yoga Mat," your handle should reflect that.
Step 2: Create Keyword-Rich Collection Names
Same logic applies to collections.
Bad collection names:
Mats(too generic)Category 1(not a word)New Items(changes constantly)
Good collection names:
Yoga Mats(clear, searchable)Eco-Friendly Yoga Equipment(specific, keyword-rich)Beginner Yoga Gear(intent-based)
Your collection URL becomes:
/collections/eco-friendly-yoga-equipment
Google sees the category. That builds topical authority.
Rules for collection names:
- Make them searchable. People should actually search for this collection name on Google.
- Use hierarchy in the name, not the URL. You can't nest
/yoga/mats/. But you can name a collection "Yoga Mats" and another "Yoga Blocks" to signal they're related. - Avoid prefixes in the name. Don't name a collection "All Yoga Mats." Just "Yoga Mats." Shopify already prefixes it with
/collections/. - Limit collections per product. If a product appears in 10 collections, you're creating 10 duplicate URLs. Limit each product to 2-3 primary collections. Use tags for secondary categorization.
Step 3: Verify Canonical Tags Are Working
Shopify automatically adds canonical tags to collection pages. Verify they're there and pointing to the right place.
How to check:
- Go to a collection page on your live store.
- Right-click. Select View Page Source.
- Search for
<link rel="canonical". You should see something like:
<link rel="canonical" href="https://yourstore.com/collections/yoga-mats" />
Wait—that's the collection's own canonical. That's fine. It's telling Google "this is the primary version of this collection page."
For product pages that appear in multiple collections, the canonical should point to the primary product URL:
<link rel="canonical" href="https://yourstore.com/products/premium-yoga-mat" />
If you don't see canonical tags, contact Shopify support. Your theme might be stripping them.
Step 4: Reduce Collection Bloat
Every collection page is a crawled URL. If you have 50 collections, Google crawls 50 collection pages. If each one is a duplicate of a product page (via canonical), that's 50 crawls wasted.
Audit your collections:
- Go to Collections in Shopify admin.
- Count how many you have. If it's more than 15-20, you probably have bloat.
- For each collection, ask: "Would someone search for this on Google?" If no, delete it or make it private.
- Merge overlapping collections. If you have "Yoga Mats" and "Yoga Mats for Beginners," merge them. Use product tags instead.
Private collections:
If you have internal collections (for staff organization or specific marketing campaigns), make them private. Go to the collection. Click Settings. Toggle Visibility to Hidden from online store. This removes them from your sitemap and tells Google not to index them.
Read more about managing your crawl budget in robots.txt, sitemaps, and canonicals.
Step 5: Fix Your Sitemap
Your sitemap tells Google which pages to crawl. If your sitemap includes every collection page, you're telling Google to crawl duplicates.
How to check your sitemap:
- Go to
yourstore.com/sitemap.xml - You should see a list of sitemaps (one for products, one for collections, one for pages, etc.)
- Open
yourstore.com/sitemap_collections.xml - Count the URLs. If you have 200 products and 50 collections, you're listing 250 URLs. That's 50 crawls wasted on duplicates.
How to fix it:
Shopify doesn't let you customize the sitemap directly. But you can:
- Make low-priority collections private (removes them from sitemap)
- Use Search Console to tell Google not to crawl certain URL patterns
- Add a
noindexmeta tag to collection pages you don't want ranked (advanced)
For a detailed walkthrough on sitemaps, read how to generate a sitemap.xml.
Step 6: Leverage Internal Linking to Consolidate Authority
If you can't change the URL structure, you can use internal links to make the hierarchy clear to Google.
Example: You have three yoga mat products:
/products/premium-yoga-mat/products/beginner-yoga-mat/products/eco-friendly-yoga-mat
Create a collection page for "Yoga Mats." Link to all three products from that collection page. Add breadcrumb navigation showing: Home > Yoga Mats > [Product Name].
Google will understand that these three products are related and part of a "yoga mats" cluster, even though the URL structure doesn't show hierarchy.
For more on internal linking strategy, read AEO basics for e-commerce.
Advanced: Shopify Plus and Custom URL Structures
If you're on Shopify Plus (the enterprise tier), you have more options.
Shopify Plus lets you use custom domains and custom URL structures if you're willing to build custom apps or use third-party integrations. Some agencies offer URL rewriting services specifically for Plus stores.
But this costs money and engineering time. For most founders, it's not worth it.
The Real Solution: Audit and Content
Here's the hard truth: fixing your URL structure won't fix your rankings alone.
URL structure is one signal among hundreds. You could have perfect URLs and still not rank because:
- Your content isn't good enough
- You don't have enough backlinks
- Your site speed is slow
- You're not targeting the right keywords
- Your title tags and meta descriptions are weak
URL optimization is necessary but not sufficient.
What actually moves the needle:
Audit your entire site. Use Seoable to run a domain audit in 60 seconds. You'll get a complete picture of what's broken: missing meta tags, slow pages, indexing issues, keyword gaps.
Fix the technical foundation. Make sure your site is crawlable, indexable, and fast. Check robots.txt, sitemaps, and canonicals. Verify your domain in Google Search Console.
Generate keyword-targeted content. Your URL can be perfect, but if your content doesn't target the right keywords, you won't rank. Use Seoable's AI content generation to generate 100 SEO-optimized blog posts in under 60 seconds. This builds topical authority that no URL structure can replicate.
Monitor your progress. Use Google Search Console performance reports to track clicks, impressions, and ranking positions. Know which keywords are moving.
Step-by-Step Implementation Checklist
Here's your action plan for this week:
Day 1: Audit
- Check your product URL structure in Shopify admin
- Check your collection URL structure
- Count how many collections you have
- Open Google Search Console and check Coverage for "Excluded by canonical tag"
- Note how many duplicate URLs you have
Day 2: Optimize Handles and Collection Names
- Review your top 20 products by traffic
- Rewrite their handles to be more keyword-rich (if they're weak)
- Review your top 10 collections
- Rename them to be more searchable and keyword-focused
- Test the changes on a staging environment first
Day 3: Clean Up Collections
- Identify collections with fewer than 3 products
- Decide: merge, delete, or make private
- Make internal-only collections private
- Reduce the average number of collections per product from N to 2-3
Day 4: Verify Technical Setup
- Check your sitemap at
/sitemap.xml - Verify canonical tags are present on collection pages
- Check that your domain is verified in Google Search Console
- Submit your updated sitemap to Search Console
Day 5: Plan Content Strategy
- Identify 10-15 keywords you want to rank for
- Map them to products and collections
- Plan blog content that builds topical authority around those keywords
- Use Seoable to generate 100 AI blog posts in 60 seconds
FAQ: Shopify URL Structure
Q: Can I change the /products/ prefix?
A: No. Shopify locks it. You can only customize the handle (the slug after the prefix). If you need to change the prefix, you need to migrate off Shopify.
Q: Do I need to worry about duplicate URLs from collections?
A: Not immediately. Shopify's automatic canonical tags handle it. But you should still minimize collection bloat to preserve crawl budget. Read more in Shopify's official URL structure documentation.
Q: Is /collections/ hurting my rankings?
A: Not directly. The canonical tag tells Google "this is a duplicate, ignore it." But Google still crawls it, wasting crawl budget. If you have thousands of collections, that's a problem. If you have 10-20, it's fine.
Q: Should I use www or non-www for my Shopify store?
A: Pick one and enforce it with a 301 redirect. Read www vs. non-www for the full guide.
Q: How do I check if my pages are indexed?
A: Use the site: operator in Google or the URL Inspection tool in Search Console. Both take 30 seconds.
Q: What about blog posts? Are they affected by Shopify's URL structure?
A: Blog posts use the /blogs/[blog-name]/[post-slug] structure. It's fixed, but less problematic than products because blog posts don't have the collection-duplication issue. You can still optimize the post slug to be keyword-rich.
Conclusion: Ship SEO-Ready, Not SEO-Broken
Shopify's default URL structure is a constraint, not a death sentence. Thousands of Shopify stores rank well despite the /products/ and /collections/ prefixes.
But they rank well because they optimize within the constraint. They craft keyword-rich handles. They minimize collection bloat. They use canonical tags correctly. They build topical authority with internal linking and content.
They don't fight the platform. They work with it.
Here's what you do this week:
Audit your current structure. How many collections do you have? How many duplicates? What are your handles like?
Optimize within Shopify's limits. Rewrite weak handles. Clean up collections. Verify canonicals.
Build authority beyond URLs. URLs are one signal. Content is everything. Generate keyword-targeted blog posts. Build topical clusters. Get backlinks.
Monitor progress. Use Google Search Console to track clicks and impressions. Know what's working.
You can't change Shopify's URL structure. But you can be smarter about it than your competitors. Most founders don't even know this is a problem. You do now.
Ship with intention. Rank faster.
Get the next one on Sunday.
One short email a week. What is working in SEO right now. Unsubscribe in one click.
Subscribe on Substack →