Search all pages  ·  Press Esc to close  ·  ↑↓ to navigate
Content Strategy Local SEO GMB Prompts Technical SEO E-E-A-T Guest Post GA4 Analytics
E-Commerce SEO · AlgoBlueprints · July 2026

Google Adds Product Category and Sale Duration to Merchant Listing Schema — What Changed and How to Implement It Correctly

~11 min read
Merchant Listing Schema · E-Commerce · Structured Data
July 2026
Add as Preferred Source on Google

E-commerce structured data has always carried a quiet inconsistency: what you could declare in your Google Merchant Center feed was richer than what you could express directly on your product pages through schema.org markup. Category classification and time-bound sale pricing both existed as mature Merchant Center feed attributes — product_type, google_product_category, and sale_price_effective_date — with no clean, direct page-level equivalent. Google's July 7, 2026 documentation update closes that gap, bringing on-page structured data into full alignment with Merchant Center feed capabilities for the first time.

I manage SEO for e-commerce clients across fashion, home goods, and specialty retail. Every time a client asked why their on-page product schema couldn't express a limited-time sale as precisely as their Merchant Center feed could, the honest answer was that the schema.org properties simply weren't formally documented for that purpose on Google's side. This update removes that gap entirely. This article covers exactly what changed, how to implement both new capabilities correctly, and why getting the sale duration properties right matters more than it might first appear.


What Google Actually Added — Two Distinct Capabilities

Google's July 7, 2026 update to the Merchant Listing structured data help document introduces two separate but related additions, both explicitly framed as aligning schema.org markup with existing Merchant Center feed attribute capabilities.

July 7
2026 — Official documentation update date
2 New Props
Product.category with CategoryCode support, and Sale duration mechanism
3 Properties
validFrom, validThrough, and priceValidUntil for time-bound pricing
Feed Parity
Now matches product_type, google_product_category, and sale_price_effective_date feed attributes

Capability 1 — Product.category With CategoryCode Support

Previously, merchants adding Product markup directly to their web pages had a single, ambiguous category property to work with. Google's update clarifies that Product.category now formally accepts two distinct data types, giving merchants precise control over how their category information is interpreted.

Category Mode Equivalent Feed Attribute Use Case Example
Plain text product_type Your own internal categorization, in your own words "Men's Trail Running Shoes"
CategoryCode object google_product_category Maps products to Google's standardized taxonomy for more precise query matching Apparel & Accessories > Shoes > Athletic Shoes

The CategoryCode object uses two properties working together: inCodeSet references Google's own product taxonomy as the code system being used, and codeValue specifies the exact category — either by numeric ID or full taxonomy path. This gives merchants a direct, page-level way to tell Google "this is a Google Product Category, not just my internal label," which Google states improves how accurately listings match relevant search queries.

// Product.category — CategoryCode implementation example
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "AeroBoost Pro Running Shoes",
  "category": {
    "@type": "CategoryCode",
    "inCodeSet": "https://www.google.com/basepages/producttype/taxonomy.en-US.txt",
    "codeValue": "Apparel & Accessories > Shoes > Athletic Shoes"
  }
}

Capability 2 — Sale Duration Properties

The second addition is a new "Sale duration" section in Google's documentation, explaining how three schema.org properties work together to declare exactly when a promotional price is valid — and, critically, when it stops being valid.

Property Function Placement
validFrom The date and time the sale price becomes active. Offer or PriceSpecification
validThrough The date and time the sale price ends. Offer or PriceSpecification
priceValidUntil The specific date after which the stated price should no longer be trusted for purchase. Offer (commonly with validThrough)
// Sale duration — full implementation example
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "AeroBoost Pro Running Shoes",
  "offers": {
    "@type": "Offer",
    "price": "64.99",
    "priceCurrency": "GBP",
    "availability": "https://schema.org/InStock",
    "validFrom": "2026-07-10T00:00:00+01:00",
    "priceValidUntil": "2026-07-15T23:59:59+01:00"
  }
}
The Detail Most Merchants Will Miss

If your priceValidUntil value is in the past, your rich result listing may stop displaying entirely. This is not a cosmetic issue — it directly affects whether your product shows a price at all in Google Shopping and Search rich results. Time-limited promotions running without regularly updated priceValidUntil dates risk their entire rich result disappearing once the stated date passes, even if the sale itself was extended or a new price took over. Keeping these dates current is not optional if you run any form of time-limited promotion.

Why This Update Matters Now — The AI Shopping Connection

This update doesn't land in isolation. It arrives as Google's Universal Cart ecosystem — the AI-powered cross-merchant shopping hub spanning Search, Gemini, YouTube, and Gmail — continues expanding its merchant base throughout 2026. AI shopping systems evaluate structured data to determine merchant trustworthiness and to accurately represent time-sensitive offers to shoppers. A merchant whose category classification is precise and whose sale timing is machine-readable down to the hour gives AI shopping systems considerably more confidence than one relying on ambiguous plain-text category labels and static, potentially stale pricing claims.

From My Practice — Akif Qureshi

"I've managed product feed accuracy for e-commerce clients for years, and the disconnect between Merchant Center feed richness and on-page schema always struck me as an unnecessary gap — one that occasionally produced contradictory signals when a feed said one thing about a sale's timing and the page schema said something less precise or nothing at all. The July update closes that gap directly. For a fashion retail client running rotating weekly promotions, we've already rebuilt their product schema template to auto-populate validFrom and priceValidUntil directly from their promotion calendar system, rather than relying on manual updates that previously lagged behind actual sale timing by a day or more. That lag was quietly producing rich result eligibility issues nobody had diagnosed correctly until this update gave us the specific properties to audit against."

Implementation Checklist — Getting Both Additions Right

1

Audit Your Current Product.category Implementation

Check whether your existing product schema uses plain text category values, a CategoryCode object, both, or neither. If you're using plain text only, evaluate whether adding a parallel CategoryCode mapping to Google's product taxonomy would improve query matching accuracy — particularly for products in categories with ambiguous or highly specific naming conventions.

2

Map Your Products Against Google's Product Taxonomy

Google's product taxonomy file is publicly available and provides both numeric IDs and full category paths. Cross-reference your product catalogue against this taxonomy to identify the correct codeValue for each product category. This is a one-time mapping exercise that pays off across your entire catalogue once built into your product data pipeline.

3

Audit Every Active Sale for Correct Duration Properties

Review every product page currently running a time-limited promotion. Confirm validFrom, validThrough, and priceValidUntil are present, accurate, and reflect the actual promotion timing — not a default template value left unchanged from a previous campaign. This audit alone often surfaces stale pricing data that has been silently affecting rich result eligibility.

4

Automate Sale Duration Updates From Your Promotion Calendar

Manual updates to priceValidUntil are the most common failure point — someone forgets to update the date when a sale is extended, or a template default gets left in place after a promotion ends. Wherever possible, connect your product schema generation to your promotion management or pricing system directly, so validFrom and priceValidUntil update automatically whenever a sale's timing changes.

5

Validate Using Google's Rich Results Test

After implementing both additions, run affected product pages through Google's Rich Results Test to confirm the schema parses correctly and the sale duration properties are read as expected. Cross-reference against your Merchant Center feed data for the same products to ensure consistency between your feed's sale_price_effective_date and your page schema's validFrom/priceValidUntil — contradictory signals between the two sources undermine the trust signal both are meant to provide.


Frequently Asked Questions

Do I need to update both my Merchant Center feed and my on-page schema, or just one?
Both, and they need to agree with each other. Google's July 2026 update aligns on-page schema capabilities with existing Merchant Center feed attributes, but it does not merge the two into a single source of truth automatically. If your Merchant Center feed states a sale ends July 15 while your page schema's priceValidUntil says July 20, that inconsistency creates a trust signal problem. Treat your Merchant Center feed and your page-level structured data as two representations of the same underlying pricing and category truth, and build your systems to keep them synchronised.
What happens if I don't update priceValidUntil after a sale ends?
Google's documentation states that if your priceValidUntil value is in the past, your rich result listing may stop displaying. This means your product could lose its price display, star rating, and other rich result enhancements in Google Search and Shopping results — not because the product itself has an issue, but because the structured data is signalling stale, untrustworthy pricing information. Regularly auditing and updating this property for every active and recently-ended promotion is essential ongoing maintenance, not a one-time implementation task.
Does using CategoryCode instead of plain text category actually improve my search visibility?
Google's stated rationale is that CategoryCode gives merchants a direct way to signal precise Google Product Category alignment, which "improves how accurately your listings can be matched to relevant search queries." This is a matching-precision improvement rather than a direct ranking boost — it helps Google correctly understand what your product is and surface it for the right queries, particularly for products in categories with ambiguous naming or significant overlap with adjacent categories. The clearest beneficiaries are merchants selling in nuanced or crowded category spaces where plain-text labels alone previously created query-matching ambiguity.

The Bottom Line

Google's July 7, 2026 update to Merchant Listing structured data documentation closes a long-standing gap between what merchants could declare in their Merchant Center feed and what they could express in on-page schema.org markup. The Product.category property now formally supports both plain text and Google's structured CategoryCode taxonomy mapping, while the new Sale duration mechanism — validFrom, validThrough, and priceValidUntil — gives merchants precise, time-bound control over promotional pricing that Google actually reads correctly. Audit your current implementation against both additions this week. Map your catalogue against Google's product taxonomy. And critically, automate your priceValidUntil updates from your promotion calendar — because a stale date silently costs you rich result eligibility, and most merchants won't notice until traffic has already dropped.

Akif Qureshi
Akif Qureshi
Senior SEO Specialist & Marketing Analyst | Content Strategist
5+ yrs experience Google Certified 6 guides

Driven by advanced SEO expertise, deep marketing analytics, high-impact content strategy

With 5+ years of hands-on experience, I specialize in holistic search strategies that don’t just rank—they drive real, measurable business growth. I’ve worked across industries including healthcare, hospitality, legal, e-commerce, and professional services, helping brands dominate their target markets. My approach bridges the gap between raw data and creative execution. Every strategy I build is rooted in rigorous market analysis, structured SEO frameworks, and tailored content ecosystems—no templates, no shortcuts. Whether you’re a single-location brand or scaling across multiple cities, I create data-driven marketing systems designed to compound results and grow with you.

No sponsored content No affiliate links Reader supported

Need Help Optimizing Google Merchant Listings?

Get a free SEO audit from DigitalArka. We'll optimize your Merchant Listing schema, Product structured data, CategoryCode implementation, pricing markup, and AI search visibility to help your products earn more clicks and sales.

Get Your Free SEO Audit →

© 2026 Algoblueprints. All rights reserved.