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
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.
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.
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.
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.
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.
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.
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.
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.
Free. We reply within one business day.
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.
Services that fix it for good
Related problems, answers and terms
Stop the leak.
A free Growth Analysis finds what is broken and ranks it by the revenue it costs you.