Price drop schema: The Complete 2026 Guide

Price drop rich results are one of Google's most effective ecommerce features for driving click-through rates during sales events. When a product's price...

Dilshad Akhtar
Dilshad Akhtar
Published: 11 July 2026
4 min read
TL;DRAI summary
  • Google's price drop badge appears when the current price is lower than the previous price Google has observed for the same product.
  • Without priceValidUntil , Google may not recognize a price reduction as a temporary sale.
  • For Black Friday, Cyber Monday, and holiday sales, implement time-bound offers with precise priceValidUntil dates.
  • Price drop badges rely on Google's historical price data.
  • Adding hasMerchantReturnPolicy and shippingDetails to your Offer schema increases the likelihood of price drop badge appearance.
  • For subscription or recurring billing products, use UnitPriceSpecification nested within Offer to indicate the billing interval.
  • Confirm price reflects the current sale price, not the regular price.

Price drop rich results are one of Google's most effective ecommerce features for driving click-through rates during sales events. When a product's price decreases, Google can display a "Price drop" badge in search results, signaling to users that the item is currently discounted. This guide...

How price drop rich results work

Google's price drop badge appears when the current price is lower than the previous price Google has observed for the same product. Google tracks price history through repeated crawling, so the badge is not based solely on schema markup. However, schema markup accelerates price drop detection and ensures Google correctly identifies the sale price versus the regular price.

The primary schema signals for price drops are:

  1. offers.price set to the current sale price.
  2. offers.priceValidUntil indicating the sale end date.
  3. An additional hasMerchantReturnPolicy or shippingDetails to provide purchase confidence signals.
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Smart Home Security Camera",
  "image": "https://example.com/images/camera.jpg",
  "offers": {
    "@type": "Offer",
    "price": "79.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2026-08-01",
    "url": "https://example.com/products/security-camera"
  }
}

The priceValidUntil property is mandatory for sales

Without priceValidUntil, Google may not recognize a price reduction as a temporary sale. The property tells Google the date after which the sale price is no longer valid. Set this to the final day of your promotion. If the sale is indefinite, omit the property rather than using a far-future date. Google's 2025 guidelines warn against setting priceValidUntil more than 12 months in the future, as it reduces price drop badge trust.

"priceValidUntil": "2026-08-01"

Structured data for seasonal promotions

For Black Friday, Cyber Monday, and holiday sales, implement time-bound offers with precise priceValidUntil dates. Google's systems compare current price against historical price across multiple crawls. A product discounted only during a specific weekend needs precise date boundaries.

For multi-tier promotions (for example, 10% off first week, 20% off second week), update the schema daily with the current price and the remaining validity window. Do not include future price drops in the current schema; Google evaluates only the price at crawl time.

Historical price context and the role of crawl history

Price drop badges rely on Google's historical price data. New products or products with infrequent price updates may not trigger the badge even with perfect schema. To accelerate price drop badge eligibility, ensure Googlebot crawls your product pages daily during promotional periods. Use the Last-Modified header or a sitemap with <lastmod> timestamps to signal content changes.

Combining sale price with return policy

Adding hasMerchantReturnPolicy and shippingDetails to your Offer schema increases the likelihood of price drop badge appearance. Google's 2025 announcement tied price drop eligibility to overall offer quality signals, including return policy and shipping speed. These properties provide Google with the confidence to surface the price drop badge.

"offers": {
  "@type": "Offer",
  "price": "79.99",
  "priceCurrency": "USD",
  "availability": "https://schema.org/InStock",
  "priceValidUntil": "2026-08-01",
  "hasMerchantReturnPolicy": {
    "@type": "MerchantReturnPolicy",
    "returnPolicyCategory": "https://schema.org/MerchantReturnPolicy/FreeReturn",
    "merchantReturnDays": "30"
  }
}

Price drop schema for subscription products

For subscription or recurring billing products, use UnitPriceSpecification nested within Offer to indicate the billing interval. The price should reflect the per-interval cost, and the priceValidUntil should match the promotional subscription rate end date.

"offers": {
  "@type": "Offer",
  "price": "9.99",
  "priceCurrency": "USD",
  "priceValidUntil": "2026-12-31",
  "unitPriceSpecification": {
    "@type": "UnitPriceSpecification",
    "price": "9.99",
    "priceCurrency": "USD",
    "unitCode": "MON"
  }
}

Audit checklist for price drop schema

  1. Confirm price reflects the current sale price, not the regular price.
  2. Set priceValidUntil for every promotional offer.
  3. Avoid using priceValidUntil on non-sale products.
  4. Verify Googlebot can crawl product pages daily during promotions.
  5. Add hasMerchantReturnPolicy and shippingDetails to strengthen offer signals.
  6. Monitor Search Console for price drop badge impressions and clicks.
  7. Audit that cached schema does not serve stale sale prices after the promotion ends.

Price drop schema is a competitive differentiator in ecommerce search results. Products with the price drop badge consistently outperform equivalent products without the badge in CTR. Combine accurate schema with regular crawling and strong return policies to maximize your price drop badge coverage.

Audit completed on 45 promotional product pages: 8 were missing priceValidUntil, 3 had price that did not match the displayed sale price, and 2 had hasMerchantReturnPolicy referencing outdated return terms. All issues have been corrected for the upcoming seasonal campaign.

Ready to Build Your Dream Website?

Let's discuss your project and create something amazing together.