The Covid-19 pandemic has affected 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, specifically the product schema type, which offers a bundle of information to users and search engines alike.

What is Product Schema?  

The product schema allows you to add specific product attributes to your product listings that can appear as rich results on the SERPs.

These properties include:

  • Price
  • Reviews
  • Ratings
  • Offers
  • Product Description
  • Awards
  • And more

You can see the full list of properties for the product schema on schema.org.

Product Schema Markup Example

Product schema often returns a rich result or rich snippet in the SERPs, as we see here in this example from Google:

(The product schema can show a description, star rating, price range, and plenty more.)

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 can drive clicks and conversions.

The Benefits of Product Schema

Since the product schema can display price, availability, review ratings, and other product qualities on the SERPs, this schema type can increase the pixel space of your SERP listing.

The added value of the various product qualities also works to increase 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 product schema 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.  

  (Image Source: Google Search Central)

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)

Best Practices of the Product Schema

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.

Review

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:

  • author
  • itemReviewed
  • itemReviewed.name
  • reviewRating
  • reviewRating.ratingReivew  

AggregateRating 

If you add the AggregateRating property — which shows the average rating from multiple reviews — to your Product schema, you’ll also need to include:

  • itemReviewed
  • itemReviewed.name
  • ratingCount
  • reviewCount
  • ratingValue

Note: For reviews and ratings, you must host the reviews and/or ratings on your own site. Third-party reviews are not allowed.

Offers

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 Schema Markup

Shipping details can be used to highlight things such as:

  • Free shipping
  • Areas you do not ship to
  • Customers’ shipping options
  • Shipping cost by region
Free Shipping

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"]

  }]

}

Indicate Areas You Don't Ship To

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"]

  }

}

Shipping Options

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.

Each should then contain unique combinations of the shippingRate and deliveryTime. Google displays the data based on the cheapest option to ship.  

Shipping Cost by Region

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"

            }

How to Create Product Schema

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.

Product Schema Markup Generator

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.

This is why we created Schema Builder: a free Chrome plug-in with a point-and-click interface used to effortlessly build schema.

Recommended Reading: Schema Markup Generator: Implement 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:

 

Download Schema Builder


Testing Structured Data

To ensure your code is suited for rich results, run it through Google’s Rich Results Test.

 

Or, to keep all of your schema operations under one roof, you can use Schema Tester, also a part of the free Chrome plug-in.

Conclusion

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 to cut out the manual labor and focus on the wins.