Creating “Product” Schema Markup Using the Schema App Highlighter

Modified on Wed, 30 Jun, 2021 at 3:36 PM

Adding schema markup to your Product pages will make them eligible for rich results in search, increasing visibility and engagement with the right users. However, manually adding markup to your product pages can be time consuming, especially if they number in the hundreds or thousands. Fortunately, our Highlighter tool enables you to create one template to deploy Product schema markup across all of your Product pages quickly and at scale!


 A Product Rich Results for a Keen Hiking Boot


Before You Begin

Required and Recommended Properties

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.

Product

https://schema.org/Product

Schema Property: image
Priority: Required
Mapping Notes: ImageObject or URL:  A picture clearly showing the projecty. Must be in .jpg, .png, or. gif format.

Schema Property: name
Priority: Required
Mapping Notes: Text: The name of the product.

Schema Property: Either review or aggregateRating or offers
Priority: Required
Mapping Notes: 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.

Schema Property: brand
Priority: Recommended
Mapping Notes: Brand or Organization: The brand of the product.

Schema Property: description
Priority: Recommended
Mapping Notes: Text: The product description.

Schema Property: gtin8 | gtin13 | gtin14 | mpn | isbn
Priority: Recommended
Mapping Notes: Text: Include all applicable global identifiers as described in schema.org/Product

Schema Property: sku
Priority: Recommended
Mapping Notes: 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.

 

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.

A graph of the required fields for Product markup to be eligible for Rich Results in search

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

Review

https://schema.org/Review

Schema Property: author
Priority: Required
Mapping Notes: Person/Organization: The author of the review. The reviewer’s name must be a valid name.

Schema Property: reviewRating
Priority: Required
Mapping Notes: Rating: The rating given in this review.

Schema Property: reviewRating, ratingValue
Priority: Required
Mapping Notes: Number/Text: a numerical quality rating for the item, either a number, fraction, or percentage.

Schema Property: datePublished
Priority: Recommended
Mapping Notes: Date: The date that the review was published, in ISO 8601 date format.

Schema Property: reviewRating, bestRating**
Priority: Recommended
Mapping Notes: Number: the highest value allowed in this rating system.

Schema Property: reviewRating, worstRating**
Priority: Recommended
Mapping Notes: Number: The lowest value allowed in this rating system.

AggregateRating

https://schema.org/AggregateRating

Schema Property: ratingCount*
Priority: Required
Mapping Notes: Number: Specifies the number of people who provided a review with or without an accompanying rating.

Schema Property: reviewCount*
Priority: Required
Mapping Notes: Number: Specifies the number of people who provided a review with or without an accompanying rating.

Schema Property: ratingValue
Priority: Required
Mapping Notes: Number/Text: a numerical quality rating for the item, either a number, fraction, or percentage.

Schema Property: bestRating**
Priority: Recommended
Mapping Notes: Number: the highest value allowed in this rating system.

Schema Property: worstRating**
Priority: Recommended
Mapping Notes: 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)

Offer

https://schema.org/Offer

Schema Property: availability
Priority: Required
Mapping Notes: ItemAvailability: The possible product availability options. This should be expressed using the URL of an ItemAvailability enumeration from schema.org, for example https://schema.org/InStock or https://schema.org/OutOfStock.

Schema Property: price
Priority: Required
Mapping Notes: Number: The offer price of a product. Utilize a period to indicate a decimal point, and ensure no ambiguous symbols are used, such as "$".

Schema Property: priceCurrency
Priority: Required
Mapping Notes:Text: The currency used to describe the product price, in three-letter ISO 4217 format (e.g. USD for US Dollars).

Schema Property: priceValidUntil
Priority: Recommended
Mapping Notes:Text: Date: The date (in ISO 8601 date format) after which the price will no longer be available.



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

Creating Your Template

This short video demonstrates the basics of creating a Product template. Read on for a detailed step-by-step tutorial with screenshots.

[embed]https://www.youtube.com/watch?v=VHuOrfcWtS0[/embed]

Product Markup

Create a Product template 

The first step is to create a Product template. In the Highlighter, click "Create Template" or "New Template".

Copy and paste the URL of a product page into the URL field. Select the Product class, and click "Load Page".

Inser a URL, select the Product class, and click "Load Page"

Required Properties

name

Once the page is loaded into the Highlighter, select an element on the page and choose which Schema markup property it represents from the "Select property" drop-down menu. Click "Save".

Select the name element and assign the name property to it.

image > Image Object > url

Sometimes schema.org requires further clarification. A schema.org type (aka class) may have properties that can be linked to another class with its own set of properties. For example, marking up an image requires you to use the image property to connect to an ImageObject. This ImageObject will have a url property.

Select and image.

offers > Offer > price

This same strategy is used for marking up properties related to Review, AggregateRating and Offer data items. In order to mark up the price, we must first use the offers property to connect to the Offer class which then allows us to select the price property.



Schema.org's documentation states that ambiguous symbols like "$" should not be included in prices. In order to exclude this from our highlighted content, click "Advanced" > "+ Add Filter", select "After" and insert the "$". This will instruct the Highlighter to only take the pricing information that comes after that symbol.

Select a filter.


offers > Offer > priceCurrency

Price currency must be marked up using the 3-letter ISO 4217 code. If the currency does't vary from page to page, it can be be added as a "Fixed Property". Select "Add Fixed Property" and enter the appropriate ISO currency code into the Value field. Select the offers property, the Offer class, and finally, the priceCurrency property.

Add a fixed property.


offers > Offer > availability > Item availability > url

Item availability can also be added as a fixed property. Select "Add Fixed Property", copy the URL of the appropriate schema.org Item Availability Enumeration (listed below) and paste it into the Value field. Select the offers property, the Offer class, the availability property,  the ItemAvailability class, and finally, the url property.

Add the item availability as a fixed property.


 


Recommended Properties

brand > Brand/Organization

When marking up a brand Google will accept text, but linking to a Brand or Organization data item is preferred. The best way to do this is to first create a Brand or Organization data item from within the Schema App Editor. Then, from within the Highlighter, click "Link Existing Data Item", select the brand property, search for the name of the Brand or Organization data item you created and select it.

Add a brand.



description/gtin/sku

As with the first properties listed in the tutorial, the description, gtin, and/or sku can likely be highlighted by clicking the element and then selecting the corresponding property.

Testing Your Markup

Structured Data Testing Tool or Schema Markup Validator

To validate your markup before publishing your template, click the "JSON LD" button. It will give you a preview of your markup. From here, click "Test with Google" to view any errors or warnings. This serves as an alert to either correct the markup or to highlight opportunities for adding or modifying content. 


View JSON LD and Test with Google

Once this is done, save your highlights, create your pageset, review your highlights and summary, and finally, click "Save & Finish".

Deploying Your Markup

If your markup is correct and error-free, ensure that your integration method is set-up and your template has been moved from "Draft" to "Published".

If you see errors (in the SDTT or in your Google Search Console) that you are unsure how to resolve, feel free to reach out to support@schemaapp.com and we will be happy to help out. 

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article