Every status in Search Console's Page indexing report β€” and what it means for a Shopify product page

Short answer. Search Console's Page indexing report sorts every URL Google knows about into one of eighteen documented states: fifteen reasons a page was not indexed, two warnings on pages that were indexed anyway, and one clean pass. On a Shopify store most of that list is duplicate surfaces and system URLs behaving normally. Only a handful of the eighteen can hide a product you are actively selling, and those are the ones to read first.

The first time a merchant opens Indexing β†’ Pages in Search Console, the number at the top tends to be alarming and tends to mean very little. Stores routinely see far more URLs under "Not indexed" than they have products, because Shopify generates alternate views of pages you already have β€” and each of those views is a URL Google has to make a decision about. The report is not telling you that you lost those pages. It is telling you it saw those URLs and filed each one somewhere.

What that screen is bad at is separating those two things. Every reason is presented with the same visual weight, so "Alternate page with proper canonical tag" β€” which is the system working exactly as intended β€” sits directly above "URL marked 'noindex'", which on a live product page means you have stopped selling that product on Google without knowing it. This page is the translation layer: every status Google documents, what produces it on Shopify specifically, and whether it deserves your attention.

What the report is actually counting

Every status quoted on this page is taken verbatim from Google's documentation for the Page indexing report, read on 15 August 2026. Google adjusts the list over time, so treat the labels here as current-as-of that date rather than permanent. Three properties of the report explain most of the confusion around it.

It is URL-level, not product-level. One product can appear under several reasons at once β€” as /products/handle, as /collections/summer/products/handle, as /products/handle?variant=123. Counting rows and comparing that to your product count produces a number with no meaning.

It is an aggregate that lags. The report groups URLs by the state Google last recorded for them. A page can be repaired, recrawled and reindexed while its old grouping is still on screen. This is why a merchant on the Shopify Community, opening a URL from the "Crawled - currently not indexed" list and inspecting it, found the inspection saying the page was indexed and wrote in August 2024: "So im confused, is it indexed or not?" Both screens were right about different moments.

URL Inspection is not live either, unless you ask it to be. Google is explicit that the inspection result is "from most recently indexed version of a page, not the live version on the web", and that pressing Test live URL is what makes it "a live test: the tool fetches and examines the URL in real time" (URL Inspection tool). When the report, the inspection and the live test disagree, they are three timestamps, not three opinions.

The statuses that are normal on a Shopify store

These five account for the bulk of a typical store's "Not indexed" count. Each of them can still hide a genuine problem, so each entry below says what the exception looks like.

Alternate page with proper canonical tag

Google's definition: "This page is marked as an alternate of another page… This page correctly points to the canonical page, which is indexed." On Shopify this is mostly variant URLs (?variant=) and collection-scoped product URLs, all pointing back at the clean /products/handle. It is the duplicate-URL system working. The exception: if the canonical target listed is a different product, or your .myshopify.com domain, the pointer is wrong rather than the page.

Page with redirect

Google defines it as "This is a non-canonical URL that redirects to another page." Stores accumulate these through handle changes, seasonal URL cleanups and merges. Google indexes the destination instead, which is the intended outcome. The exception: a redirect that sends a product URL to your homepage or a collection rather than to a replacement product β€” that pattern also costs you the Merchant Center listing behind it.

Duplicate without user-selected canonical

The documented meaning: "This page is a duplicate of another page, although it doesn't indicate a preferred canonical page. Google has chosen the other page as the canonical for this page, and so will not serve this page in Search." On Shopify these are usually parameter URLs generated by apps and internal recommendation widgets. The practitioner Ilana Davis, writing about when to ignore Search Console indexing issues on Shopify, singles out URLs containing wpm or web-pixel-shopify-custom-pixel as safe to disregard, along with ?pr_prod_strat= parameters. That is good advice and worth applying before you read anything else in the report.

URL blocked by robots.txt

Google's definition: "This page was blocked by your site's robots.txt file." Shopify ships a default robots.txt.liquid that already blocks /admin, /cart, /checkout, /search, /policies/ and filtered collection URLs of the form /collections/*+*, per Shopify's own documentation on editing robots.txt.liquid. Those entries are correct and permanent. The exception is the one that matters most in this whole report: a /products/ URL in this group means something added a rule. Shopify's documentation warns that "Incorrect use of the feature can result in loss of all traffic", and because the file lives in the theme, it changes when the theme does. Full mechanism: your Shopify robots.txt is blocking products from Google.

Discovered - currently not indexed

Google is unusually specific about this one: "The page was found by Google, but not crawled yet. Typically, Google wanted to crawl the URL but this was expected to overload the site; therefore Google rescheduled the crawl." On a young store, or right after a large catalog import, this is a queue rather than a verdict β€” Google knows the URL and has not got to it. The exception: product URLs sitting here for weeks while the rest of the catalog is crawled normally usually means the crawler is spending its visits on parameter URLs instead.

Want to know which of your product URLs are actually affected? We check every product page in your public catalog for the causes behind these statuses β€” noindex directives, blocked paths, broken canonicals, dead handles β€” and tell you which live, for-sale products are hit. Read-only, no admin access, about 2 minutes. β†’ free scan

The statuses that mean a product may be genuinely invisible

Anything below, attached to a URL for a product you are currently selling, is worth acting on the day you see it.

URL marked 'noindex'

Google's definition: "When Google tried to index the page it encountered a 'noindex' directive and therefore did not index it." This is the single most consequential entry in the report for a Shopify store, because nothing in Shopify admin surfaces it: the product stays active, priced and purchasable. Shopify documents two ways to apply it β€” a theme conditional wrapping <meta name="robots" content="noindex">, and a seo.hidden custom metafield that applies to "products, pages, or blog posts". Both survive a CSV import and both can be set by an app. Across our full-catalog scans of more than 90,000 Shopify product pages, a noindex on live product pages is among the most common critical findings we see. Full mechanism: the phantom noindex.

Not found (404)

Google's definition: "This page returned a 404 error when requested." For a genuinely discontinued product this is correct and needs nothing. It is a problem in two cases: a handle that was renamed rather than retired, and a product deleted while it still had rankings and inbound links β€” Shopify does not create a redirect when you delete. See deleted Shopify product still showing on Google.

Soft 404

Google describes it as "The page request returns what we think is a soft 404 response. This means that it returns a user-friendly 'not found' message but not a 404 HTTP response code." On a storefront this usually comes from a theme or app rendering an "unavailable" or empty state on a URL that still answers with HTTP 200 β€” the page says gone, the server says fine, and Google trusts neither.

Server error (5xx)

Google's definition: "Your server returned a 500-level error when the page was requested." Shopify's own infrastructure rarely produces these on product pages; when a store sees them at volume they typically trace to an app proxy or a third-party endpoint the theme calls during rendering. Worth checking whether the errors cluster around one app's install date.

Redirect error

Google's definition covers "A redirect chain that was too long, A redirect loop, A redirect URL that eventually exceeded the max URL length, A bad or empty URL in the redirect chain." Redirect loops on a storefront are usually two systems each trying to be authoritative β€” a URL redirect rule in Shopify admin pointing one way and an app or locale rule pointing back.

Blocked due to unauthorized request (401)

Google's definition: "The page was blocked to Googlebot by a request for authorization." On a live storefront these normally point at URLs sitting behind an authorization layer rather than at the storefront itself β€” a staging or preview environment, or an app proxy path. Note that a password-protected store is a separate mechanism: Shopify states that while the password page is active, "search engines find and display only the password page of your online store" and other pages "are hidden and aren't displayed in search results" (Shopify, password page).

Blocked due to access forbidden (403)

The documented meaning: "HTTP 403 means that the user agent provided credentials, but was not granted access." On a storefront, a 403 reaching Googlebot on a product URL usually means something between Google and your theme is filtering the request β€” a bot-management or firewall layer applied to the domain rather than a Shopify setting.

URL blocked due to other 4xx issue

Google calls it "The server encountered a 4xx error not covered by any other issue type." This is the catch-all, and its usefulness is that it is rare. A product URL landing here is worth inspecting individually rather than pattern-matching, because whatever produced it did not fit any of the known shapes.

Crawled - currently not indexed

The documentation gives it one line: "The page was crawled by Google but not indexed." Nothing blocked it β€” Googlebot read the page and declined. This status frightens merchants more than any other and is mostly noise on Shopify, because the URLs listed are usually duplicate surfaces. The work is entirely in filtering: we wrote a full breakdown of "Crawled - currently not indexed" on Shopify products, including how to tell a duplicate surface from a real product page that failed to make the index.

Duplicate, Google chose different canonical than user

Google's definition: "This page is marked as canonical for a set of pages, but Google thinks another URL makes a better canonical." On Shopify this is structural: Shopify's own Liquid documentation warns that "a standard product page and a product page in the context of a collection have the same content on separate URLs" and tells developers to consider the SEO implications of the within filter. When most theme links point at the collection-scoped URL, Google follows the internal linking rather than your canonical tag. See user-declared canonical vs Google-selected on Shopify.

Indexed, but with something attached

Indexed, though blocked by robots.txt

Google's definition: "The page was indexed despite being blocked by your website's robots.txt file. Google always respects robots.txt, but this doesn't necessarily prevent indexing if someone else links to your page." The practical consequence is a result Google cannot describe, because it never read the page. If the URL is a product, the fix is to unblock it β€” not to add a noindex, which Googlebot would never be allowed to fetch.

Page indexed without content

Google's wording: "This page appears in the Google index, but for some reason Google could not read the content. Possible reasons are that the page might be cloaked to Google or the page might be in a format that Google can't index." Rare, and serious when it happens to a product page: the URL is in the index carrying nothing to rank. Run the live test to see what Googlebot actually receives.

Page is indexed

The clean pass. It is worth saying plainly that this status says nothing about whether the page ranks, whether it shows a price, whether it has review stars, or whether Merchant Center has approved the matching listing. Those are decided elsewhere, which is the reason the eleven ways a Shopify product stops showing on Google do not all appear in this report at all.

How to read the report on your own store

  1. Read the reason, not the total. Open Indexing β†’ Pages and ignore the headline count entirely. The list of reasons underneath it is where the difference between noise and a real failure is stored.
  2. Filter each reason down to product URLs. Open a reason and look only for URLs containing /products/. Discard anything carrying wpm, web-pixel-shopify-custom-pixel, ?variant= or ?pr_prod_strat=, and discard /cart, /checkout, /search and /policies/.
  3. Check the survivors against your live catalog. For every product URL still standing, confirm in Shopify admin whether that product is active and for sale. A discontinued product under "Not found (404)" is expected. A product you sold this morning is not.
  4. Inspect one affected URL, then test it live. Run URL Inspection to see the indexed state and the Google-selected canonical, then press Test live URL. If they disagree, the fix has already landed and the report has not caught up.
  5. Match the status to its cause and fix the mechanism. Use the entries above to get from the label to the thing that produced it β€” a noindex directive, a Disallow rule, a dead handle, a collection-scoped duplicate. Then use Validate fix so Google rechecks the group rather than waiting for a natural recrawl.

Ten minutes of that, done properly, will tell you more than any headline number in the report.

Why this list is a monitoring problem

Every status above describes a state Google recorded at some point in the past, on the URLs it happened to have looked at. Nothing in it is triggered by the event that caused the change. A theme update that reintroduces a Disallow line, an app that writes a seo.hidden metafield across a collection, a bulk handle rename during a catalog cleanup β€” each of those is routine work, each is invisible in Shopify admin, and each shows up here days or weeks later as a row you have to notice among thousands.

That is the honest reason this reference exists. Reading the report once and cleaning it up is genuinely worth doing. But the report will look different next month for reasons nobody logged, and the merchants who get hurt are not the ones who never read it β€” they are the ones who read it in March and had no reason to read it again in July. In our full-catalog scans across more than 90,000 Shopify product pages, roughly 46% of stores carry at least one critical Google visibility issue and roughly 73% carry at least one critical or warning. Almost none of those stores knew.

Next in this cluster

Want to know which of these statuses are hitting products you actually sell?

Scan my store for free