AggregateOffer Schema – Complete Guide for Product Pricing & Rich Results

AggregateOffer schema markup is essential for e-commerce sites and marketplaces that aggregate pricing from multiple sellers. It enables rich shopping results in Google Search, showing price ranges and availability across different retailers.

What is AggregateOffer Schema?

AggregateOffer schema describes aggregated pricing information for products or services available from multiple sellers. It tells search engines about price ranges, availability, and seller information across different retailers or service providers.

Why AggregateOffer Schema Matters

AggregateOffer schema is crucial for marketplaces and comparison shopping sites because it enables rich product results in Google Search, showing price ranges and helping users find the best deals across multiple sellers.

The key insight: AggregateOffer transforms individual product listings into aggregated shopping experiences that help users compare prices and find products across multiple retailers.

What AggregateOffer Schema Includes

💰Price range aggregation (lowPrice/highPrice)
📊Offer count and availability
🏪Seller information and credibility
🚚Shipping and delivery details

SEO Benefits You Get

🛒Rich shopping results in search
📈Increased click-through rates
🎯Better product discoverability
📊Price comparison features

AggregateOffer Schema Implementation

Complete AggregateOffer Schema Example

Comprehensive AggregateOffer schema for a marketplace product:
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "@id": "https://example.com/products/wireless-headphones/#product",
  "name": "Premium Wireless Headphones",
  "description": "High-quality wireless headphones with active noise cancellation...",
  "brand": {
    "@type": "Brand",
    "name": "AudioTech"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "ratingCount": "1289"
  },
  "offers": {
    "@type": "AggregateOffer",
    "@id": "https://example.com/products/wireless-headphones/#offers",
    "lowPrice": "149.99",
    "highPrice": "299.99",
    "priceCurrency": "USD",
    "offerCount": 12,
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2025-12-31",
    "seller": {
      "@type": "Organization",
      "@id": "https://example.com/#organization",
      "name": "TechStore"
    },
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "MonetaryAmount",
        "value": "0",
        "currency": "USD"
      },
      "deliveryTime": {
        "@type": "ShippingDeliveryTime",
        "handlingTime": {
          "@type": "QuantitativeValue",
          "minValue": 1,
          "maxValue": 2,
          "unitText": "DAY"
        }
      }
    }
  }
}
</script>

Service AggregateOffer Example

AggregateOffer schema for service pricing ranges:
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service",
  "name": "Professional Web Design Services",
  "description": "Custom website design and development services for businesses.",
  "provider": {
    "@type": "Organization",
    "name": "WebDesign Pro"
  },
  "offers": {
    "@type": "AggregateOffer",
    "lowPrice": "2500",
    "highPrice": "15000",
    "priceCurrency": "USD",
    "offerCount": 8,
    "priceSpecification": [
      {
        "@type": "UnitPriceSpecification",
        "price": "2500",
        "priceCurrency": "USD",
        "referenceQuantity": {
          "@type": "QuantitativeValue",
          "value": "1",
          "unitText": "Basic Website"
        }
      }
    ]
  }
}
</script>

Required vs Recommended Properties

Required Properties

  • lowPrice- Minimum price in range
  • highPrice- Maximum price in range
  • priceCurrency- Currency code

Recommended Properties

  • offerCount- Number of offers aggregated
  • availability - Overall availability status
  • seller- Primary seller information
  • priceValidUntil- Price validity date

AggregateOffer Schema Best Practices

Content & Accuracy

Real Price Ranges: Ensure lowPrice and highPrice reflect actual available offers
Accurate Offer Count: Keep offerCount updated as offers are added or removed
Current Availability: Update availability status based on actual stock across sellers

Advanced Features

🚀
Shipping Details: Include comprehensive shipping information for better user experience
🚀
Price Specifications: Use detailed price specifications for different product tiers
🚀
Geographic Targeting: Specify availability by region or country

Common AggregateOffer Schema Mistakes

❌ Incorrect Price Ranges

Mistake: Using artificially wide price ranges or including discontinued products.

Fix: Base price ranges on currently available, legitimate offers from active sellers.

❌ Outdated Offer Counts

Mistake: Not updating offerCount when products go out of stock or new offers are added.

Fix: Maintain accurate offer counts and update them regularly based on real inventory data.

❌ Missing Seller Information

Mistake: Using generic seller information that doesn't identify the marketplace or aggregator.

Fix: Clearly identify the marketplace or comparison site as the seller, with proper organization details.

❌ Inconsistent Currency

Mistake: Mixing different currencies in price ranges or not specifying currency clearly.

Fix: Use consistent currency codes (ISO 4217) for all price information in the aggregate offer.

Validate Your AggregateOffer Schema

Testing Tools & Resources

Commerce Testing

  • • Test price ranges appear in search
  • • Verify offer count accuracy
  • • Check shipping details display
  • • Validate seller information

Additional JSON-LD Examples

E-commerce Marketplace Product

AggregateOffer schema for a product sold by multiple sellers on a marketplace:
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "@id": "https://example.com/products/wireless-headphones/#product",
  "name": "Premium Wireless Headphones",
  "image": "https://example.com/products/wireless-headphones-main.jpg",
  "description": "High-quality wireless headphones with active noise cancellation, 30-hour battery life, and premium sound quality.",
  "brand": {
    "@type": "Brand",
    "name": "AudioTech"
  },
  "category": "Electronics > Audio > Headphones",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.3",
    "ratingCount": "847",
    "bestRating": "5",
    "worstRating": "1"
  },
  "offers": {
    "@type": "AggregateOffer",
    "@id": "https://example.com/products/wireless-headphones/#aggregate-offer",
    "lowPrice": "89.99",
    "highPrice": "249.99",
    "priceCurrency": "USD",
    "offerCount": 12,
    "availability": "https://schema.org/InStock",
    "seller": {
      "@type": "Organization",
      "name": "TechMarketplace"
    },
    "priceValidUntil": "2025-12-31",
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "MonetaryAmount",
        "value": "0",
        "currency": "USD"
      },
      "shippingDestination": {
        "@type": "DefinedRegion",
        "addressCountry": "US"
      },
      "deliveryTime": {
        "@type": "ShippingDeliveryTime",
        "handlingTime": {
          "@type": "QuantitativeValue",
          "minValue": 1,
          "maxValue": 3,
          "unitText": "DAY"
        },
        "transitTime": {
          "@type": "QuantitativeValue",
          "minValue": 2,
          "maxValue": 7,
          "unitText": "DAY"
        }
      }
    },
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "applicableCountry": "US",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "merchantReturnDays": 30,
      "returnMethod": "https://schema.org/ReturnByMail",
      "returnFees": "https://schema.org/FreeReturn"
    }
  },
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "name": "Battery Life",
      "value": "30 hours"
    },
    {
      "@type": "PropertyValue",
      "name": "Connectivity",
      "value": "Bluetooth 5.0"
    },
    {
      "@type": "PropertyValue",
      "name": "Weight",
      "value": "250g"
    }
  ]
}
</script>

Service Marketplace Pricing

AggregateOffer schema for services offered by multiple providers:
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service",
  "@id": "https://example.com/services/house-cleaning/#service",
  "name": "Professional House Cleaning Service",
  "description": "Comprehensive house cleaning services including deep cleaning, regular maintenance, and specialized cleaning for homes and apartments.",
  "serviceType": "Home Cleaning",
  "areaServed": {
    "@type": "City",
    "name": "San Francisco"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "ratingCount": "1250",
    "bestRating": "5",
    "worstRating": "1"
  },
  "offers": {
    "@type": "AggregateOffer",
    "@id": "https://example.com/services/house-cleaning/#aggregate-offer",
    "lowPrice": "120.00",
    "highPrice": "350.00",
    "priceCurrency": "USD",
    "offerCount": 8,
    "availability": "https://schema.org/InStock",
    "priceSpecification": {
      "@type": "PriceSpecification",
      "price": "120-350",
      "priceCurrency": "USD",
      "valueAddedTaxIncluded": false,
      "description": "Price range for standard 3-bedroom house cleaning"
    },
    "seller": {
      "@type": "Organization",
      "name": "CleanHome Services Marketplace"
    },
    "priceValidUntil": "2025-12-31",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "value": "1",
      "unitText": "service"
    },
    "additionalProperty": [
      {
        "@type": "PropertyValue",
        "name": "Service Duration",
        "value": "2-4 hours"
      },
      {
        "@type": "PropertyValue",
        "name": "Cancellation Policy",
        "value": "24-hour cancellation required"
      },
      {
        "@type": "PropertyValue",
        "name": "Payment Methods",
        "value": "Credit card, cash, online payment"
      }
    ]
  },
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Cleaning Services",
    "itemListElement": [
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Deep Cleaning",
          "description": "Thorough cleaning of all surfaces and hard-to-reach areas"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Regular Cleaning",
          "description": "Standard weekly or bi-weekly cleaning maintenance"
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Move-in/Move-out Cleaning",
          "description": "Specialized cleaning for property transitions"
        }
      }
    ]
  },
  "provider": {
    "@type": "Organization",
    "@id": "https://example.com/#organization",
    "name": "CleanHome Services Marketplace"
  }
}
</script>

SEO & Rich Results Notes

SEO Benefits

AggregateOffer schema enhances marketplace and multi-seller visibility:

  • • Rich product listings with price ranges and seller counts
  • • Enhanced marketplace search result appearance
  • • Improved comparison shopping features
  • • Better targeting for price-conscious search queries
  • • Enhanced product discovery and availability signals

Rich Results Eligibility

AggregateOffer schema enables enhanced marketplace displays:

  • • Product rich snippets with price ranges
  • • "from $X" pricing displays in search results
  • • Seller count and availability information
  • • Enhanced Google Shopping integration
  • • Price comparison features and displays

Reference: Google's Search Central recommends AggregateOffer markup for marketplace and multi-seller product listings.

Important Warnings

  • Price Accuracy: Price ranges must reflect actual current offers. Misleading price information can result in rich result removal and trust issues.
  • Availability Truthfulness: offerCount and availability must accurately represent current selling conditions. Inflated seller counts harm user experience.
  • Currency Consistency: All prices must use the same currency. Mixed currencies can cause display issues and user confusion.
  • Regular Updates: Price ranges and availability change frequently in marketplaces. Regular updates are essential for maintaining rich result eligibility.

Official Documentation

Frequently Asked Questions

What is AggregateOffer schema used for?

AggregateOffer schema describes aggregated pricing information across multiple sellers or offers for the same product or service. It provides price ranges and availability summaries when products are sold by multiple vendors.

How do I add AggregateOffer schema to my product pages?

Add JSON-LD structured data with offers property containing lowPrice, highPrice, and offerCount. Include priceCurrency and availability information for comprehensive pricing data.

What are the required properties for AggregateOffer schema?

Required properties include priceCurrency and at least one of: lowPrice/highPrice (for ranges) or price (for single aggregated price). offerCount is recommended for multiple offers.

When should I use AggregateOffer vs individual Offer schemas?

Use AggregateOffer when showing combined pricing from multiple sellers (like marketplaces). Use individual Offer schemas when displaying specific offers from single sellers with detailed terms.

Does AggregateOffer schema enable rich results?

Yes! AggregateOffer enables rich product listings with price ranges and seller counts in Google Shopping and product search results, significantly improving marketplace visibility.

How do I handle different currencies in AggregateOffer?

Specify priceCurrency for the primary currency. For international marketplaces, consider separate AggregateOffer instances for different currency regions or use conversion information.

Can AggregateOffer include shipping information?

Yes, include shippingDetails with shipping rates and regions. However, for multiple sellers with different shipping policies, focus on common shipping information or omit if highly variable.

What's the difference between AggregateOffer and Product with multiple offers?

AggregateOffer provides summary pricing across sellers, while Product with multiple offers shows detailed individual seller information. Use AggregateOffer for marketplace overviews.

How do I specify availability in AggregateOffer?

Use availability with values like "InStock", "OutOfStock", or "PreOrder". Include offerCount to show how many sellers have the item available.

Can AggregateOffer work for services?

Yes! AggregateOffer works for any service with multiple providers, such as freelance platforms, repair services, or consulting marketplaces. Include service-specific pricing information.

How do I handle price ranges in AggregateOffer?

Use lowPrice for minimum price and highPrice for maximum price across all offers. Ensure prices reflect actual current offers to maintain accuracy.

Does AggregateOffer improve marketplace SEO?

Yes, AggregateOffer significantly enhances marketplace visibility by enabling rich product listings with price ranges and seller counts, improving click-through rates and conversion tracking.

How often should I update AggregateOffer schema?

Update when pricing changes, new offers are added, or availability changes. Keep price ranges and offer counts current to maintain search result accuracy.

Related Schema Types

Related: Product, Offer, Organization, LocalBusiness, Review, AggregateRating

Frequently Asked Questions

Why does AggregateOffer schema matter?

AggregateOffer schema is crucial for marketplaces and comparison shopping sites because it enables rich product results in Google Search, showing price ranges and helping users find the best deals across multiple sellers.

What are the SEO benefits of this schema?

AggregateOffer schema enhances marketplace and multi-seller visibility:

Does this schema enable rich results?

AggregateOffer schema enables enhanced marketplace displays:

What is AggregateOffer schema used for?

AggregateOffer schema describes aggregated pricing information across multiple sellers or offers for the same product or service. It provides price ranges and availability summaries when products are sold by multiple vendors.

How do I add AggregateOffer schema to my product pages?

Add JSON-LD structured data with offers property containing lowPrice, highPrice, and offerCount. Include priceCurrency and availability information for comprehensive pricing data.

What are the required properties for AggregateOffer schema?

Required properties include priceCurrency and at least one of: lowPrice/highPrice (for ranges) or price (for single aggregated price). offerCount is recommended for multiple offers.

When should I use AggregateOffer vs individual Offer schemas?

Use AggregateOffer when showing combined pricing from multiple sellers (like marketplaces). Use individual Offer schemas when displaying specific offers from single sellers with detailed terms.

Does AggregateOffer schema enable rich results?

Yes! AggregateOffer enables rich product listings with price ranges and seller counts in Google Shopping and product search results, significantly improving marketplace visibility.

How do I handle different currencies in AggregateOffer?

Specify priceCurrency for the primary currency. For international marketplaces, consider separate AggregateOffer instances for different currency regions or use conversion information.

Can AggregateOffer include shipping information?

Yes, include shippingDetails with shipping rates and regions. However, for multiple sellers with different shipping policies, focus on common shipping information or omit if highly variable.

What's the difference between AggregateOffer and Product with multiple offers?

AggregateOffer provides summary pricing across sellers, while Product with multiple offers shows detailed individual seller information. Use AggregateOffer for marketplace overviews.

How do I specify availability in AggregateOffer?

Use availability with values like "InStock", "OutOfStock", or "PreOrder". Include offerCount to show how many sellers have the item available.

Can AggregateOffer work for services?

Yes! AggregateOffer works for any service with multiple providers, such as freelance platforms, repair services, or consulting marketplaces. Include service-specific pricing information.

How do I handle price ranges in AggregateOffer?

Use lowPrice for minimum price and highPrice for maximum price across all offers. Ensure prices reflect actual current offers to maintain accuracy.

Does AggregateOffer improve marketplace SEO?

Yes, AggregateOffer significantly enhances marketplace visibility by enabling rich product listings with price ranges and seller counts, improving click-through rates and conversion tracking.

How often should I update AggregateOffer schema?

Update when pricing changes, new offers are added, or availability changes. Keep price ranges and offer counts current to maintain search result accuracy.