Google Updated Product Structured Data: What E-Commerce Sites Must Do Now
A Quiet Documentation Change With Real Ranking Consequences
MOST E-COMMERCE BUSINESSES WON’T HEAR ABOUT THIS UPDATE UNTIL IT’S ALREADY AFFECTING THEIR PRODUCT VISIBILITY. GOOGLE REVISED ITS MERCHANT LISTING STRUCTURED DATA DOCUMENTATION, ADDING A CATEGORY PROPERTY AND SALE DURATION FIELDS — AND IF PRODUCT PAGES AREN’T UPDATED, BUSINESSES ARE LEAVING ACCURACY SIGNALS ON THE TABLE THAT THEIR COMPETITORS MAY ALREADY BE USING.

Google Updated Product Structured Data: What E-Commerce Sites Must Do Now
What Google Actually Changed
Google revised its official Merchant Listing structured data documentation, adding three new schema.org properties to the Product markup specification. On the surface this looks like a minor changelog entry. In practice, it closes a gap that has existed for years between what merchants can declare in their Merchant Center feed and what they can express directly in the markup of their own web pages.
Until this update, the two data layers — feed attributes and on-page structured data — were not fully aligned. A merchant could classify a product in detail inside their Merchant Center feed but had no clean way to express the same granularity directly in page markup. Similarly, the timing of sale pricing could be communicated through feeds but couldn’t be precisely defined in schema. Both gaps created situations where Google had to reconcile potentially conflicting signals — which is never ideal for accurate search result display.
Google added one new property — Product.category — and introduced a dedicated documentation section on Sale Duration, which covers three schema.org fields: validFrom, validThrough, and priceValidUntil. While the sale duration fields technically existed before, Google’s explicit guidance on using them together to define sale periods is new and practically significant for any merchant running time-limited promotions.
📌 Why Alignment Matters:
When the same product information appears consistently in both the Merchant Center feed and the on-page markup, Google has more confidence in its accuracy. Discrepancies between the two create validation problems that can affect how reliably products appear in results. These updates reduce that discrepancy — and that benefits merchants who implement them promptly.
The Category Property and Sale Duration: What They Do
The category property allows merchants to classify products directly in their markup using either plain text or a CategoryCode object. Plain text is the simpler path — you add a category string that reflects the product type. The CategoryCode object is the more precise option: it lets you align your markup directly with Google’s Product Category taxonomy using numeric IDs from Google’s official category list. This reduces the interpretive work the algorithm has to do, which translates to more accurate categorization in results.
The property also accepts multiple values — useful for products that genuinely span more than one category. A product that is both a trail shoe and a running shoe, or both a kitchen appliance and a gift item, can carry multiple category paths in a single implementation. This reflects how real catalogs are organized rather than forcing merchants into a single rigid classification per item.
On the sale duration side, the core problem being addressed is straightforward: when merchants run time-limited promotions, their structured data sometimes continues showing the discounted price after the sale has ended. This creates a mismatch between what users see in search results and what they find on the page. Google’s documentation now makes explicit that it may not display a product listing if the priceValidUntil field contains a date that has already passed. That is a direct suppression risk for any merchant managing promotions without properly updating their markup dates.
⚠️ The Sale Pricing Risk Is Immediate:
If your site has run any promotions and has not updated the markup to reflect current pricing, you may already have product listings with expired priceValidUntil dates. Google may be suppressing those listings right now. Auditing your promotional pricing markup should be the first thing you do after reading this — not something to schedule for next sprint.
What to Do Right Now
Start with the Merchant listings report in Google Search Console. It shows which items are valid and which are triggering errors or warnings — and it’s the fastest way to identify where your current markup is falling short. If you’re not monitoring this report regularly, that habit needs to change, because documentation updates like this one often affect validity status for existing implementations with no warning.
For the category property, begin with your highest-traffic product pages and add the property using either plain text or CategoryCode depending on your catalog complexity. For large catalogs, this needs to be built into your product data pipeline rather than added manually. Check whether your CMS or e-commerce platform generates this property automatically — many don’t yet, and a plugin update or custom implementation may be needed.
For sale duration, the fix is operational as much as technical: promotion management needs to extend to markup management. When a sale goes live, the markup reflects it. When it ends, the markup updates accordingly. For catalogs with frequent promotional activity, automating this in sync with pricing changes is the only sustainable approach.
Frequently Asked Questions
→ Is the new category property required?
Google has marked it as recommended rather than required, meaning pages won’t fail validation for omitting it. But in competitive product categories, recommended properties that improve classification accuracy are worth implementing — they contribute to how confidently Google matches your products to relevant queries, and that confidence affects visibility.
→ How do I find out if my site has expired sale pricing in its markup?
Start with the Merchant listings report in Google Search Console, which flags invalid items and often identifies the specific property causing the issue. You can also run individual product pages through Google’s Rich Results Test to inspect the structured data output directly. For large catalogs, a crawl-based audit using Screaming Frog can export structured data at scale, making it easier to identify patterns across thousands of URLs rather than checking them one by one.
→ Does this affect Google Shopping listings as well as organic results?
Yes. Merchant Listing structured data affects how products appear in both organic search results and free Shopping listings. Google uses on-page markup alongside Merchant Center feed data across multiple surfaces. Improving markup quality generally benefits visibility across all of them, not just one result type.
→ Plain text or CategoryCode — which should I use?
For smaller catalogs, plain text is a reasonable starting point. For larger operations where precise classification is commercially important, CategoryCode is more future-proof — aligning your markup with Google’s own taxonomy makes your data cleaner for AI-driven product discovery systems and reduces ambiguity in how your products are categorized.
→ My site uses a plugin for structured data. Will it update automatically?
It depends on how actively the plugin is maintained. Some schema plugins track Google’s documentation changes and release updates quickly; others lag significantly. Check your plugin’s changelog for any mention of the category property or sale duration fields. If it hasn’t been updated, you may need to supplement the plugin output with custom markup or switch to a more actively maintained solution.