AggregateOffer structured data

The Citead team, updated

In short. AggregateOffer summarizes offers for a single product using price and currency fields, with optional upper-price and offer-count details in Google's product snippets.

Definition: Schema.org's AggregateOffer definition describes multiple offers associated with a single product, such as the same shoes sold by different merchants. Its structured data can express the lowest price, highest price and number of offers.

Key facts

  • Schema.org defines lowPrice and highPrice as the lowest and highest prices across the available offers; offerCount records their number.
  • As of October 2026, Google's product snippet documentation requires lowPrice and priceCurrency for an AggregateOffer, and recommends highPrice and offerCount.
  • Google's merchant listing documentation requires an Offer for merchant listings, with the merchant acting as the product's seller.
  • Google's structured data policies require current information and content visible to the page's readers.

How does the price range appear in markup?

An Offer describes an individual transaction proposal. AggregateOffer groups offers and summarizes their prices. Schema.org's monitor example places the aggregate under a Product object's offers property. The following simplified JSON-LD, a structured data format, retains that example's product name and price-range values:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Dell UltraSharp 30\" LCD Monitor",
  "offers": {
    "@type": "AggregateOffer",
    "priceCurrency": "USD",
    "lowPrice": "1250",
    "highPrice": "1495",
    "offerCount": "8"
  }
}
</script>

These are Schema.org's illustrative values: a range from USD 1250 to USD 1495 across eight offers. A site's markup needs values drawn from its own visible offers. The full Schema.org example also nests individual Offer objects under the aggregate's own offers property, with a URL for each illustrated seller.

Which Google product feature uses AggregateOffer?

A product snippet is a Google search result presentation containing product information. Google's AggregateOffer property table specifies a currency code in ISO 4217 format, such as USD, alongside the minimum price. Decimal fractions use a period.

The same documentation explicitly excludes using AggregateOffer to describe a set of product variants.

Google's merchant listing requirements apply to pages where a shopper can purchase the product. A page linking to other sellers falls outside that eligibility rule. The merchant listing offers field requires a nested Offer; product snippets accept either Offer or AggregateOffer.

How is the markup checked?

Google's product snippet implementation instructions direct publishers to validate code with the Rich Results Test and fix critical errors. After deployment, the URL Inspection tool checks how Google sees the page. Access through crawling must remain possible, including through any robots.txt rules or login requirements.

The visible price range also needs review when the underlying offers change. Google's content guidelines require up-to-date information and prohibit marking up content hidden from readers. Checking the generated markup against the displayed offers addresses that requirement alongside syntax validation.

FAQ

Is offerCount the stock quantity?

Schema.org's property definition makes offerCount the number of offers for the product. Inventory quantity is a separate concept represented by inventoryLevel.

Can I omit the upper price?

For Google's product snippet requirements, highPrice is recommended. The required aggregate fields are lowPrice and priceCurrency.

Sources

  1. Schema.org, "AggregateOffer", undated
  2. Google Search Central, "Product snippet (Product, Review, Offer) structured data", updated 8 September 2026
  3. Google Search Central, "Merchant listing (Product, Offer) structured data", updated 8 September 2026
  4. Google Search Central, "General structured data guidelines", updated 10 July 2026

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark