Supported structured data attributes and values

Use structured data markup on your product landing pages to help Google retrieve up-to-date information about your products and offers directly from your website. Any structured data markup that is supported by Merchant Center will have corresponding attributes and accepted values, as listed in the Product data specification. Your structured data must  be matched to the corresponding values and attributes.

Not all attributes are supported by schema.org at this time.

Attributes and schema.org annotations

Attributes are one of the ways that the the product data that you submit to Merchant Center is organized. Each attribute contains a single piece of information about an item such as just the item's title or description. Accurately matching the schema.org value to the corresponding Product data specification attributes will lead to fewer errors when validating your feed.

You can find the main list of attributes in the Product data specification

schema.org Property

Product data attribute

Description
The following attributes are from the schema.org Product schema.
sku id SKU string
name title Text
description description Text
image image_link A Valid image URL 
itemCondition condition Valid OfferItemCondition. The most common schema.org values are 'NewCondition' and 'UsedCondition'. 
gtin8
gtin12
gtin13
gtin14
isbn
gtin

Only one of these schema.org properties should be specified.

If you use gtin values, they must be the correct length and contain the correct check digit.

audience.suggestedGender gender Use the audience property to specify a PeopleAudience object which itself specifies suggestedGender. Valid values are those defined by the gender attribute:
  • male
  • female
  • unisex
mpn mpn Text
brand brand Text
color color Text

The following attributes are from the schema.org Offer schema, which must be nested within a Product using the offers property (see examples below).

price
priceCurrency 
price

The price should be only a number without currency symbols, thousands separators or spaces (e.g. '1498.99'). 

The priceCurrency value has to be a 3-letter ISO 4217 format (e.g. 'USD', 'GBP', 'EUR'), and that the currency should meet the language and currency requirements for your target country.

Note: price or priceCurrency can be provided directly under offers, or via priceSpecification (see examples below). 

availability availability

Valid values are from the ItemAvailability type. They’re mapped to feed values as follows:

Data spec schema value
in_stock
  • InStock 
  • LimitedAvailability 
  • OnlineOnly
out_of_stock
  • Discontinued
  • InStoreOnly
  • OutOfStock
  • SoldOut
preorder
  • PreOrder 
  • PreSale

 

itemCondition condition

Valid values are from the OfferItemCondition type. They’re mapped to feed values as follows:

Data spec  schema value
new
  • NewCondition
refurbished
  • RefurbishedCondition
used
  • DamagedCondition
  • UsedCondition
 

Note:  Specifying price, priceCurrency, and availability is required for automatic item updates.

Single product (example)

JSON-LD

<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "Product",
  "sku": "EXAMPLE-1337-json",
  "gtin14" : "12345678901234",
  "mpn": "925873",
  "image": "http://fake.example.com/test_executive.jpg",
  "name": "Executive test JSON-LD",
  "description": "This is just a boring example",
  "brand": {
    "@type": "Thing",
    "name": "EXAMPLE"
  },
  "color" : "Silver",
  "audience": {
    "@type": "PeopleAudience",
    "suggestedGender": "unisex"
  },
  "offers": {
    "@type": "Offer",
    "priceCurrency": "USD",
    "price": "119.99",
    "itemCondition": "http://schema.org/UsedCondition",
    "availability": "http://schema.org/InStock"
  }
}
</script>

Microdata

<span itemscope itemtype="http://schema.org/Product">
    <meta itemprop="sku" content="EXAMPLE-1337-micro">
    <meta itemprop="gtin14" content="12345678901234">
    <meta itemprop="mpn" content="925873">
    <meta itemprop="image" content="http://fake.example.com/test_executive.jpg"/>
    <meta itemprop="name" content="Executive test Microdata">
    <meta itemprop="description" content="This is just a boring example">
    <meta itemprop="brand" content="EXAMPLE">
    <meta itemprop="color" content="Silver">
    <span itemprop="audience" itemscope itemtype="http://schema.org/PeopleAudience">
              <meta itemprop="suggestedGender" content="unisex"/>
    </span>
    <span itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        <meta itemprop="priceCurrency" content="USD"/>
        <meta itemprop="price" content="119.99">
        <link itemprop="itemCondition" href="http://schema.org/UsedCondition"/>
        <link itemprop="availability" href="http://schema.org/InStock"/>
    </span>
</span>

Products variants

Certain products may contain multiple variants, such as color or price. To show the variants, you need to add additional structured data to show that there are multiple products on one page.

Example

JSON-LD

<script type="application/ld+json">
  [
   {
        "@context": "http://schema.org/",
          "@type": "Product",
          "sku": "EXAMPLE-1337-json-silver",
          "gtin14" : "12345678901234",
          "mpn": "925873",
          "image": "http://fake.example.com/test_executive.jpg",
          "name": "Example Test",
          "description": "This is just a boring example",
          "brand": {
            "@type": "Thing",
            "name": "EXAMPLE"
          },
          "color" : "Silver",
          "offers": {
            "@type": "Offer",
            "priceCurrency": "USD",
            "price": "119.99",
            "itemCondition": "http://schema.org/UsedCondition",
            "availability": "http://schema.org/InStock"
          }
     },
    {
        "@context": "http://schema.org/",
          "@type": "Product",
          "sku": "EXAMPLE-1337-json-gold",
          "gtin14" : "12345678901234",
          "mpn": "925873",
          "image": "http://fake.example.com/test_executive.jpg",
          "name": "Example Test",
          "description": "This is just a boring example",
          "brand": {
            "@type": "Thing",
            "name": "EXAMPLE"
          },
          "color" : "Gold",
          "offers": {
            "@type": "Offer",
            "priceCurrency": "USD",
            "price": "3119.99",
            "itemCondition": "http://schema.org/UsedCondition",
            "availability": "http://schema.org/InStock"
          }
    }
  ]
</script>

Microdata 

<span itemscope itemtype="http://schema.org/Product">
    <meta itemprop="sku" content="EXAMPLE-1337-micro-silver">
    <meta itemprop="gtin14" content="12345678901234">
    <meta itemprop="mpn" content="925873">
    <meta itemprop="image" content="http://fake.example.com/test_executive.jpg"/>
    <meta itemprop="name" content="Example Test">
    <meta itemprop="description" content="This is just a boring example">
    <meta itemprop="brand" content="EXAMPLE">
    <meta itemprop="color" content="Silver">

 

    <span itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        <meta itemprop="priceCurrency" content="USD"/>
        <meta itemprop="price" content="119.99">
        <link itemprop="itemCondition" href="http://schema.org/UsedCondition"/>
        <link itemprop="availability" href="http://schema.org/InStock"/>
    </span>
</span>
<span itemscope itemtype="http://schema.org/Product">
    <meta itemprop="sku" content="EXAMPLE-1337-micro-gold">
    <meta itemprop="gtin14" content="12345678901235">
    <meta itemprop="mpn" content="925873">
    <meta itemprop="image" content="http://fake.example.com/test_executive.jpg"/>
    <meta itemprop="name" content="Example Test">
    <meta itemprop="description" content="This is just a boring example">
    <meta itemprop="brand" content="EXAMPLE">
    <meta itemprop="color" content="Gold">

    <span itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        <meta itemprop="priceCurrency" content="USD"/>
        <meta itemprop="price" content="3119.99">
        <link itemprop="itemCondition" href="http://schema.org/UsedCondition"/>
        <link itemprop="availability" href="http://schema.org/InStock"/>
    </span>
</span>

PriceSpecification

With structured data markups, it’s possible to represent price information in two different ways. In the above examples, price and priceCurrency are represented directly under the offers level. Alternatively, provide additional data with the priceSpecification attribute to represent your price information.

Example

JSON-LD

  "offers": {
    "@type": "Offer",
    "priceSpecification": {
        "@type":  "PriceSpecification",
        "priceCurrency": "USD",
        "price": "119.99"
    }

Microdata

   <span itemprop="offers" itemscope itemtype="http://schema.org/Offer">
      <span itemprop="priceSpecification" itemscope   
            itemtype="http://schema.org/PriceSpecification">
        <meta itemprop="priceCurrency" content="USD"/>
        <meta itemprop="price" content="119.99">
      </span>    
    </span>

Test your markup

Test your Schema.org implementation with the Structured Data Testing Tool. Visit the Google Search Console Help Center to learn more about using the tool, debugging any issues, and interpreting your results in the tool.

Requirements for structured data markup

  • Structured data markup must be present in the HTML returned from the web server.  The structured data markup can’t be generated with Javascript after the page has loaded.
  • Your landing page cannot change based on information about the user, such as if you adapt prices based on a user’s IP address or browser type. 
  • Structured data must match the values that are shown to the user. Providing incorrect data on your product landing pages is a violation of our webmaster guidelines

Was this article helpful?
How can we improve it?