What does Google say about SEO? /

Official statement

To be eligible for price drop display, you must have an offer in your product structured data and the price in the offer must be a specific value and not a price range.
🎥 Source video

Extracted from a Google Search Central video

💬 EN 📅 28/07/2022 ✂ 15 statements
Watch on YouTube →
Other statements from this video 14
  1. Does Google really rewrite your title tags however it wants?
  2. Should you really remove prices and stock levels from your title tags?
  3. Is your title tag really showing up the way you think it is in Google's search results?
  4. Why does Google really require 1200 pixels for product images to appear in rich results?
  5. Should you really be using the Max Image Preview tag to control how your images appear in Google?
  6. Are structured data really essential to avoid missing out on rich snippets?
  7. Why does Google really insist on 6 minimum fields in product structured data?
  8. Why aren't your rich snippets showing up even though you have Schema.org markup in place?
  9. Does combining structured data and Merchant Center feeds really unlock maximum e-commerce visibility?
  10. Does Google really calculate price drops independently from what merchants declare?
  11. Why doesn't Google display every single price drop you markup?
  12. Do GTIN Identifiers Really Boost Your Product Visibility on Google?
  13. Does Google really exclude 100% online businesses from Business Profile — and why?
  14. Are structured data and Merchant Center really the most profitable SEO strategy in the long run?
📅
Official statement from (3 years ago)
TL;DR

Google now requires a specific price — not a range — in Product structured data to display price drops in rich results. An offer must be present with a single value to be eligible. Sites using ranges (e.g., 50-100€) lose promotional display visibility.

What you need to understand

What exactly does Google mean by a "specific value"?

Google firmly blocks any attempt to use a price range (e.g., "49.99€ - 99.99€") in the price property of the Offer object. You need a single, precise value, expressed numerically (e.g., "79.99").

This change directly affects sites that display customizable products or those with variable options. Price drop display becomes impossible if you don't provide a fixed price in your structured data.

Why this restriction on price drops now?

Google's goal is to avoid vague promises in rich results. A price drop displayed in SERPs must be immediately verifiable — impossible if the price varies depending on chosen options.

Google also wants to reduce misleading click-through rates. A user who sees "-20%" in a snippet expects a precise price, not to discover "starting from X" on the product page.

What's the difference with other rich product displays?

Other enhancements — ratings, availability, image — still tolerate certain flexibilities. But price drop display is subject to this strict criterion: offer present plus single price value.

Without an offer or with a price range, you may keep the current price display, but no discount mention will appear in the snippet.

  • The price in Offer must be a single numeric value
  • Price ranges (minPrice / maxPrice) do not qualify for price drop display
  • The Offer object is mandatory — no alternative via AggregateOffer alone
  • Price drops only display if Google can compare two fixed values (current price vs. old price)

SEO Expert opinion

Does this requirement align with e-commerce reality?

Let's be honest: many catalogs operate on dynamic pricing models. Product variants, personalized pricing, B2B pricing grids… Google imposes here a constraint that doesn't always match the actual business structure.

The problem is that for certain sectors — online printing, custom furniture, configurable services — a single price makes no sense. You face a choice: sacrifice data accuracy or forgo price drop display.

What are the risks if we bypass this rule?

Some sites attempt to simulate a fixed price by taking the median price or the most-sold variant's price. Technically, this passes schema.org validation, but Google can penalize inconsistency if the user lands on a page where the actual price differs. [To verify] — Google hasn't published an official tolerance threshold.

Another gray area: sites using AggregateOffer with multiple child Offer objects, each with a specific price. Google's documentation remains vague on handling these cases — difficult to know which offer will be retained for display.

Is this statement consistent with observed practices?

In the field, we observe that Google already ignores price ranges for several months — Alan Kent's statement simply formalizes an already-existing practice. Nothing revolutionary, then.

However, the lack of clear guidelines on edge cases — products with mandatory options, prices varying by geolocation — remains frustrating. Google prefers to impose a strict rule rather than document exceptions.

Caution: If you display a price in your structured data that never matches the visible price on the page, you risk a manual action for misleading data. Consistency between markup and DOM is closely scrutinized.

Practical impact and recommendations

What must be done concretely to stay eligible?

First step: audit your product structured data with Search Console or a schema.org validation tool. Verify that each Product has an Offer object with a price property containing a single numeric value.

If you have variant products, two options — either create a dedicated page per variant (each with its own schema), or choose to markup only the default variant with its specific price. The second solution is simpler but limits coverage.

What errors must be avoided at all costs?

Never markup a range with "price": "50-100" — Google simply ignores this syntax. If you want to express min/max prices, use AggregateOffer, but know that it does not qualify for price drop display.

Another common pitfall: forgetting to specify priceCurrency. Without this attribute, even a specific price can be invalidated. Always use ISO 4217 code (EUR, USD, GBP…).

How can I verify my implementation is compliant?

Use Google's Rich Results Test on a representative product URL. If you see a warning or error on Offer, your structure isn't compliant.

Then check Search Console (Enhancements > Products) for the rate of eligible pages. A sudden drop in the number of pages with valid markup often signals a price range problem not detected in dev.

  • Verify that each Product has an Offer object with price as a single numeric value
  • Remove any price ranges from product structured data
  • Add priceCurrency systematically (e.g., "EUR")
  • Test with Rich Results Test and validate in Search Console
  • For variant products, decide on a strategy: page per variant or markup default variant only
  • Monitor error reports in Search Console after deployment
Price drops in rich results now require absolute rigor in product data structure. This technical constraint — single price, mandatory offer — may seem simple, but it often means overhauling your product page architecture and schema generation logic. If your catalog contains thousands of references with complex pricing models, manual implementation quickly becomes unmanageable. In this context, turning to an SEO-specialized agency allows you to implement custom automation, tailored to your CMS and business constraints, while avoiding errors that could cost you visibility.

❓ Frequently Asked Questions

Peut-on utiliser AggregateOffer à la place d'Offer pour afficher les baisses de prix ?
Non, AggregateOffer seul ne suffit pas. Google exige un objet Offer avec un prix spécifique pour afficher les baisses. AggregateOffer peut coexister, mais il ne remplace pas l'exigence d'une offre principale avec valeur unique.
Que se passe-t-il si mon prix varie selon la géolocalisation de l'utilisateur ?
Google n'a pas documenté ce cas précisément. En pratique, balisez le prix de la zone géographique par défaut ou principale. Toute incohérence flagrante entre prix balisé et prix affiché peut déclencher une invalidation.
Les produits en pré-commande ou sur devis sont-ils concernés ?
Si vous n'avez pas de prix fixe à afficher, vous ne pouvez pas baliser d'offre avec prix spécifique — donc pas d'affichage de baisse. Pour les produits sur devis, mieux vaut ne pas forcer un prix arbitraire dans les structured data.
Combien de temps faut-il pour que Google prenne en compte les modifications de structured data produit ?
Variable selon la fréquence de crawl. Comptez quelques jours à quelques semaines. Search Console vous donnera une visibilité sur les pages validées ou en erreur après re-crawl.
Un prix avec décimales (ex: 79.99) pose-t-il problème ?
Aucun problème tant que c'est une valeur numérique. Utilisez le point comme séparateur décimal (standard schema.org), jamais la virgule.
🏷 Related Topics
Domain Age & History E-commerce AI & SEO

🎥 From the same video 14

Other SEO insights extracted from this same Google Search Central video · published on 28/07/2022

🎥 Watch the full video on YouTube →

Related statements

💬 Comments (0)

Be the first to comment.

2000 characters remaining
🔔

Get real-time analysis of the latest Google SEO declarations

Be the first to know every time a new official Google statement drops — with full expert analysis.

No spam. Unsubscribe in one click.