Skip to content
All posts
SEO & AEOError Monitoring

Product rich results not showing in Google? How to fix structured data errors costing you eCommerce clicks

Dan Garner··Updated 8 September 2026
Product rich results not showing in Google? How to fix structured data errors costing you eCommerce clicks

Product rich results may not show in Google because Google never guarantees rich results even if your structured data is completely valid and error-free. Passing the Rich Results Test is necessary but not sufficient. The most common reason is a gap between valid markup and actual eligibility: using AggregateOffer for product variants instead of Offer, missing AggregateRating or Review, markup that does not match the visible page content, or silent breaks after theme and app updates. To fix this, audit individual product pages with the Rich Results Test, correct the Offer structure, ensure content matches the schema, and monitor continuously so regressions are caught before they cost clicks.

If your product pages have structured data but are not generating rich results in Google Search, no price, no availability badge, no review stars, the most likely cause is a gap between schema validity and Google's rich result eligibility requirements. Passing the Rich Results Test is necessary but not sufficient. Google requires specific property combinations, correct Offer types, and page-level quality signals that most eCommerce platforms and plugins do not enforce by default.

Recognisable symptoms

You're likely dealing with this problem if:

  • Product pages pass the Rich Results Test with no errors, but rich results never appear in search
  • Some products show rich results, but others don't, with no obvious pattern
  • Rich results disappeared after a theme update, app installation, or platform migration
  • Google Search Console shows "valid" Product structured data, but the Enhancement report shows warnings or declining valid items.s
  • Competitor product listings show price, stars, and availability in Google results while yours show plain blue links.
  • Click-through rates on product pages are lower than expected despite good ranking positions.

Why valid structured data doesn't guarantee rich results

The eligibility gap most merchants don't know about

There's a critical difference between valid structured data and eligible structured data:

  • Valid means the markup has no syntax errors, properties are correctly nested, types are recognised, and values are properly formatted.
  • Eligible means the markup contains all the required properties for a specific rich result type, uses the correct sub-types, matches the visible page content, and meets Google's page-level quality criteria.

Most eCommerce platforms generate valid Product schema by default. But rich result eligibility requires more. According to Google's structured data documentation (updated 2026), product rich results specifically require:

  • Offer (not AggregateOffer) with price and priceCurrency properties
  • Either AggregateRating or at least one Review for star ratings to display
  • availability using schema.org enumeration values (e.g., https://schema.org/InStock)
  • name and image properties on the Product itself

Google explicitly states not to use AggregateOffer to describe a set of product variants. Many themes and plugins still generate AggregateOffer by default for multi-variant products, which can prevent price display in certain rich result experiences. Note that Google does not guarantee rich results even when pages are fully eligible.

Seven common causes of rich result failure

1. Using AggregateOffer instead of Offer for variants: When a product has multiple sizes or colours at different prices, many platforms wrap the price range in an AggregateOffer. r. Google recommends against using AggregateOffer for product variants. Each variant should generate its own Offer with a specific price, or use a single Offer with the lowest price where appropriate.

2. Missing AggregateRating or Review: Price and availability rich results can appear without reviews, but the star rating display (which has the biggest visual impact on click-through rate) requires either AggregateRating or Review markup. If your review app generates reviews but does not inject the corresponding schema, you miss the most visible rich result element.

3. Structured data doesn't match visible page content: Google compares your markup values against what's visible on the page. If your structured data says the price is $29.99 but the page displays $34.99 (because of a currency conversion, a promotion, or a variant default), Google will suppress the rich result rather than show inconsistent data.

4. Canonical URL mismatch: If your product page's canonical URL points to a different URL than the one Google indexed, or if variant URLs generate their own canonical tags that conflict with the main product URL, Google may not associate the structured data with the indexed page.

5. Page not indexed or has quality issues: Structured data on pages that Google hasn't indexed, or pages that Google considers low-quality (thin content, duplicate content, or affected by a spam action), will not generate rich results regardless of markup quality.

6. JavaScript rendering dependency: If your structured data is injected via JavaScript rather than included in the server-rendered HTML, Google's crawler may not see it consistently. While Googlebot does execute JavaScript, rendering delays and failures can prevent structured data from being captured reliably.

7. Structured data broke after a change you didn't notice: Theme updates, app installations, platform migrations, and even product edits can silently break structured data. A theme update might change the template that generates Product schema. A new review app might override the existing review markup. A bulk product import might clear fields that the schema depends on.

How to diagnose and fix the problem

Step 1: Test specific product pages with the Rich Results Test

Go to Google's Rich Results Test and enter your product page URLs individually. Don't just check whether the markup is "valid"; look at the specific detected items. Verify:

  • Is the type Product (not ProductGroup without individual Product children)?
  • Are offers using Offer (not AggregateOffer)?
  • Are price, priceCurrency, and availability present?
  • Is there an AggregateRating or Review?

Step 2: Check Google Search Console Enhancement reports

In Search Console, navigate to Enhancements → Product snippets (or Merchant listings). Look at:

  • Valid items vs. items with warnings: Warnings indicate properties that Google recommends but that are preventing optimal display.
  • Trends over time: A sudden drop in valid items often correlates with the change that broke your structured data.
  • Specific warnings: "Missing field review", "Missing field aggregateRating", "Invalid value for availability"; each warning points to a specific fix.

Note that these reports show a sample of detected items, not a complete count of every page.

Step 3: Compare markup to visible page content

View your product page source (Ctrl+U) and compare the structured data values against what's visible on the page. Check:

  • Price: Does the structured data price match the displayed price? Account for currency, tax inclusion, and variant selection.
  • Availability: Does the structured data say InStock for a product that shows "Out of Stock" on the page?
  • Name: Does the product name in the markup match the visible <h1> heading?
  • Image: Does the image URL in the markup resolve to an actual product image that meets Google's minimum resolution requirements (April 2026 update)?

Step 4: Verify across page types

Test structured data on:

  • A simple product (single variant)
  • A product with multiple variants (different prices)
  • A product with reviews
  • A product without reviews
  • An out-of-stock product
  • A sale-price product

Different product states often generate different markup, and failures may only affect certain product types.

Step 5: Inspect the rendered HTML

Use Google's URL Inspection Tool in Search Console to see what Googlebot actually sees after rendering. Compare the rendered HTML's structured data against the source HTML. If the structured data only appears in the rendered version, you're dependent on JavaScript rendering, which is less reliable.

Verification: confirming rich results are working

After making fixes:

  1. Re-run the Rich Results Test on corrected pages to confirm eligibility
  2. Request re-indexing via Search Console's URL Inspection Tool for priority pages
  3. Monitor the Enhancement report for increasing valid items and decreasing warnings over the following 1–2 weeks
  4. Check actual search results by searching for your product names in an incognito browser; rich results typically appear within days of re-indexing for eligible pages, though Google does not guarantee display for every eligible page.

Note that Google may choose not to show rich results even for eligible pages. Eligibility is a prerequisite, not a guarantee. But fixing the common errors above gives your pages the best possible chance.

Prevention: why continuous monitoring is essential

Google's rich result landscape evolves continuously. Eligibility requirements and supporting criteria can shift. The bigger operational risk is that your own changes break structured data silently. Theme updates, review app migrations, bulk product imports, and platform version upgrades all touch the templates and data that generate Product schema. These changes rarely trigger an immediate alert; the structured data simply stops being eligible, and you discover the problem weeks later when click-through rates have already declined.

Because structured data can break silently after routine store changes, continuous monitoring is the practical way to protect the click-through rate asset you have already built.

AuditIQ continuously monitors structured data consistency, page health (including 404s and indexing signals), and markup-to-content mismatches across your product catalogue through its SEO Audit and continuous crawling capabilities. When a required property goes missing, or a theme update breaks eligibility, you are alerted before the next crawl cycle compounds the loss.

Beyond these structured data checks, AuditIQ is a comprehensive eCommerce monitoring platform purpose-built for Magento, Adobe Commerce, and Shopify stores. It also covers uptime, real user performance, technical SEO, GEO readiness, security, analytics, and Google Ads performance from a single unified dashboard.

Start with AuditIQ’s full storefront audit for free to identify every structured data eligibility gap before it costs you more clicks.

Others also read

Frequently asked questions

1. Why do some of my products show rich results but not others?

The most common cause is variant handling. Products with a single price may use Offer correctly while multi-variant products default to AggregateOffer, which is ineligible for price display. Check the structured data on the specific pages that aren't generating rich results.

2. How long does it take for rich results to appear after fixing structured data?

After requesting re-indexing, rich results typically appear within a few days to two weeks, depending on how frequently Google re-crawls your site. High-authority sites with frequent crawling may see changes within days.

3. Can a review app break my existing product structured data?

Yes. Some review apps inject their own Product schema that conflicts with or overrides the theme's existing markup, creating duplicate or contradictory structured data on the same page. After installing a review app, verify that the page contains a single, consistent Product schema.

4. Does Google Search Console show all structured data warnings?

Not always. The Enhancement report aggregates issues across your site and shows a sample of detected items. It may not surface warnings for every individual page. Use the Rich Results Test for page-level validation and the URL Inspection Tool to see what Google actually rendered for a specific URL.

5. My structured data was working fine; why did rich results suddenly disappear?

Common triggers include a theme update that changed Product schema templates, a new app that injected conflicting markup, a bulk product edit that cleared required fields, a change in Google's eligibility requirements, or a site quality issue that affected page standing. Check Search Console for the timing of the decline and correlate it with recent store changes.

About the author

Dan Garner writes from AuditIQ's experience monitoring eCommerce performance, SEO, security, and reliability issues across Magento, Shopify, WooCommerce, and Adobe Commerce stores.

Product rich results not showing in Google? How to...