Pages

Friday, 10 July 2015

Enabling Rich Snippets for Products

If you're a merchant, you can give Google detailed product information that we can use to display rich snippets (for example, price, availability, and review ratings) right on our search results pages.
Using markup to enable rich snippets lets you:
  • Attract potential buyers while they are searching for items to buy on Google.
  • Control your product information. You can maintain the accuracy and freshness of your product information, so your customers find the relevant, current items they're looking for.
Image of a rich snippet with product information
This page explains how to mark up your product information so that Google can display rich snippets. There are two types of pages where you would typically use this markup:
  • product page that describes a single product
  • shopping aggregator page that lists a single product, along with information about different sellers offering that product
Examples for both types of markup appear below. See also the Reviews and ratings documentation.

About product offers

A product offer consists of product information (details about the product itself, such as its name, brand, and model) plus one of the following:
  • Offer (price and other offer information).
  • AggregateOffer (aggregated details about multiple Offers for the same product, including the lowest and highest available prices).
A Product can include an Offer or AggregateOffer (using "offers"); or an Offer or AggregateOffer can include one or more products (using "itemOffered"). Use the structure that works best for your content.
When you mark up your content for product information, use the following properties of the schema.org Producttype:
PropertyTypeDescription
name (required)TextThe name of the product.
imageURLThe URL of a product photo. Pictures clearly showing the product, e.g. against a white background, are preferred.
descriptionTextProduct description.
brandTextThe brand of the product.
reviewReviewA nested Review of the product.
aggregateRatingAggregateRatingA nested aggregateRating of the product.
offersOfferAn offer to sell the product. Includes a nested Offer or AggregateOffer.
sku
gtin8
gtin13
gtin14
mpn
TextVarious identification properties; these are described at schema.org/Product. Google recommends including brand and at least one identifier for each product.
When marking up offers within a product, use the following properties of the schema.org Offer type:
PropertyTypeDescription
price (required)NumberThe price of the product. Follow schema.org formatting guidelines.
priceCurrency(required)TextThe currency used to describe the product price, in three-letter ISO 4217 format.
priceValidUntilDateThe date (in ISO 8601 date format) after which the price will no longer be available. (Your product snippet may not display if the priceValidUntil property indicates a past date.)
availabilityItemAvailabilityValue is taken from a constrained list of options, expressed in markup using URL links. Google also understands their short names (for example InStock or OutOfStock, without the full URL scope.)
urlURLA URL to the product web page (that includes the Offer). (Don't use offerURL for markup that appears on the product page itself.)
itemOfferedThingThe item being sold. Typically, this includes a nested product, but it can also contain other item types or free text.
An AggregateOffer is a kind of Offer representing an aggregation of other offers. When marking up aggregate offers within a product, use the following properties of the schema.org AggregateOffer type:
PropertyTypeDescription
lowPrice (required)NumberThe lowest price of all offers available. Floating point number.
highPriceNumberThe highest price of all offers available. Floating point number.
priceCurrency (required)TextThe currency used to describe the product price, in three-letter ISO 4217 format.
offerCountNumberThe number of offers for the product.

Examples

The examples below show the following:
  • Single product page, marked up with Product and Offer properties
  • Shopping aggregator page, marked up with Product and AggregateOffer properties

Single product page

<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "Product",
  "name": "Executive Anvil",
  "image": "http://www.example.com/anvil_executive.jpg",
  "description": "Sleeker than ACME's Classic Anvil, the Executive Anvil is perfect for the business traveler looking for something to drop from a height.",
  "mpn": "925872",
  "brand":{
    "@type": "Thing",
    "name": "ACME"
  },
  "aggregateRating":{
    "@type": "AggregateRating",
    "ratingValue": "4.4",
    "reviewCount": "89"
  },
  "offers":{
    "@type": "Offer",
    "priceCurrency": "USD",
    "price": "119.99",
    "priceValidUntil": "2020-11-05",
    "itemCondition": "http://schema.org/UsedCondition",
    "availability": "http://schema.org/InStock",
    "seller":{
      "@type": "Organization",
      "name": "Executive Objects"
    }
  }
}
</script>

Shopping Aggregator page

<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "Product",
  "name": "Executive Anvil",
  "image": "http://www.example.com/anvil_executive.jpg",
  "brand":{
    "@type": "Thing",
    "name": "ACME"
  },
  "aggregateRating":{
    "@type": "AggregateRating",
    "ratingValue": "4.4",
    "ratingCount": "89"
  },
  "offers":{
    "@type": "AggregateOffer",
    "lowPrice": "119.99",
    "highPrice": "199.99",
    "priceCurrency": "USD"
  }
}
</script>

Additional Notes

  • Your product snippet may not display if the priceValidUntil property indicates a past date.

Product-specific usage guidelines and policies

The goal of a product rich snippet is to provide users with information about a specific product, such as the product’s price, availability, and reviewer ratings and commentary. The following guidelines apply to product snippets:
  • Product markup should be used for a specific product, not a category of products or a list of products. For example, “shoes in our shop” is not a specific product. See also our structured data policies for multiple entities on the same page.
  • Adult-related products are not supported.
  • If the product has been reviewed by a single reviewer, the reviewer’s name needs to be a valid name for a Person (e.g. "James Smith") or Team/Organization (e.g. "CNET Reviewers"). For example, "50% off on Black Friday" is not a valid name.