shopify seoindexinggoogle search consoleproduct pagesindex coverage

Shopify Product Pages Not Indexed? How to Diagnose & Fix It in GSC

Shopify product pages not indexed in Google Search Console? Diagnose the real causes and fix indexing with the Pages report and URL Inspection.

Search Console Tools Team14 min read
Table of Contents

You added a dozen new products, waited a few weeks, and searched Google for your own product titles, only to find nothing. When you open Google Search Console, the Pages report shows a growing pile of URLs under "Crawled - currently not indexed" or "Discovered - currently not indexed." This is one of the most common and most frustrating Shopify SEO problems, and it rarely has a single cause.

The good news: almost every reason a Shopify product or collection page fails to get indexed is diagnosable from inside Search Console itself, and most causes are fixable without touching theme code. The trick is to read the signals Google is actually giving you instead of guessing, then to address the underlying reason rather than mashing the "Request Indexing" button and hoping.

This guide walks through a repeatable diagnosis flow using the Pages (Index Coverage) report and the URL Inspection tool, maps each coverage status to its real Shopify-specific cause, and gives you a concrete fix for each one. It also clears up two things people get wrong constantly: requesting indexing does not force or guarantee indexing, and Shopify handles product URL canonicalization automatically, so most "duplicate URL" panic is unwarranted.

First, understand what "not indexed" actually means

Google goes through three broad phases for any URL: it discovers the URL, it crawls (downloads) the page, and then it decides whether to index it. A page can stall at any of those phases, and the Pages report tells you exactly where.

"Not indexed" is not an error in the way a 404 or a server error is. For thin or low-value pages, Google is making a judgment call: it has seen the URL, possibly even read the content, and decided it isn't worth storing in the index right now. That word "right now" matters. These statuses are often temporary, and a page can move into the index later once your site earns more trust or the page gets better. That also means a fix today might take days or weeks to show results.

If you are new to the Pages report layout, our guide to Google Search Console for Shopify covers setup, property types, and where everything lives. This article assumes you already have a verified property and can open the Pages report.

The two-minute diagnosis flow

Before reading any of the cause-specific sections, run this flow on a single affected URL. It tells you which section you actually need.

  1. Open URL Inspection (top search bar in GSC) and paste the full product URL, for example https://yourstore.com/products/blue-merino-sweater.
  2. Read the top status. "URL is on Google" means it is indexed. "URL is not on Google" or "URL is available to Google" means it is not.
  3. Expand Page indexing. Note the Crawl result (was it fetched?), the Indexing allowed? line, and the User-declared canonical vs Google-selected canonical.
  4. Click Test Live URL to see what Google fetches right now, versus the last cached crawl. This catches password protection, accidental noindex, and robots blocks.
  5. Only then, if the page is genuinely eligible and just hasn't been picked up, click Request Indexing.

The three fields that solve most cases are: the coverage status, the Indexing allowed? flag, and the Google-selected canonical. Our deep dive on the URL Inspection tool explains every field in that panel if you want the full reference.

Coverage status to cause to fix

Use this table as your map. Find the status GSC reports, identify the most likely Shopify-specific cause, then jump to the matching fix below.

| Coverage status in GSC | Likely Shopify cause | Fix | | --- | --- | --- | | Discovered - currently not indexed | Crawl budget / low site authority; Google found the URL but hasn't crawled it | Improve internal linking, submit sitemap, strengthen the page; wait | | Crawled - currently not indexed | Thin or duplicate product description; low perceived value | Rewrite unique descriptions, add depth, internal links | | Duplicate without user-selected canonical | Same product reachable via /collections/x/products/y | None needed; Shopify auto-canonicals to /products/y | | Alternate page with proper canonical tag | Variant or collection-path URL pointing at the canonical | Working as intended; no action | | Excluded by noindex tag | Theme or app added a noindex; or password page | Remove the noindex; disable store password | | Blocked by robots.txt | Custom robots.txt.liquid disallow rule | Edit robots.txt.liquid to allow the path | | Page with redirect | Archived/deleted product redirecting elsewhere | Restore product or accept the redirect | | Not found (404) | Product deleted or handle changed | Republish or set up a 301 | | Soft 404 | Out-of-stock page with no content/empty collection | Keep meaningful content; avoid empty pages |

Cause 1: "Crawled - currently not indexed" on thin product pages

This is the single most common status for Shopify stores. It means Google fetched the page, read it, and chose not to index it. On Shopify this almost always comes down to the product page being thin or near-duplicate.

Typical culprits: a two-sentence description copied from the manufacturer, the same boilerplate description reused across a whole product line, or a page that is mostly template chrome (related products, reviews widget, footer) with very little unique body content. Google sees thousands of pages like this every day and declines to add more of them.

The fix is content, not buttons. Write a genuinely unique description for each product: what it is, who it is for, materials or specs, sizing or use cases, and answers to the questions buyers actually ask. Manufacturer copy that appears on dozens of other stores is a duplicate-content signal even when it lives at a unique URL. If you have hundreds of SKUs, prioritize your highest-margin and highest-search-demand products first rather than trying to fix everything at once.

After you improve a page, run Test Live URL in URL Inspection to confirm Google sees the new content, then request indexing once. Requesting indexing puts the URL in a priority crawl queue; it does not override Google's quality judgment, so the rewrite is what does the real work. For a fuller breakdown of every state in this report, see our index coverage errors guide.

Cause 2: "Discovered - currently not indexed"

Here Google knows the URL exists (usually from your sitemap or an internal link) but hasn't crawled it yet. This is less about page quality and more about crawl prioritization. New stores, stores with low authority, and stores with huge catalogs relative to their link equity tend to see this most.

Fixes that move the needle:

  • Strengthen internal linking. A product that is only reachable from one deep collection page is a low priority. Link to important products from your homepage, from relevant blog posts, and from related-product sections.
  • Make sure the sitemap is submitted and clean. Shopify generates /sitemap.xml automatically; confirm it is submitted under the Sitemaps report. Our sitemap submission guide walks through this.
  • Reduce crawl waste. If Google is busy crawling thousands of filtered, sorted, and tagged collection URLs, it has less budget for your real product pages. Sensible internal linking and avoiding linking to faceted URLs helps.
  • Be patient. "Discovered" frequently resolves on its own as your site earns trust. There is no button that forces it.

Cause 3: Duplicate /collections/<x>/products/<y> URLs

This one causes a lot of needless anxiety. By default, Shopify makes every product reachable at two URL shapes: the clean /products/handle and the contextual /collections/collection-handle/products/handle. People see both in crawls and assume they have a duplicate-content disaster.

You almost certainly do not. Shopify automatically outputs a rel="canonical" tag on the collection-scoped URL that points to the clean /products/handle version. In GSC you will see the collection-path URLs reported as "Alternate page with proper canonical tag" or "Duplicate without user-selected canonical" with Google selecting the clean URL. That is the system working correctly, and no action is required.

What to verify in URL Inspection: paste a /collections/.../products/... URL and check that the User-declared canonical and Google-selected canonical both point to the clean /products/handle. If they do, leave it alone. The one thing worth fixing is your own internal links and sitemap entries pointing to clean /products/ URLs, which Shopify already does by default. For more on how the two page types relate, see Shopify collection pages vs product pages SEO.

Cause 4: Out-of-stock and archived products

Status matters. A product set to Active with zero inventory still renders a normal, indexable page, and that is usually fine to keep, especially if the item will restock. A product set to Draft is not visible on your storefront and should not be indexed. A product that is Archived or deleted no longer has a live page.

Where indexing breaks: if you archive or delete a product that was indexed, its URL becomes a 404 (or whatever your theme/app redirects it to), and GSC will report "Not found (404)" or "Page with redirect." If you sell out and the page becomes empty or shows nothing but an "out of stock" message with no other content, Google may treat it as a Soft 404 and drop it.

Fixes: for temporarily out-of-stock items you want to keep ranking, leave the page Active and keep the description, specs, reviews, and related products on it so it isn't empty. For permanently discontinued products, set up a 301 redirect to the closest equivalent product or the parent collection rather than leaving a dead 404.

Cause 5: Default Shopify noindex and password protection

Shopify intentionally applies a noindex to certain pages out of the box, including internal search results, cart, and policy pages in some themes. That is correct behavior and not your problem. The problem cases are:

  • A theme or third-party app injecting noindex onto product pages. Some "SEO" apps, A/B testing tools, or theme settings let you noindex by template or by tag. Check URL Inspection: if Indexing allowed? says "No: 'noindex' detected," something is adding the tag. Track it down in your theme's theme.liquid / product template or the offending app's settings.
  • A password-protected store. If your online store still has a password enabled (Online Store → Preferences → Password protection), Google cannot crawl any storefront page and you will see crawl failures or "URL is available to Google" with nothing indexed. Disable the password once you are ready to be public.
  • A custom robots.txt.liquid with a Disallow rule covering /products or /collections. Shopify lets you override the default robots file; a careless edit can block your whole catalog. Check the Indexing section in URL Inspection for "Blocked by robots.txt."

For any of these, the diagnosis is the same: run Test Live URL and read the Indexing allowed? and Crawl lines. They will name the exact blocker.

Cause 6: Sitemap not submitted or unhealthy

Shopify creates and maintains /sitemap.xml automatically, splitting it into child sitemaps for products, collections, blogs, and pages. You do not generate it manually, but you do need to submit it in GSC and check it occasionally.

In the Sitemaps report, submit sitemap.xml (the root index) if you haven't. Confirm the status is "Success" and that the discovered URL count roughly matches your catalog size. If products are missing from the sitemap, check that they are set to Active and available on the Online Store sales channel; draft and unavailable products are correctly excluded. A clean, submitted sitemap is the most reliable way to get new product URLs into the "Discovered" phase quickly.

Cause 7: Thin or duplicate descriptions across variants and similar products

Distinct from Cause 1, this is about catalogs where many products are near-identical: the same t-shirt in twelve colors, or a supplier feed where every description is one templated sentence with the SKU swapped in. Google may index one representative page and treat the rest as duplicates, leaving most of your catalog out.

Mitigations: consolidate true variants (color, size) into a single product with variant options rather than separate products, so you have one strong page instead of twelve weak ones. Where products are genuinely separate but similar, differentiate the copy meaningfully. And invest the most effort where it pays off, your money pages, which our ecommerce SEO with Search Console guide helps you prioritize using clicks and impressions data.

Useful GSC page regex (RE2) examples

Inside the Pages report and the Search results report you can filter the Page dimension with a custom regex (RE2 syntax). These help you isolate Shopify URL patterns when auditing what is and isn't indexed. Use "Custom (regex)" as the match type and paste:

# All product pages (clean URLs only)
^https://yourstore\.com/products/

# All collection pages
^https://yourstore\.com/collections/[^/]+/?$

# Collection-scoped product URLs (the auto-canonicalized duplicates)
/collections/[^/]+/products/

# Product pages EXCLUDING the collection-scoped variants
^https://yourstore\.com/products/[^/]+/?$

# Pages with variant query parameters
\?variant=

# Filtered / faceted collection URLs that can waste crawl budget
/collections/.*(\?|&)(filter|sort_by|grid_list)=

Remember RE2 does not support lookahead or backreferences, so keep patterns simple. Anchor with ^ and $ when you want exact path matches rather than substring matches.

Putting it together: a sane workflow

Start with the Pages report and group the affected URLs by status. Pick one representative URL per status and run it through URL Inspection. Let the Crawl, Indexing allowed?, and canonical fields tell you which cause applies, then apply the matching fix above. Fix the underlying issue first; only after that should you request indexing, and only once per URL. Then give it time, recheck the Pages report in one to three weeks, and repeat for the next batch.

Doing this URL by URL is fine for a handful of pages. For a full catalog, it gets tedious fast, which is where automation helps.

Try it free: Search Console Tools connects to your Search Console with Google sign-in and automatically flags indexing problems and content opportunities across your whole catalog, turning the messy Pages report into a prioritized to-do list and content briefs. No spreadsheets, no manual URL-by-URL inspection.

Frequently Asked Questions

Why are my Shopify product pages "Crawled - currently not indexed"?

This status means Google fetched the page but decided it wasn't worth indexing yet, almost always because the content is thin or duplicated from a manufacturer or other products. Rewrite unique, substantial descriptions and add internal links from relevant pages. After improving the page, use Test Live URL to confirm the changes and request indexing once.

Does requesting indexing in GSC guarantee my page gets indexed?

No. Requesting indexing places the URL in a priority crawl queue, but Google still applies its own quality and relevance judgment before adding it to the index. If the page is thin, duplicate, or blocked, requesting indexing won't help. Fix the underlying cause first, then request indexing a single time.

Are the /collections/x/products/y duplicate URLs hurting my SEO?

Almost never. Shopify automatically adds a canonical tag on those collection-scoped URLs pointing to the clean /products/handle version, so Google consolidates them correctly. You can verify this in URL Inspection by checking that the Google-selected canonical is the clean product URL. No manual fix is required.

How long does it take for a Shopify product page to get indexed?

There is no fixed timeline. After a page is discovered and is eligible, indexing can take anywhere from a few days to several weeks depending on your site's authority and crawl budget. New stores and large catalogs typically wait longer. Submitting a clean sitemap and strong internal linking speeds up discovery.

Why does GSC say "Discovered - currently not indexed" but never crawls the page?

Google knows the URL exists but has deprioritized crawling it, usually because of limited crawl budget or low site authority. Strengthen internal links to the page, ensure it's in a submitted sitemap, and reduce crawl waste from faceted collection URLs. This status often resolves on its own as the site earns more trust.

Could a password-protected store be blocking indexing?

Yes. If your Shopify store still has password protection enabled under Online Store preferences, Google cannot access any storefront page, and nothing will be indexed. Run Test Live URL in URL Inspection; if it can't fetch the page, check your password setting. Disable it once you are ready to go public.

2026 Standard

Run a Free AI Citation Audit

Are you in the AI Overview? Get a free report showing how often ChatGPT, Claude, and Gemini cite your brand, plus the 3 blockers preventing your discovery in 2026.

No spam. 1-click unsubscribe. Join 1,200+ SEO teams managing the GEO pivot.

Put These Tips Into Action

Connect your Google Search Console and let our AI find your biggest opportunities.

Get Started Free