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.
Submit · monitor coverage · official methods only
Indexed pages, week by week
Coverage report78%
Coverage, up from 64%
41 min
Avg time to index
What a check returns
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
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.
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
Not indexed yet
/blog/seo-guide-2026 is discovered but not indexed
thin content signal, queued for re-crawl via the Indexing API
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
- Best Index Checker for Shopify Stores with Large Catalogs The right checker for a Shopify catalog is decided by URL count multiplied by recheck cadence. What Rapid Index Checker, IndexCheckr and Search Console cost against a 4,440 URL store, checked September 2026.
- Crawled Currently Not Indexed Causes and Fixes Crawled currently not indexed means Google read your page but chose not to index it. Here are the real causes around quality and how to get the page indexed.
- How to Check if a URL Is Indexed at Scale How to check if a URL is indexed on Google at scale: the URL Inspection API, why the site: operator fails, and how to verify thousands of URLs without guessing.
- Best Index Monitoring Software for Small Business Search Console samples 1,000 URLs and lags three to four days. Four index monitoring tools compared for sites under a few thousand pages, with what each one misses.
Good questions
Questions about shopify indexing
Explore more
More ways teams get every page indexed
Google indexing for publishers
Get breaking and evergreen content indexed while it still matters.
Learn moreSEO agency indexing tool
One coverage view across every client property, not thirty separate logins.
Learn moreBlog indexing
Get every blog post indexed while the topic is still fresh, and know when one is missing.
Learn moreStop 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.
Google Indexing API · Bing IndexNow · sitemaps · coverage monitoring · official methods only