The Covid-19 pandemic impacted many aspects of our lives, including how we shop for items and explore potential marketplaces.
There has been a shift from the real world to the digital world as research confirms that more customers are shopping online.
This means that digital marketers and SEOs must rethink how they present their products online, and use every tool in their arsenal to win search visibility and sell their products or services.
One such tool that can give ecommerce SEOs the upper hand is schema markup.
Now, there are many types of schema, but the product schema offers a bundle of information to users and search engines alike as it relates to ecommerce.
The product schema allows you to add specific product attributes to your product listings that can appear as rich results on the search engine results page (SERP).
These properties include:
You can see the full list of properties for the product schema on schema.org.
Product schema often returns a rich result or rich snippet in the SERPs, as we see here in this example from Google:
(A description, star rating, price range, and plenty more can appear alongside a product.)
These rich snippets draw attention and break through the noise of the SERPs that we see today.
Notice how some of the image results display a “Product” tag on the lower left-hand corner — this is another result of the product schema, which makes search results stand out and can drive clicks and conversions.
Since the product schema can display price, availability, review ratings, and other product qualities on a specific search result, this schema type can increase the pixel space of your SERP listing.
The added value of the various product qualities also works to increase organic click-through rate (CTR).
Recommended Reading: Testing FAQ Schema for Greater Search Visibility and CTR
Look at the star rating in the example above. That could be the social proof needed to get a potential customer to click.
A new addition to the this schema type is the Price Drop rich result, which can alert searchers to a price change if you specify a price with the Offer property. Google analyzes the “historical average of your product’s pricing” to calculate the price drop.
Another benefit of the product schema is being able to provide shipping information directly on the SERPs.
With the addition of the OfferShippingDetails structured data, you can specify if a product has free shipping or if there is a fee. This can be a determining factor in who a customer decides to do business with.
We cover the shipping details property in detail down below.
(Image Source: Google Search Central)
The product markup has many properties that can help both users and search engines understand the information on your pages — that is, if your pages meet the guidelines (i.e. the schema is used on a specific product page and the products are not adult-related).
Then, of course, there are best practices to follow to ensure that the schema is implemented correctly. In order for your content to display as a rich result on the SERPs, you need to include all the required properties.
You must include either the review, aggregateRating, or offers property as a part of your product schema.
When one is added, the other two become recommended properties — but at least one is required.
If you choose to implement the review snippet to showcase reviews of your items, it has required properties of its own.
Schema operates in a world of hierarchies.
Even though the Product schema has its own set of required properties, if you add the review schema, you must include:
Recommended Reading: What, How, and Why for Review Schema
If you add the AggregateRating property — which shows the average rating from multiple reviews — to your Product schema, you’ll also need to include:
Note: For reviews and ratings, you must host the reviews and/or ratings on your own site. Third-party reviews are not allowed.
In order to properly add an offer to your product, you must include only one required property: price.
There are, however, many recommended properties, including the shippingDetails property. As we saw with the original example above, this property shows shipping costs and locations.
Let’s take a closer look at this property.
Shipping details can be used to highlight things such as:
To indicate that a product has free shipping, set the shippingRate to “0” for all regions where you ship that product. If you have free shipping to the state of New York, for example, you would implement the following code from Google:
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "0",
"currency": "USD"
},
"shippingDestination": [{
"@type": "DefinedRegion",
"addressCountry": "US",
"addressRegion": ["NY"]
}]
}
The doesNotShip property specifies regions where shipping is unavailable. Google offers the example of shipping to the United States, but not to Alaska or Hawaii. In that case, the code used would look like this:
"shippingDetails": {
"@type": "OfferShippingDetails",
"doesNotShip": true,
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US",
"addressRegion": ["AK", "HI"]
}
}
Products often have multiple shipping options for users to choose (i.e. overnight shipping, standard, etc.). These choices affect the overall cost to ship, so you can specify the costs and options with multiple shippingDetails properties.
Recommended Reading: Technical SEO Best Practices: Schema
Each should then contain unique combinations of the shippingRate and deliveryTime. Google displays the data based on the cheapest option to ship.
Shipping costs often vary depending on the location of the recipient, and a simple tweak of the code can inform customers in a certain locale what shipping would cost them — down to the zip code level.
Google uses this example to highlight the specificity that the schema allows for. Here, the shipping rate is $3.49 for all customers who live in zip codes 98100-98199.
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "3.49",
"currency": "USD"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "US",
"postalCodeRange": {
"postalCodeBegin": "98100",
"postalCodeEnd": "98199"
}
Product schema can be written in JSON-LD, RDFa, or Microdata.
The length of the code depends on how many of the properties you choose to include. Since schema live in bundled hierarchies of each other, the code can be very minimal, or it can be like unpacking a nesting doll.
Google uses an example that includes multiple properties: name, description, brand, and even the product’s SKU number.
<html>
<head>
<title>Executive Anvil</title>
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "Executive Anvil",
"image": [
"https://example.com/photos/1x1/photo.jpg",
"https://example.com/photos/4x3/photo.jpg",
"https://example.com/photos/16x9/photo.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.",
"sku": "0446310786",
"mpn": "925872",
"brand": {
"@type": "Brand",
"name": "ACME"
},
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "4",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "Fred Benson"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.4",
"reviewCount": "89"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/anvil",
"priceCurrency": "USD",
"price": "119.99",
"priceValidUntil": "2020-11-20",
"itemCondition": "https://schema.org/UsedCondition",
"availability": "https://schema.org/InStock"
}
}
</script>
</head>
<body>
</body>
</html>
The code is then added to the page’s HTML, which can usually be done on the page’s advanced settings if you use a content management system.
Before you can add the code to your page, however, you first need to create it, which can present multiple challenges for some people.
Not everyone is trained with such technical acumen that they can write the code from hand. Even if you choose to follow along the template above and switch out the information for your own, you can still become lost in the characters — one mistake ruins the whole code.
Create schema effortlessly with a point-and-click interface with Schema Builder, a free Chrome plug-in.
More on Schema Builder, here: Schema Markup Generator: Build Structured Data Without Developers.
You simply click the property you want to add, and then find that applicable information on your product page. Take a look:
Most SEOs rely on the dev team to implement technical changes or updates — schema included. But relying on the dev team to make site changes is so passé!
You can implement structured data sitewide to any pages that match your specified variable all with a few clicks.
Schema Optimizer lets you implement schema schema once, and see it go live on thousands of pages.
There can be a few common issues with schema, so you'll want to run it through Google’s Rich Results Test to test it and confirm its eligibility for a rich snippet on the SERP.
To keep all of your schema operations under one roof, you can use Schema Tester, also a part of the free Chrome plug-in. If you're looking to test and validate at scale, you'll want to leverage an SEO platform so you can run a schema audit.
There may be a few considerations to keep in mind if you implement the product schema, but the benefits far outweigh the time it takes to create and deploy the schema — especially when you utilize Schema Builder and Schema Optimizer to cut out the manual labor and focus on the wins.
Looking for other schema or how it impacts other industries? Check out these resources: