Creating “Product” Schema Markup

Schema Markup

Adding schema markup to your Product pages will make them eligible for rich results in search, increasing visibility and engagement with the right users. Structured data markup helps ecommerce websites in two ways. Firstly, schema markup creates context for the content on your web pages so search engines can better understand and match your products with a user’s search intent. For example, if your ecommerce store sells vegan snacks and alternatives, your structured data markup informs Google that these snacks are products for sale and that it’s not, for example, a blog post about the best vegan alternatives to snack on.

Secondly, structured data markup enhances how your store and products appear in search engine page results. These enhancements are called rich results, formerly called rich snippets, and they can include star ratings, reviews, price, availability, and much more! You’re probably familiar with star ratings and reviews, as they really stand out in search results like they do in the following example for Keen Footwear:

Currently, product rich results only support pages that focus on a single product, which means that you can’t create product markup on a category level.

Before You Begin

Required and Recommended Properties for Product Schema Markup

Google maintains documentation explaining what is required for “Product” markup. We’ve captured the required and recommended fields below. You must populate the required properties in order for your content to be eligible for display as a rich result in search. Recommended properties add more information to your structured data, which can provide a better user experience.


Schema Property Priority Mapping Notes
image Required ImageObject or URL:  A picture clearly showing the projecty. Must be in .jpg, .png, or. gif format.
name Required Text: The name of the product.
Either review or aggregateRating or offers Required Review, Aggregate Rating, or Offer: Once you include a review or aggregateRating or offers,  the other two properties become recommended in the Rich Results Test.
brand Recommended Brand or Organization: The brand of the product.
description Recommended Text: The product description.
gtin8 | gtin13 | gtin14 | mpn | isbn Recommended Text: Include all applicable global identifiers as described in
sku Recommended Text: The merchant-specific identifier for the product.

It’s important to note that Product markup requires only one of the following properties: 

  • Review
  • aggregateRating
  • Offers

Once one of these has been fulfilled, the remaining properties will become recommended rather than required. That being said, it is always best to markup all three properties as they can provide more information in the rich result.

💡 TIP! Add Review, aggregateRating, and Offers properties to provide more information in the rich results.

We created the following visual to help conceptualize the structure of Product markup. With Product as the starting point, the required properties are used to connect to information in the form of text, URLs, or other data items containing their own properties.

Product Schema Markup Visual


The required and recommended properties for the Review, AggregateRating and Offer data items are as follows:


Schema Property Priority Mapping Notes
author Required Person/Organization: The author of the review. The reviewer’s name must be a valid name.
reviewRating Required Rating: The rating given in this review.
reviewRating, ratingValue Required Number/Text: a numerical quality rating for the item, either a number, fraction, or percentage.
datePublished Recommended The date that the review was published, in ISO 8601 date format.
reviewRating, bestRating** Recommended Number: the highest value allowed in this rating system.
reviewRating, worstRating** Recommended Number: The lowest value allowed in this rating system.


Schema Property Priority Mapping Notes
ratingCount* Required Number: Specifies the number of people who provided a review with or without an accompanying rating.
reviewCount* Required Number: Specifies the number of people who provided a review with or without an accompanying rating.
ratingValue Required Number/Text: a numerical quality rating for the item, either a number, fraction, or percentage.
bestRating** Recommended Number: the highest value allowed in this rating system.
worstRating** Recommended Number: The lowest value allowed in this rating system.

*Note: at least one of ratingCount or reviewCount is required.
**Note: only required if the rating system is not a 5-point scale (1 = worst rating, 5 = best rating)


Schema Property Priority Mapping Notes
availability Required ItemAvailability: The possible product availability options. This should be expressed using the URL of an ItemAvailability enumeration from, for example or
price Required Number: The offer price of a product. Utilize a period to indicate a decimal point, and ensure no ambiguous symbols are used, such as “$”.
priceCurrency Required Text: The currency used to describe the product price, in three-letter ISO 4217 format (e.g. USD for US Dollars).
priceValidUntil Recommended Text: Date: The date (in ISO 8601 date format) after which the price will no longer be available.

💡 TIP! While itemReviewed is required for standalone Review and AggregateRating data items, these should not be used when embedded within the Product template.

FYI: For the most current guidelines on required and recommended fields, reference the Google Developers Reference Guide.

How to Create Product Schema Markup

There are two types of pages where you would typically create Product schema markup: a product page listing a single product, and a shopping aggregate page listing a single product with information from other sellers offering that product. Learn more in Google’s Product structured data documentation.

To help you get started, we put together the fundamental steps for creating product schema markup:

Step One: Required Properties

Add the required properties for Product structured data markup using our reference above. We recommend our own tools, the Schema App Editor and Schema App Highlighter, but there are many different options out there.

Step Two: Structured Data Guidelines

Check that your markup follows Google’s structured data guidelines

Step Three: Deployment

Deploy your markup. Google recommends using JSON-LD, which is also our favorite format for deployment!

Step Four: Validation

Test that your schema markup is working using Google’s Rich Results Testing Tool and the Schema Markup Validator, which will soon be replacing Google’s Structured Data Testing Tool. Read more about this change in our news post here.

This short video demonstrates the basics of creating a Product template. 

For detailed step-by-step tutorial for creating Product schema markup using the Schema App Highlighter, see our Knowledge Base article here.

How to Test Product Schema Markup

Schema Markup Validator

The Schema Markup Validator (SMV) was modeled after and will soon be replacing Google’s Structured Data Testing Tool (SDTT). Many SEOs still prefer the SDTT, as the SMV only validates your syntax and does not show your eligibility for rich results.

Schema Markup Validator Screenshot

Rich Results Testing Tool

Google’s Rich Results Testing Tool helps you to see which rich results can be generated by the structured data it contains.

Rich Result Test

Frequently Asked Questions about Product Schema Markup

What is Product schema markup?

Product schema markup is basically code you can add to the backend of your website so that search engines can provide additional information about your products in search through enhanced features like rich results. Schema markup is a structured data vocabulary that uses the properties and types defined at, a resource for SEOs created by Google, Microsoft, Yandex, and Yahoo! back in 2014.

How do you create Product schema markup?

  1. Add all of the required Product properties to your individual product pages. Google recommends using JSON-LD, as do we!
  2.  Validate your structured data markup using Google’s Rich Results Testing Tool.
  3. Deploy your structured data markup, and use the Schema Markup Validator to analyze your syntax for any errors.
  4. Request that Google recrawls your newly marked up web page using Google Search Console.

What is SKU in Product schema markup?

SKU stands for “stock keeping units”. This is a recommended property for Product schema markup, but if your ecommerce store does not use stock keeping units for their inventory then you do not need to include this property in your markup. You should only mark up content that is visible on the page, so while we advice including as many recommended properties as possible to make your schema markup as robust as it can be, it’s not always an option.

There are many nuances and content strategies that can help you maximize your results from Product structured data markup! We’ve helped ecommerce leaders such as Keen Footwear and Home Hardware to grow their organic search traffic through robust rich results. If you need help getting started with your schema markup, don’t hesitate to reach out! We’re here to help.

Set up a call with our technical experts today.


Jasmine Drudge-Willson is a Customer Success Manager at Schema App. Prior to this position, she worked as a research assistant tackling time, space, and identity representation in the development of a semantic web ontology for the Canadian Writing Research Collaboratory (University of Guelph). This work extended to the Revue 2.0 project (Université de Montréal) which addressed the role of ontologies in digital scholarly publishing environments. Her internship at Huma-Num—a very large research infrastructure project in Paris, France—solidified her passion for finding a balance between usability and ethical responsibility in cyberinfrastructure development.