Skip to content
SEOScanShopify SEOCrawlability & Indexing
Critical SeverityCrawlability & Indexing

Shopify Collection-Aware Product URL Duplicate Content

Search intent: fix · Updated February 2026

Direct Answer

By default, when a user clicks a product from a Shopify collection page, the URL changes to include the collection path (e.g., /collections/shirts/products/blue-shirt) instead of the root product path (/products/blue-shirt). While Shopify automatically adds a canonical tag pointing back to the root URL, having both URLs discoverable leads to link equity dilution, crawl budget waste, and Analytics fragmentation. The fix is to edit your theme's product grid snippet (usually product-card.liquid or similar) to ensure the product hyperlink strictly outputs {{ product.url }} instead of {{ product.url | within: collection }}.

Not sure if your store has this issue?

Run a free scan to detect crawlability & indexing problems instantly.

Free Scan

What This Issue Means

Every product on a default Shopify store can be accessed via two completely different URLs. If you have a collection called "Summer", your blue shirt is accessible at both yourdomain.com/products/blue-shirt AND yourdomain.com/collections/summer/products/blue-shirt. When users share the longer URL on social media or another site links to it, that SEO authority is split between two different versions of the exact same page.

What Causes It (Shopify-Specific)

1

The "within: collection" Liquid Filter

Shopify theme developers historically used the {{ product.url | within: collection }} filter to build product grid links. This was originally done to preserve the "Back to Collection" breadcrumb trail for users.

2

Internal Linking Architecture

Because every product card on the homepage, category pages, and related product carousels utilizes the collection-aware URL, 90% of your internal links are pointing to the "wrong" non-canonical version of your products.

How to Detect It Manually

  1. 1Go to your storefront, navigate to any Collection, and hover over a product image.
  2. 2Check the browser's status bar at the bottom left. If the URL contains /collections/[name]/products/, you have this issue.
  3. 3Click the product. Look at the URL bar. If the path includes the collection, the "within" filter is actively being used.

How to Fix It (Step-by-Step)

1

Locate the Product Card Template

In your theme code (Online Store -> Edit Code), look for snippets like product-card.liquid, card-product.liquid, or product-grid-item.liquid (it varies by theme).

2

Remove the "within: collection" filter

Use Ctrl+F to find {{ product.url | within: collection }} and replace it with just {{ product.url }}.

liquid
<!-- BAD (Creates duplicate URL paths) -->
<a href="{{ product.url | within: collection }}">
  {{ product.title }}
</a>

<!-- GOOD (Points directly to root canonical URL) -->
<a href="{{ product.url }}">
  {{ product.title }}
</a>
3

Check other collection-aware elements

Be sure to check "Related Products" snippets, "Recently Viewed" scripts, and any custom homepage featured collection sections for the same filter.

How SEOScan Detects This Issue

SEOScan crawls the standard collection pages of your store, scrapes the product anchor text (<a>) href attributes, and evaluates whether the links map to the root /products/ namespace or the /collections/ namespace. If it detects the latter, it triggers a critical internal linking warning.

Example Scan Result

Internal links using non-canonical collection product URLsCritical

Description

Found 42 product grid links pointing to /collections/*/products/* instead of the root /products/* URL. This splits PageRank and relies entirely on Google respecting canonical tags.

Impact

Dilutes inbound link equity and fragments e-commerce tracking in Google Analytics. It also wastes crawl budget as Google parses two identical pages.

Recommended Fix

Remove the "within: collection" Liquid filter from your product card snippet.

Why It Matters for SEO

Link Equity (PageRank) Consolidation

If an external blog links to the /collections/ aware URL, that SEO power points to a page that canonicalizes to a different URL. Canonical tags consolidate signals less efficiently than direct internal links - Google treats the canonical tag as a hint, not a directive, so there is no guarantee that all ranking signals transfer. Linking directly to the root product URL avoids this uncertainty entirely.

Crawl Budget

Even with canonical tags, Googlebot must physically crawl both URLs to discover the canonical directive. If you have 5,000 products each in 3 collections, Google is crawling 20,000 URLs instead of 5,000.

Real-World Validation Signals

  • This is unanimously considered the #1 most common technical SEO error on the Shopify platform.
  • Removing the "within: collection" filter is the first step requested by any major SEO agency when auditing a Shopify store.

Frequently Asked Questions

Q: Won't this break my breadcrumbs?

If your theme relies on the URL structure to generate "Home > Shirts > Blue Shirt" breadcrumbs, yes, the breadcrumb may change to just "Home > Blue Shirt". However, modern themes (like Dawn) reconstruct breadcrumbs using JavaScript and the referring page, or you can implement robust breadcrumb logic using Shopify's `collection` object without sacrificing your URL structure.


Q: Is a canonical tag enough?

No. Canonical tags are "hints," not "directives" like redirects. Google can and frequently does ignore canonical tags if internal linking signals (like your navigation) point strongly to the collection-aware URL.

Check Your Store for This Issue

SEOScan automatically detects shopify collection-aware product url duplicate content and 2 related issues - with specific fixes for your store.

Run Free Scan

Related Issues