On July 7, 2026, Google officially updated its Merchant Listing structured data documentation to add formal support for two new properties: Product.category and sale duration date ranges (validFrom, validThrough, priceValidUntil). If you sell products online, these additions let you pass more precise information to Google — improving how your products appear in Shopping results and, potentially, which queries they match.
What Changed
Google's developer documentation for Merchant Listing structured data was updated with two new property additions:
1. Product Category (Product.category)
Google now officially supports the Product.category property using both:
Text— a plain-text category stringCategoryCode— a structured code (aligned with Google Merchant Center'sgoogle_product_categoryandproduct_typeattributes)
This aligns on-page structured data with how product feeds work in Google Merchant Center — meaning Google can now cross-reference your structured data against your GMC feed category taxonomy for consistency.
2. Sale Duration / Price Date Ranges
Google now supports validFrom, validThrough, and priceValidUntil on both the Offer and PriceSpecification schema.org nodes, letting you define exactly when a sale price is active — including start and end dates with time and timezone.
Required format: ISO 8601 (e.g., 2026-08-01T00:00:00-05:00)
Why It Matters for Rankings
Better Category = Better Query Matching
Google uses product category data to match products to relevant queries. The more accurately Google understands what category your product belongs to, the more relevant searches it can surface for. Previously, Google inferred category primarily from feed data and page context. Now, structured data provides a direct, parseable category signal that can reinforce or clarify what Merchant Center receives.
For merchants with products that span ambiguous categories — think a “compression sleeve” that could be athletic wear or medical gear — explicit category coding can resolve which queries Google targets you for.
Sale Duration Lets Google Show Real Urgency
When Google knows a sale starts and ends at specific times, it can display that sale price in Shopping results with confidence for the correct window only. Without date-range data, Google may show stale sale prices or delay surfacing sale listings. With proper validFrom/validThrough markup:
- Your sale listings appear when the sale is actually live
- Google won't surface an expired sale price (which can hurt CTR and cause frustration)
- You can pre-load sale structured data before the sale starts and Google will honor the timing
What to Do About It: Step-by-Step
1. Add Product.category to Your Structured Data
In your existing Product schema markup, add:
{
"@type": "Product",
"name": "Example Running Shoes",
"category": "Sporting Goods > Exercise & Fitness > Athletic Shoes",
"offers": { ... }
}
Or with a CategoryCode:
{
"@type": "Product",
"name": "Example Running Shoes",
"category": {
"@type": "CategoryCode",
"codeValue": "1604",
"inCodeSet": {
"@type": "CategoryCodeSet",
"name": "Google Product Category"
}
}
}
Use Google's product category taxonomy to find the correct category string or code. Match it to whatever you use in your Google Merchant Center feed.
2. Add Sale Duration Markup for All Promotional Prices
If you run sales, update your Offer markup to include date ranges:
{
"@type": "Offer",
"price": "49.99",
"priceCurrency": "USD",
"priceValidUntil": "2026-08-31",
"priceSpecification": {
"@type": "PriceSpecification",
"price": "49.99",
"priceCurrency": "USD",
"validFrom": "2026-07-15T00:00:00-05:00",
"validThrough": "2026-08-31T23:59:59-05:00"
}
}
Best practice: Always include both validFrom and validThrough — not just the end date. Google needs the full window to serve the sale listing correctly.
3. Keep Structured Data in Sync with Your Merchant Center Feed
This is the key consistency requirement: your Product.category in structured data should match the google_product_category you've submitted in your GMC feed. Mismatches can create confusing signals that hurt your Shopping eligibility.
If you use a feed management tool (like Feedonomics, DataFeedWatch, or a platform-native feed), verify that the category values it exports to GMC match what you're putting into your on-page JSON-LD.
4. Test Using Google's Rich Results Test
After implementing, validate using:
- Google Rich Results Test — paste your product URL or code snippet to check for structured data errors
- Search Console → Enhancements → Shopping — check for errors flagged after Google re-crawls
5. Prioritize Your Highest-Revenue Products First
Don't try to update your entire catalog at once. Start with your top 20–50 products by revenue and implement both changes there first. Measure the impact on impressions and clicks in Search Console's Shopping performance report before rolling out sitewide.
Common Mistakes to Avoid
- Using a category string that doesn't match your GMC taxonomy — it sends mixed signals. Look up your exact category in the Google product taxonomy file.
- Omitting
validFrom— Google's documentation explicitly says to include both start and end dates. An end-only date isn't sufficient for Google to confidently serve the sale listing. - Wrong timezone in ISO 8601 dates — a sale that ends at midnight EST is
T23:59:59-05:00notT23:59:59Z. Using UTC when your prices apply in a specific market timezone can cause premature or delayed sale displays. - Not removing
validThroughafter a sale ends — if the date passes and the markup isn't updated, Google may flag it as an error. Use dynamic markup generation if your platform supports it, so sale dates auto-update. - Implementing structured data but not updating the GMC feed — structured data alone isn't sufficient for Shopping eligibility. Both signals need to be consistent.
Quick-Win Checklist
- Identify your Google product category codes at support.google.com/merchants/answer/6324436
- Add
Product.categoryto JSON-LD on your top 20 product pages - Verify category matches your Merchant Center feed taxonomy
- For any products with active or upcoming sales, add
validFrom+validThroughto theOffernode - Use ISO 8601 format with timezone for all date values
- Test updated pages in Google's Rich Results Test
- Monitor Search Console Enhancements → Shopping for new errors over the next 2 weeks
- Plan a full-catalog rollout after validating the top-20 implementation
Sources
- Google Search Central: Merchant Listing Structured Data Documentation
- Search Engine Journal: Google's New Merchant Listing Structured Data Improves SEO
- Search Engine Roundtable: Google Supports Product Category & Sale Duration To Merchant Listing Structured Data
- Search Engine Land: Google merchant listings support sale duration and product category
- PPC.Land: Google adds category codes to merchant listings on July 7