Skip to content

Problem

Product pages not indexed by Google: how to fix it

Search Console gives a different status for each reason a product page is missing, and each status has one repair. Before changing anything, inspect a sample of the missing pages and write down which status each one carries. Half the time the answer is a directive or a canonical pointing somewhere else, which takes minutes. The other half is a content and linking problem that takes real work.

By CartKernel · Last reviewed 2026-09-07

Does this look familiar?

  • Products cannot be found in search even by their exact full name
  • The page report shows product addresses under an excluded status rather than indexed
  • Some variants of a product are indexed and others are not
  • Pages appeared in search and then dropped out over a few weeks
  • Out of stock or seasonal products fell out of the index and did not return
  • The inspection tool reports a canonical Google chose that is not the address you submitted

Causes, ranked

Why it happens, most common first

Check them in this order. The first two account for most cases we open.

  • most common

    A canonical points the page somewhere else

    Themes, apps and variant handling can set a canonical to a parent product, a collection or another variant. The page is then treated as a version of that target rather than a destination, and it will not be indexed separately no matter how good it is.

  • most common

    The page carries an indexing directive that excludes it

    A directive left over from a staging environment, applied by an app to out of stock products, or set on a whole template by a plugin will keep pages out of the index. It is easy to miss because it is invisible to shoppers and lives in the page head or the response headers.

  • common

    The content is too close to other pages to be worth indexing

    Products described with supplier text, variants that differ by one attribute, or bundles that repeat the same description all look like copies of something already indexed. Google crawls them and declines. This is the usual explanation behind a crawled but not indexed status.

  • common

    The pages are barely linked from the site

    Products only reachable through the sitemap, or buried deep in a paginated collection, receive little internal signal. Weak internal linking affects both whether a page is crawled and whether it is judged important enough to keep.

  • occasional

    Product content depends on rendering that does not complete

    Where descriptions, prices and structured data are added by scripts, a rendering failure leaves an almost empty page. This affects headless builds and heavily scripted themes, and the page source will look fine while the rendered output does not.

  • occasional

    Out of stock handling removes the page

    Stores that redirect, unpublish or exclude out of stock products lose the index position they had built. When the product returns, the page starts again from nothing. Seasonal catalogues repeat this cycle every year without meaning to.

The fix

In this order

Each step is something you can do today. Do them in sequence; skipping ahead is how a review fails twice.

Prevent it next time

  • Include a canonical and indexing directive check in the release test for theme and app changes
  • Write product copy that carries at least one fact no supplier description would include
  • Keep temporarily unavailable products published with clear availability and alternatives
  • Review the page indexing report monthly and investigate any status that grows
  1. Inspect a sample and record the exact status

    Take ten missing product pages, run each through the inspection tool, and note the status, the canonical Google selected and the last crawl date. Group the sample by status. Everything after this step depends on which statuses dominate.

  2. Check the rendered page, not the source

    Use the live test to see what Google actually renders, and confirm the description, price, availability and structured data are present there. If the rendered version is empty, the fix is server rendering or a static fallback rather than anything in the content.

  3. Correct canonicals so each product points at itself

    Make the canonical on a product page the clean product address without parameters. Where variants have their own pages that you want indexed, each must be self canonical and differentiated. Where they should not be, canonicalise them to the parent deliberately rather than by accident.

  4. Remove indexing directives that should not be there

    Search the theme, apps and server configuration for directives applied to product templates, and check response headers as well as the page head. Remove any that came from staging, from an out of stock rule or from a plugin default.

  5. Make the content specific to the product

    Replace supplier descriptions with copy that carries information only you have: fit and sizing detail, materials, compatibility, what is in the box, and answers to the questions your support team receives. Add attributes and specifications as structured content rather than prose.

  6. Strengthen internal links to the affected products

    Place each product in the right collections, add it to related product and complete the look modules, link it from relevant guides, and keep collection pagination shallow so no product sits far from a linked page.

  7. Keep out of stock pages alive

    Leave the page published when a product is temporarily unavailable, show the availability clearly, offer alternatives and a restock notification, and only redirect when a product is permanently discontinued and has a genuine replacement.

  8. Recheck the sample after a crawl cycle

    Re-inspect the same ten pages after a few weeks and see whether the status changed. Use that sample as the measure of whether the fix worked before rolling the change across the whole catalogue.

When to get help

It is worth getting help when a large share of the catalogue is affected, when the store runs a headless or heavily scripted front end where rendering is the suspect, or when products keep dropping out and returning without an obvious pattern. Those cases need a crawl, a rendering audit and a log review together, and the fix is often architectural. Bringing someone in early avoids the common outcome of rewriting hundreds of descriptions when the actual blocker was one directive on a template.

Get a Growth Analysis

Free. We reply within one business day.

Questions

Asked alongside this problem

By CartKernel · Last reviewed

Should every product variant have its own indexed page?

Only where people search for the variant specifically, such as a distinct colourway or a size that is a category in its own right. Otherwise keep one indexed product page with variants selectable on it. Indexing near identical variants splits signals and creates exactly the duplication that keeps pages out of the index.

Does structured data help a product page get indexed?

It does not cause indexing, and adding it will not rescue a page excluded by a directive or a canonical. What it does is make an indexed page eligible for richer presentation in results. Fix indexing first, then add structured data that matches what is visible on the page.

My product pages were indexed and then disappeared. Why?

Common causes are a theme or app change that introduced a directive or canonical, a bulk edit that made descriptions identical, an out of stock rule that unpublished them, or a site wide quality reassessment after a large catalogue import. Check the change history around the date the drop began.

How many products should I fix before checking whether it worked?

Take a sample of ten to twenty covering the main statuses, apply the fix to those, and wait for a crawl cycle. Rolling a change across thousands of pages before confirming it works risks repeating a mistake at scale and makes the result impossible to attribute.

Related problems, answers and terms

All problems
ProblemDiscovered currently not indexed on an ecommerce site: how to fix itDiscovered currently not indexed means Google found the URL and chose not to crawl it yet. On a store, that is usually a crawl priority problem.OpenProblemShopify duplicate product URLs: how to fix itShopify duplicate product URLs come from collection paths, variant parameters and tag pages. What to canonicalise, what to link, what to block.OpenProblemProduct rich results not showing: how to fix itProduct rich results not showing usually means invalid markup, mismatched data or an ineligible page. Validate, align and then wait for a recrawl.OpenProblemFaceted navigation URLs indexed: how to fix itFaceted navigation URLs indexed means filter combinations are competing with your category pages. Decide which facets earn a page, then control the rest.OpenAnswerShould out-of-stock product pages be deleted?Deleting an out-of-stock product page throws away the links and rankings it earned. What to keep, what to redirect, and how the feed differs.OpenAnswerAre manufacturer product descriptions bad for SEO?Manufacturer product descriptions are not penalised, but they leave your page identical to every other retailer's. What to keep and what to add.OpenGlossaryCanonical tagA canonical tag tells search engines which URL is the preferred version of duplicate pages. Worked URL pair, why it is a hint, and where stores misuse it.OpenGlossaryProduct structured dataProduct structured data describes a product page to search engines in machine readable form. Worked field list, what it enables, and where it goes wrong.Open

Stop the leak.

A free Growth Analysis finds what is broken and ranks it by the revenue it costs you.