Google clarifies sale price date markup for merchant listings

Google has updated Search Central guidance with clearer rules for marking sale prices in Product structured data, giving ecommerce sites a more direct way to state when a discount starts and ends.

Google’s merchant listing documentation separates three price concepts: active price, strikethrough price, and member price. The active price is the amount currently offered. A strikethrough price is the higher regular price shown during a sale. A member price is tied to a loyalty program tier.

For sale pricing, Google says the current active price becomes the sale price when a second price is provided as the original price and marked with https://schema.org/StrikethroughPrice. The active sale price should not be marked with priceType.

The sale duration guidance adds timing to that setup. Merchants can mark the start with validFrom and mark the end with either validThrough or priceValidUntil, using ISO 8601 date or date-time formatting. Google recommends providing both a start and an end date, and including time and time zone details for accuracy in Google systems.

Where the sale dates belong

If Offer.price contains the active sale price, Google says the sale dates can be placed on the Offer node. If the sale price is expressed inside a PriceSpecification node, the validFrom and validThrough properties should be placed on that sale price node instead. Google says priceValidUntil is not applicable to PriceSpecification.

That distinction matters for product templates that generate pricing markup automatically. A store may show the correct discount on the page but still give Google invalid or ambiguous pricing data if the schema places dates on the wrong object, leaves the original price unmarked, or uses an expired priceValidUntil value. Google’s docs say a listing may not display if priceValidUntil points to a past date.

How this connects to Merchant Center

Merchant Center already has feed attributes for sale prices. Google’s product data specification says sale_price should be submitted in addition to the regular price attribute and should match the landing page and checkout pages. It also says sale_price_effective_date defines the sale price date range, uses ISO 8601 format, and should be used with sale_price.

The Search Central update brings similar timing logic to on-page schema. It does not replace product feeds for merchants using Merchant Center, but it gives Google another structured product data source to compare against the page and feed.

What ecommerce sites should check

  • Active price: The current buyable price should appear as Offer.price or as an active UnitPriceSpecification, without priceType.
  • Regular price: The higher original price should be marked as https://schema.org/StrikethroughPrice when a sale price is active.
  • Sale dates: validFrom should be earlier than or equal to validThrough or priceValidUntil. Date-time values should include a time zone where possible.
  • Correct placement: Dates should sit on the Offer when Offer.price is the sale price, or on the sale PriceSpecification when the sale price is modeled there.
  • Membership pricing: Member prices should use validForMemberTier, not priceType. Google says a price specification containing both properties is ignored.
  • Feed consistency: Sale price data should match across the product page, structured data, Merchant Center feed, and checkout.

The category update came with it

The same July 7 documentation update also added detail for Product.category. Google says the property can accept plain text values for merchant-defined categories and CategoryCode objects for Google Product Category values. For merchants, this is a related data-quality change: product category, price, sale dates, availability, shipping, and return data are all part of the product information Google’s merchant listing documentation asks merchants to define or keep accurate.

Structured data is not a shortcut

The update is useful, but it is not a promise of richer display. Google’s merchant listing guidance says structured data can make product pages eligible for merchant listing experiences, and its troubleshooting guidance says features that consume structured data are not guaranteed to appear in Search.

Google also recommends putting Product structured data in the initial HTML for merchants optimizing shopping results. Its documentation warns that JavaScript-generated Product markup can make Shopping crawls less frequent and less reliable, especially for fast-changing product availability and price.

For most ecommerce teams, the work is practical. Sites using Shopify, WooCommerce, custom product templates, feed apps, or SEO schema plugins should review generated Product markup before seasonal promotions, especially if prices change often.

Get new small business insights by email

Practical ideas and useful articles to help you make better business decisions.

HelperX Bot

Not sure what to read next?

I can suggest related Tech Help Canada articles based on the topic you’re reading now.

Tech Help Canada Staff researches, writes, and reviews practical content for business owners and professionals. Our coverage spans business, marketing, SEO, technology, and the tools and systems people use to grow and operate online. We focus on clear, useful information backed by research, hands-on experience, and editorial review. Learn more about our team and editorial standards. Need help with something? Contact Us

Leave a Comment

Tweet
Share
Share
Pin
WhatsApp
Reddit
Email