Shopify

Shopify Product Pages Not Indexed: Diagnose in 7 Steps

Shopify product pages not indexed? Diagnose the real cause (duplicate /collections/ URLs, thin pages, accidental noindex) and run a free index audit fast.

SearchOptimo Team7 min read

If your Shopify store's product or collection pages aren't showing up in Google, you don't need another "what is indexing" explainer. You need to find the specific cause and act. Shopify creates indexing problems that generic SEO advice misses, and the biggest one is hiding in your URL structure. This guide walks you through a seven-step diagnosis, gives you a cause-to-fix table, and ends with a free index audit so you can check every product URL at once instead of inspecting them one by one.

Why are my Shopify product pages not indexed?

The most common Shopify cause is duplicate product URLs. Shopify serves the same product at both /products/handle and /collections/name/products/handle, and Google can treat those variants as competing copies. Thin collection pages, an accidental noindex tag from a theme or app, and a still-live password page are the next likeliest causes.

This is more specific than the generic "duplicate product pages" warning you'll see in forum threads: the duplication is structural to how Shopify routes URLs, and the fix lives in your canonical tags.

The Shopify indexing diagnostic table

Before changing anything, match the symptom to the cause. Each row tells you how to confirm the problem and what to do about it. Use the URL Inspection tool in Google Search Console (GSC) as your single source of truth for any individual URL.

Shopify cause How to confirm Fix
Duplicate /collections/.../products/ URLs URL Inspection shows "Duplicate, Google chose different canonical" or indexed under the wrong path Confirm the canonical points to /products/handle; switch theme internal links from within: current_collection to the clean /products/ path
Thin or duplicate collection pages Status reads "Crawled – currently not indexed" Add unique intro copy, merge near-identical collections, prune empties
Accidental noindex tag URL Inspection: "Excluded by 'noindex' tag" Find and scope the noindex in theme.liquid or remove the offending app
Active password / coming-soon page site:yourstore.com returns nothing; storefront asks for a password Disable the password page under Online Store → Preferences
Faceted / sort URLs wasting crawl budget GSC shows many ?sort_by= or ?filter= URLs crawled, not indexed Block parameter URLs in robots.txt; keep canonicals clean
Brand-new store, low authority "Discovered – currently not indexed" Build internal links, submit sitemap.xml, be patient

For the two "currently not indexed" statuses above, the root causes differ. Read why pages get crawled but not indexed and what "discovered – currently not indexed" means for the full distinction.

Duplicate product URLs and canonical tags: the #1 Shopify cause

Shopify's routing is the root of most product-indexing trouble. The same product is reachable at /products/blue-shirt and at /collections/summer/products/blue-shirt, /collections/sale/products/blue-shirt, and so on for every collection it belongs to. That's one product, many URLs.

Here's the part most guides get wrong: Shopify's default canonical tag already points to the clean /products/handle version, even on the /collections/.../products/ variants. The canonical usually isn't broken. The real offender is where your theme's internal links point. Shopify's {{ product.url | within: current_collection }} filter generates collection-prefixed links on every product card, "related products" widget, and collection grid, so your strongest internal signal points at the non-canonical URL. Google then sees you linking to one URL while canonicalizing to another, gets mixed signals, and may index the wrong path or none at all.

Two real failure modes: (1) a custom theme, page builder, or translation app overrides or strips the canonical (confirm with URL Inspection, which reports "Duplicate, Google chose a different canonical than user" when it misfires); or (2) the canonical is fine but internal links use within: current_collection. The highest-impact fix is to drop the collection scope so links resolve to the clean path (change {{ product.url | within: current_collection }} to {{ product.url }} in your theme), then make sure your sitemap references only the canonical /products/ path.

Thin and duplicate collection pages

Collection pages fail to index for a different reason: low unique value. A collection that's just a grid of products with no descriptive copy looks thin to Google, which parks it under "Crawled – currently not indexed": Google fetched it and decided it wasn't worth storing. Stores with dozens of overlapping collections ("Sale," "Bestsellers," "New") multiply this problem, since the pages look near-identical.

The fix is consolidation and value: write a unique paragraph of intro copy per collection, merge collections that serve the same intent, and delete empty or seasonal ones you no longer need. Fewer, stronger collection pages index far better than many thin ones.

Accidental noindex from a theme, app, or password page

A single misplaced tag can wipe out an entire catalog. The noindex directive tells Google to keep a page out of its index, and on Shopify it sneaks in three ways: a theme developer hard-codes a noindex in theme.liquid without scoping it, an SEO or "preview" app injects one, or your password page is still active and blocking crawlers storewide.

To confirm, run URL Inspection on an affected product. "Excluded by 'noindex' tag" is the smoking gun. Check theme.liquid for an unscoped <meta name="robots" content="noindex">, audit recently installed apps, and verify Online Store → Preferences shows no password protection. Removing one bad tag often restores hundreds of pages at once.

Need to find every affected page first? Run a free index audit on your Shopify URLs: paste your product and collection URLs and see in seconds which ones Google has actually indexed, instead of inspecting them one at a time in GSC.

Sitemap and crawl-budget waste (the cause most guides skip)

Shopify auto-generates sitemap.xml and lists only canonical URLs in it, which is correct. The problem is what's not in the sitemap but still gets crawled: faceted and sort URLs like ?sort_by=price-ascending and ?filter.v.price=. On a large catalog, these can balloon into thousands of low-value URLs that eat your crawl budget, leaving real product pages stuck at "Discovered – currently not indexed."

Confirm this in the GSC Page Indexing report. If you see far more crawled URLs than you have products, parameter URLs are the likely cause. Disallow them in robots.txt (Shopify lets you edit it via robots.txt.liquid), keep canonicals pointing to clean URLs, and resubmit your sitemap. For large catalogs, ongoing visibility matters more than a one-time fix: see how to monitor index status at scale.

Run a free index audit, then monitor

Diagnosing one URL in GSC is fine; auditing a 500-product catalog one URL at a time is not. The fastest first move is a bulk check: confirm which Shopify URLs are indexed, then focus your fixes where they're missing.

  1. Pull your product and collection URLs (your sitemap.xml lists the canonical set).
  2. Run them through the free bulk index checker to see indexed vs. not-indexed at a glance.
  3. Match each not-indexed URL to a cause in the table above and fix it.
  4. Re-check after your changes, and set up de-indexing alerts so you catch future drops automatically.

You can also spot-check a single page first with our guide on how to check if a page is indexed.

Key takeaways

  • Duplicate /collections/.../products/ URLs are the dominant Shopify cause. The canonical is usually fine by default; the real fix is switching theme internal links off within: current_collection so they point to the clean /products/handle URL.
  • "Crawled – currently not indexed" usually means thin collections. Add unique copy and consolidate.
  • An accidental noindex (theme, app, or password page) can hide your whole catalog. Confirm with GSC URL Inspection.
  • Faceted/sort URLs waste crawl budget. Block them in robots.txt and keep your sitemap.xml canonical.
  • Audit in bulk, not one URL at a time. Run a free index audit on your Shopify URLs to find every missing page in seconds, then monitor so it doesn't happen again.

Frequently asked questions

Why are my Shopify product pages not indexed?
The most common Shopify cause is duplicate product URLs. Shopify serves each product at both /products/handle and /collections/name/products/handle, and Google may treat the variants as competing copies. Thin collection pages, an accidental theme or app noindex tag, and a still-active password page are the next likely culprits.
How do I fix non-indexed pages on Shopify?
Start with the URL Inspection tool in Google Search Console to confirm the exact status, then match it to a cause. Fix canonical tags so duplicate /collections/ URLs point to the clean /products/ URL, remove any accidental noindex, strengthen thin collections, and resubmit your sitemap.xml. Run a bulk index audit to find every affected URL at once.
How do I noindex a page in Shopify?
Add a conditional meta robots noindex tag in your theme's theme.liquid file, wrapped in Liquid logic that targets the specific template or handle you want hidden. Many merchants accidentally apply this sitewide, which is exactly why product pages disappear from Google. Always scope the rule and confirm with URL Inspection.
How do I make a product not searchable on Shopify?
To hide a product from your own storefront search and collections, set its availability or use a theme setting that excludes it. To hide it from Google specifically, add a scoped noindex tag in theme.liquid. These are different mechanisms: hiding from storefront search does not remove a product from Google's index, and vice versa.
How long does it take for Shopify pages to get indexed by Google?
There's no fixed timeline. New stores commonly sit at 'Discovered – currently not indexed' for days to several weeks while Google builds trust in the domain. Established stores usually see new products indexed within days if internal linking and canonicals are clean. If pages stay unindexed for weeks, treat it as a quality, duplication, or noindex problem rather than a waiting problem, and diagnose with URL Inspection.

Monitor your index status automatically

SearchOptimo re-checks your URLs on a schedule and alerts you when something drops. Start free — no credit card.

Start free

Keep reading