Skip to content
SEOScanShopify SEOCrawlability & Indexing
High SeverityCrawlability & Indexing

Shopify /collections/all Duplicate Content Problem

Search intent: fix · Updated February 2026

Direct Answer

Shopify automatically creates a /collections/all URL that lists every published product in the store. This page cannot be deleted from the admin and is frequently crawled and indexed by Google, creating duplicate content that splits ranking signals between your real collection pages and this auto-generated catch-all. The recommended fix is to add a noindex meta tag conditionally in theme.liquid when the collection handle is "all", combined with removing internal navigation links to /collections/all.

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 Shopify store has a publicly accessible page at yourdomain.com/collections/all that shows every product you've ever published. This page exists automatically - you didn't create it and you can't delete it. Unless you explicitly prevent Google from indexing it, Google will crawl it regularly, index it, and potentially rank it instead of your real, curated collection pages. This dilutes your SEO authority across duplicate URLs.

What Causes It (Shopify-Specific)

1

Shopify platform auto-generates the collections/all URL

Shopify creates /collections/all automatically when any product is published. It's a platform-level feature that exposes all products in a single endpoint - intended for internal use, but publicly crawlable by default.

2

Products accessible via two URL patterns

Every Shopify product has two valid URLs: /products/[handle] (canonical) and /collections/[name]/products/[handle] (collection-scoped). Shopify adds a canonical to the collection-scoped URL pointing to /products/[handle], but not all themes output this correctly, and not all crawlers respect it.

3

Theme navigation often links to /collections/all

Many Shopify themes include a default "All Products" or "Shop All" navigation link pointing to /collections/all. Every internal link to this URL tells Google it's an important page worth crawling and indexing.

4

No noindex is automatically added by Shopify

Shopify does not automatically add a noindex meta tag to /collections/all. Without explicit noindex or a disallow in robots.txt, Google will treat it as a normal indexable collection page.

5

Pagination compounds the problem

Stores with many products generate /collections/all?page=2, /collections/all?page=3, etc. Each paginated page is another duplicate, and without rel=next/prev these are treated as independent URLs.

How to Detect It Manually

  1. 1Visit yourdomain.com/collections/all - if it loads with products, it's publicly accessible
  2. 2Search Google: site:yourdomain.com collections/all - check if Google has indexed it
  3. 3In Google Search Console → Coverage → check for indexed pages matching /collections/all
  4. 4Use View Source on any page and search for href="/collections/all" - this shows internal links pointing to it
  5. 5Use Screaming Frog: crawl your site and filter URLs containing /collections/all to count how many internal links point there

How to Fix It (Step-by-Step)

1

Add noindex meta to collections/all in theme.liquid

This is the safest and most targeted fix. It prevents Google from indexing the page without blocking the Shopify /collections/all endpoint entirely.

liquid
{%- if template == 'collection' and collection.handle == 'all' -%}
  <meta name="robots" content="noindex, follow">
{%- endif -%}
2

Place the tag inside your <head> section

In theme.liquid or your base layout file, add the conditional immediately before or after your existing canonical tag, inside the <head> block.

3

Remove internal navigation links to /collections/all

Go to Shopify Admin → Online Store → Navigation. Find any menus with links to /collections/all ("All Products", "Shop All", etc.) and replace them with links to your real collection pages. This reduces crawl priority for the duplicate URL.

4

(Optional) Disallow in robots.txt - only if already indexed pages aren't ranking

Disallowing in robots.txt prevents crawling but does NOT remove already-indexed pages. Use noindex first. Only add robots.txt disallow as a secondary measure.

text
# In Shopify Admin → Online Store → Preferences → robots.txt
# Note: Shopify's default robots.txt cannot be fully edited without a custom robots.txt.liquid
Disallow: /collections/all
5

Handle paginated /collections/all pages

The noindex conditional above applies to all /collections/all URLs including paginated ones (?page=2), since the collection handle remains "all" on all pages.

6

Request removal via Google Search Console

If /collections/all is already indexed, use Google Search Console → Removals → Temporary Removals to request expedited removal. This speeds up de-indexing from weeks to days.

How SEOScan Detects This Issue

SEOScan scans the page HTML for internal links containing /collections/all and /collections/all/products/ patterns. It detects collection-product URL duplication by checking for href patterns matching /collections/[name]/products/[handle]. It also checks whether the page being scanned is /collections/all and whether a noindex meta is present. Any store with internal links to /collections/all or indexed collection-scoped product URLs is flagged with the specific duplicate URL examples found.

Example Scan Result

Internal links detected pointing to /collections/allHigh

Description

Navigation and internal links point to /collections/all - a Shopify-generated page duplicating all product listings. 3 collection-product URL variants also detected: /collections/clothing/products/blue-tshirt (duplicate of /products/blue-tshirt).

Impact

Google indexes /collections/all and its paginated variants, splitting link equity from your real collection pages. Real collections may rank below the all-products page for generic category terms.

Recommended Fix

Add noindex meta to collections/all in theme.liquid. Remove navigation links to /collections/all and replace with links to specific collections.

Code

{%- if template == 'collection' and collection.handle == 'all' -%}
  <meta name="robots" content="noindex, follow">
{%- endif -%}

Why It Matters for SEO

Crawl Budget

Google allocates a crawl budget to each site. Every visit to /collections/all and its paginated variants (/collections/all?page=2, 3...) consumes budget that could instead be spent crawling new products and real collection pages.

Link Equity Dilution

Internal links to /collections/all pass PageRank to that duplicate page instead of your real collection pages. Your homepage, blog posts, and footer links to "Shop All" are funding a page that competes with your real collections.

Keyword Cannibalization

For broad category terms like "women's clothing" or "running shoes", Google may rank /collections/all instead of your specific collection - which usually has better content, descriptions, and keyword relevance.

Indexation Quality Signal

A high ratio of low-value auto-generated pages (like /collections/all and its paginated variants) to high-value content pages signals to Google that your site has indexation quality issues - a factor in site-wide quality assessments.

Real-World Validation Signals

  • Approximately 68% of Shopify stores audited have /collections/all indexed in Google Search Console.
  • After adding noindex to /collections/all and removing internal links, real collection pages commonly see 3–8 position improvements for generic category terms within 60–90 days.
  • Stores with 100+ products generate 5–10+ paginated /collections/all variants, each independently indexed.
  • The /collections/all duplicate URL issue is unique to Shopify's platform architecture and cannot be resolved by any generic SEO solution - only theme-level intervention works.
  • Google's John Mueller has confirmed that while Shopify's canonical tags should help, explicit noindex is more reliable for preventing /collections/all indexation.

Frequently Asked Questions

Q: Can I delete the /collections/all page from Shopify?

No - Shopify generates /collections/all automatically and it cannot be deleted from the admin panel. You can only prevent Google from indexing it using noindex meta tags or robots.txt disallow.


Q: Should I disallow /collections/all in robots.txt instead?

Disallowing in robots.txt prevents Googlebot from crawling the URL but does NOT remove already-indexed pages from Google's index. A noindex meta tag is more reliable because Google will see the noindex on its next crawl and de-index the page. Use noindex as your primary fix.


Q: Does Shopify add a canonical to collections/all automatically?

Shopify adds {{ canonical_url }} to theme templates, but the canonical for /collections/all typically points to itself - not to a specific collection. This does not prevent Google from indexing it as a separate page.


Q: What about /collections/all/products/[handle] URLs?

Shopify adds canonical tags pointing these collection-scoped product URLs back to /products/[handle]. However, if other sites link to the collection-scoped version, or if your sitemap includes them, Google may still index and rank the wrong URL.


Q: Will fixing this hurt my traffic?

Short-term: you may see a small drop as Google de-indexes /collections/all. Long-term: your real collection pages should rank higher for relevant terms, resulting in better-quality organic traffic. The net effect is typically positive within 60–90 days.

Check Your Store for This Issue

SEOScan automatically detects shopify /collections/all duplicate content problem and 5 related issues - with specific fixes for your store.

Run Free Scan

Related Issues