indexing.io
How it works Pricing Blog Sign in

By team & scale · Shopify indexing

Shopify Indexing Tool That Gets Product and Collection Pages Indexed When Your Store Is Not Showing on Google

A Shopify catalog is a difficult shape for search engines. One product can be reachable at half a dozen URLs, the theme regenerates internal links every time a collection changes, and the sitemap updates the instant you publish rather than when Google is ready to look. So a store with 4,000 SKUs routinely has several hundred product pages Google has never kept, and nobody notices because the storefront looks fine to a human.

or check your coverage on a sample site

Submit · monitor coverage · official methods only

Try

Indexed pages, week by week

Coverage report

78%

Coverage, up from 64%

41 min

Avg time to index

Week 1Week 4Week 8
Submitted through official channels Left to crawl on its own

What a check returns

Noindex Blocked in robots.txt Canonical elsewhere Ready to submit

Every URL gets a plain-English reason when a search engine will not index it, and the rest go out through the official channels.

Paste your sitemap and we count every URL it lists, then check a sample of your pages before we submit through the official Google Indexing API and Bing IndexNow.

We could not check that one

Crawlable

checked

Submitting via

Ready to submit

Need a fix first

We fetch the address you paste and read what a crawler sees · nothing is submitted to a search engine from this check

Index status itself comes from Search Console, which you connect on a plan · official Google Indexing API · Bing IndexNow · verified sitemaps · no spam, no PBNs

In short

A Shopify store that is not showing on Google almost always has one of four causes, and only one of them needs a paid tool. Work through them in this order. First, the store is still password protected: Shopify states that a sitemap reader such as Google "can't access it if your website is set to private mode". Second, the products are set to unlisted or carry the seo.hidden metafield, which Shopify says hides them "from sitemaps, search engines, and your online store search". Third, Google crawled the product page and declined it, which is a thin or duplicated description problem rather than an indexing problem. Fourth, Google found the collection scoped URL /collections/name/products/handle rather than the clean /products/handle, so your internal links and your canonical tag disagree. Indexing reads your Shopify sitemap, checks every product, collection, page and article URL against Google and Bing, names which of those four is happening per URL, and submits the ones that are genuinely just waiting through the official Google Indexing API and IndexNow.

Search Console is the authoritative place to find out, and it will not give you the list. Google caps the example URL list in the Page indexing report at 1,000 items and says plainly it is not guaranteed to show every URL in a status even when there are fewer than 1,000 of them. On a large catalog that means the coverage picture you are reading is a sample. The products missing from the sample are exactly the ones you cannot find.

Indexing works from the file Shopify already generates for you. Shopify says sitemap files are generated automatically and live at the root of your store, such as example.com/sitemap.xml, linking out to separate files for your products, collections, blogs and webpages. Connect that, and every URL in it gets checked against both Google and Bing on a schedule, with a plain-English reason attached to each one that is missing and official submission for the pages where submission is the actual blocker. No PBNs, no ping spam, and no claim that we can force Google to keep a product page, because Google decides that after it crawls.

Google API IndexNow Sitemaps Coverage Re-crawl

Official methods only

White hat · no spam, no PBNs

Why it works

What your team gets with Shopify indexing

Reads the sitemap Shopify already builds

No app install and no theme edit. Point us at example.com/sitemap.xml and we follow it down into the product, collection, blog and page files Shopify generates, then check every URL in them.

Tells you which of the four causes it is

Password mode, hidden by metafield, crawled and declined, or the wrong URL claimed as canonical. Each missing product comes back labelled, because the fix for each one is completely different.

Submits only what submission can help

Pages Google has never fetched go out through the official Google Indexing API and Bing IndexNow. Pages Google fetched and rejected do not, because resubmitting those is the most common way money gets wasted here.

What it handles

Submitted, monitored and fixed, automatically

Indexing submits your URLs through the official Google Indexing API, Bing IndexNow and clean XML sitemaps, watches coverage across both engines, and flags any page that drops out with a plain-English reason so you can resubmit and get it back.

  • Sweeps the Shopify sitemap on a schedule and flags products that fell out of the index
  • Separates never crawled from crawled and declined, per URL, in plain English
  • Catches collection scoped /collections/x/products/y URLs competing with your clean product URLs
  • Checks Bing as well as Google, which Shopify apps almost never do
  • Submits eligible URLs through the official Google Indexing API and Bing IndexNow
  • Tracks how long new products take to appear, so seasonal launches can be planned around it
Coverage Live

Not indexed yet

/blog/seo-guide-2026 is discovered but not indexed

crawled, not indexed resubmit

thin content signal, queued for re-crawl via the Indexing API

1 Submitted to Google Indexing API OK
2 Pinged Bing via IndexNow OK
Google + Bing · one status Official · white hat

Why Indexing

One place to submit, monitor and fix coverage

Not a black-hat indexer that risks your site, not a free checker that only tells you the bad news. Indexing unifies official submission and live coverage monitoring, the white-hat way, across Google and Bing.

Submits the official way

Bulk-submit through the Google Indexing API, Bing IndexNow and clean XML sitemaps. We speed discovery and re-crawl using methods the engines support, never spam, PBNs or black-hat tricks.

Monitors coverage live

You do not refresh a search bar one URL at a time. Indexing watches which pages are in Google and Bing, catches anything that drops out, and tracks time-to-index across your whole site.

Diagnoses and resubmits

Every non-indexed page comes with a plain-English reason, then auto-resubmits through the official API so it gets another shot. Google still decides, but nothing waits in the dark.

At a glance

Why Shopify pages stay out of Google, and what each cause actually needs

Five causes in the order they are worth checking. Four of them are free to fix yourself, and we would rather you fixed them than bought anything.

What is happening How to confirm it in under an hour What actually fixes it
Store is password protected Open your store in a private browser window. If you get the password page, Google gets something similar. Shopify states a sitemap reader such as Google cannot access your sitemap if the site is set to private mode. Turn off password protection in Online Store preferences. Nothing else on this list matters until you do, and no tool can work around it.
Products are unlisted or hidden by metafield Fetch example.com/sitemap_products_1.xml and search it for the missing handle. If it is not there, Shopify is deliberately excluding it. Set the product status back to active and listed, or clear the seo.hidden metafield. Shopify says both hide the item from sitemaps, search engines and your online store search.
Google has never fetched the page URL Inspection in Search Console says Discovered, currently not indexed, or has no crawl date at all. This is the one case where submission genuinely helps. Sitemap plus internal links from collections that already get crawled, plus official submission through the Indexing API and IndexNow.
Google fetched it and declined it URL Inspection says Crawled, currently not indexed. The page has a crawl date and still is not in the index. Editorial, not technical. Manufacturer description used verbatim across a thousand stores is the usual reason. Resubmitting a declined URL changes nothing, because the input did not change.
Collection scoped duplicate claimed instead Search Google for site:yourstore.com/collections/ and see whether product URLs appear under a collection path. Shopify canonicalizes to the clean /products/handle, but themes using the within: current_collection filter still link to the collection path everywhere. Point internal product links at the clean URL so links and canonical agree.

Why is my Shopify website not showing in Google search?

If the whole store is missing rather than a handful of products, it is almost never an SEO problem. Two causes account for most of it, and both are free to fix in a few minutes.

The first is password protection. Shopify is unambiguous about the consequence: a sitemap reader such as Google cannot access your sitemap if your website is set to private mode. Stores get launched with the password still on more often than anyone admits, usually because the theme was still being finished when the domain went live, and the store then sits invisible for weeks while everyone assumes Google is being slow.

The second is that the store is genuinely new and Google has not got to it yet. Google says it automatically looks for sites to add to its index and that you usually do not need to do anything except post your site on the web, but also warns it can take a few weeks for Google to notice a new site. A few weeks is normal. Two months with a submitted sitemap and some inbound links is not, and that is worth investigating rather than waiting out.

The order matters because everything else on this page is downstream of both. Do not buy an indexing tool, install a Shopify SEO app, or start rewriting product descriptions until you have opened the storefront in a private browser window and confirmed a stranger can reach it. That single check resolves a surprising share of the stores that arrive convinced they have been penalized.

  • Open the storefront in a private window: if you see a password page, so does Google.
  • Fetch example.com/sitemap.xml directly and confirm it returns XML rather than a login.
  • Confirm the domain in Search Console is the one customers actually visit, not the .myshopify.com one.
  • Allow a few weeks for a genuinely new store before treating slowness as a fault.
  • Only then start diagnosing individual products.

The collection URL problem, and why fixing the canonical tag alone rarely clears it

Shopify serves the same product at two routes by default: the clean /products/handle, and the collection scoped /collections/collection-name/products/handle. A product sitting in five collections therefore has six URLs rendering identical content. Shopify sets the canonical to the clean product URL, which is the correct behavior and is why most stores never think about this again.

The trouble is what your theme links to. Themes that build product links with the within: current_collection Liquid filter generate the collection path on every card in every collection grid. So your internal linking, which is one of the strongest signals you control, points at the URL you have simultaneously told Google to ignore. Google generally honors the canonical, but a canonical is a signal rather than an instruction, and when hundreds of internal links contradict it the outcome gets less predictable, particularly on large catalogs where crawl attention is spread thin.

The clean fix is editing the theme so product links resolve to the canonical URL rather than the collection scoped one, which usually means removing the within filter from the product card snippet. It is a small change with an unusually large surface: it touches every collection page at once, so test it on a duplicate theme first. If you are not comfortable in Liquid, a Shopify developer will do it in under an hour and it is worth the money on any catalog above a few hundred products.

What this problem is not is an indexing problem, and it is worth being clear about that before you shop. No submission tool clears it, because both URLs are perfectly indexable and Google is not confused about whether they exist. It is a signal consistency problem, and the only lever is the theme. What a monitoring tool contributes is noticing it: seeing collection scoped URLs turn up in the index while the clean equivalents do not is how most stores find out this is happening at all.

  • Default Shopify routes: /products/handle and /collections/name/products/handle.
  • Shopify canonicalizes to the clean /products/handle.
  • Themes using within: current_collection still link to the collection path everywhere.
  • A canonical is a signal, not an instruction, so contradicting it at scale is risky.
  • The fix is a theme edit, not a submission. Test on a duplicate theme first.

Crawled and not indexed is the one a Shopify store should expect, and it is not a bug

Once a catalog passes a few thousand SKUs, some proportion of product pages will come back as Crawled, currently not indexed, and it is worth understanding why before treating it as a fault. Google fetched the page, read it, and decided not to include it. On ecommerce that decision is usually about the description.

Most Shopify stores that sell other people's products use the manufacturer copy. So does every other retailer selling the same item. From Google's side the page is one of several hundred near-identical documents with a different logo, and keeping all of them serves nobody. That is not a penalty and there is no technical remedy for it. Rewriting the descriptions on the products that actually earn money is the remedy, and it works, which is why it is worth knowing which products are affected rather than guessing.

The distinction that saves money is between this and Discovered, currently not indexed. Discovered means Google knows the URL exists but has not fetched it, which is a discovery and crawl capacity problem, and submission genuinely helps. Crawled means the fetch already happened and the answer was no. Submitting a crawled and declined URL again is the single most common way budget is burned in this category, because the loop can run indefinitely while the page never changes.

One more thing worth watching on a busy store: Google documents that its crawl limit goes down if a site slows down or responds with server errors, and that 5xx and 429 responses prompt its crawlers to temporarily slow down. Flash sales, app bloat and heavy third party scripts all push response times up, so a storefront that gets slow under load can quietly reduce how much of its own catalog gets crawled. Uptime and response time monitoring is cheap insurance next to that, and the two problems look identical from Search Console.

  • Discovered, currently not indexed: never fetched. Submission helps.
  • Crawled, currently not indexed: fetched and declined. Submission does not help.
  • Duplicated manufacturer descriptions are the usual cause on ecommerce.
  • Rewrite descriptions on the products with revenue attached, not all of them.
  • Google says 5xx and 429 responses make its crawlers temporarily slow down.

Keep reading

Good questions

Questions about shopify indexing

Check four things in order. Is the store still password protected, which Shopify says stops Google reaching your sitemap at all. Are the products set to unlisted or hidden by the seo.hidden metafield, which removes them from the sitemap. Has Google fetched the page yet, which URL Inspection will tell you. And is Google seeing the collection scoped URL instead of the clean product URL. Each one has a completely different fix, so identifying which applies matters more than any tool.
Turn off password protection, verify your live domain in Search Console, and submit sitemap.xml under Indexing then Sitemaps. Shopify generates that file automatically at the root of your store and links it to separate files for products, collections, blogs and webpages. After that, indexing follows discovery and quality: internal links from collections Google already crawls regularly, and product descriptions that are not identical to every other retailer selling the item.
No. Shopify generates and maintains the sitemap for you at example.com/sitemap.xml, but submitting it is your job. Verify the domain in Search Console, open Indexing then Sitemaps, enter sitemap.xml and submit. If you run international domains, repeat it for each one, because each domain has its own sitemap file and Search Console treats them as separate properties.
For a brand new store, Google warns it can take a few weeks to notice a new site at all. Individual products on an established store that already gets crawled regularly usually appear far faster, often within days, because Google is already visiting your collection pages and picking up new links from them. Anything past a couple of months with a submitted sitemap and some inbound links is worth diagnosing rather than waiting out.
Because your theme links to them. Shopify serves each product at both /products/handle and /collections/name/products/handle, and canonicalizes to the clean one, but themes using the within: current_collection filter link to the collection path on every product card. Google sees hundreds of internal links pointing one way and a canonical pointing the other. The fix is a theme edit so product links use the clean URL, not a submission tool.
Usually not. The four common causes are password mode, hidden products, crawl declines and collection URL duplication, and none of them is fixed by an app install. What is genuinely hard without a tool is knowing which products are affected, because Search Console caps its example URL list at 1,000 items and states it is not guaranteed to show every URL in a status. On a large catalog that is a sample, not a list.
No, and treat any vendor that says otherwise as making a claim about a decision it does not control. Google indexes a page after crawling it and on the merits of the page. What a tool can honestly do is check every URL in your catalog against Google and Bing, tell you which of the known causes applies to each miss, submit the ones where submission is the actual blocker through official channels, and tell you when a product that was indexed quietly drops back out.

Explore more

More ways teams get every page indexed

Stop guessing. Get every page indexed and keep it that way.

Bulk-submit your URLs through the official Google and Bing channels, monitor coverage, and resubmit anything that drops out, automatically. White hat only, so we speed discovery without ever guaranteeing what Google chooses to index.

See pricing

Google Indexing API · Bing IndexNow · sitemaps · coverage monitoring · official methods only