Product Structured Data – A Step By Step Guide

Product Structured Data – A Step By Step Guide featured image
27 Oct 2020
Nirlep Patel
Structured Data

Product Struture Data Guide

Adding Structured Data to Your Product Pages enables Google to display detailed product information in rich search results, including Google Images. With the help of the Markup, viewers can see various product features like Price, availability, and review ratings directly via search results.

Using the Markup for product pages will help you attract potential customers when they search for products on Google Search Or Images.

PRO TIP: The post only explains how to make your products eligible for display on Google Search results and Google Images. For displaying your products as unpaid listings on the Google Shopping Tab, Provide a feed through Google Merchant Centre for opting for surfaces across Google.


You can use it for two types of Product Pages:

  1. Product Pages Describing a Single Product
  2. Shopping Aggregator Page, listing a Single Product in addition to information about different sellers offering similar products.

PRO TIP 👨🏻‍🏫 : Using OfferShippingDetails structured data lets people know about shipping costs, estimated delivery time frame based on delivery location and company shipping policies.The shipping details can appear on the overview and store tabs for specific product results. The said feature is only available in the US. It is available in English on Mobile Devices.


Please refer to the earlier posts of the Series to know in detail about How To Add Structured Data.


  1. Use the Markup only for specific products, not a category or product lists. Presently, Product Rich Results support pages focusing on a single product.
  2. Do Not use the Markup for Adult-Related Products.
  3. For Product Reviews, ensure to add a valid name for the Person and Team entities.
  4. For displaying Product Information in the rich image viewer, always include the name, image, price and priceCurrency entities.
  5. For displaying your product information in the Related items feature, make sure to include the name, image, price, priceCurrency and availability feature.


  1. Modelling Free Shipping:Use the ShippingRate property to zero for specifying free shipping for all regions where you ship the products on your products pages.
  2. Specifying Regions that you do not ship: Add the doesNotShip property for specifying regions where you do not ship your products.
  3. Specifying Multiple Shipping Services for For the Same Delivery Region: Use the ShippingDetails property multiple times for specifying several shipping services within the same delivery region. Use the said property with different combinations of the ShippingRate and DeliveryTime properties.In case you have multiple ShippingRate properties for the same delivery location, Google will display the cheapest delivery shipping rated option.


A. Product:

The entity holds the said product or service offered.

The various sub-properties of the entity are as follows:

  1. Name: The Entity holds the Name of the said product.
  2. Review: The nestled review of the Product. Ensure to follow the Review snippet guidelines and the recommended and required properties list.
  3. AggregateRating: The nested AggregateRating of the product. Ensure to follow the Review Snippets Guidelines and the Recommended and Required list of properties.
  4. Offers: The nested offer or Aggregate offer to sell the product. Ensure to include the required and recommended list of properties for either of the entities.
  5. Brand: The entity holds the product brand. In case you set the type to anything other than Brand or Organisation, Google will consider it as a thing. Hence, it is recommended using the Brand or Organisation property instead.
  6. Description: The entity holds the product description.
  7. Gtin8 | Gtin13 | Gtin14 | Mpn | Isbn: The entity holds all identifiers. Ensure to add all identifiers.
  8. Sku: The entity holds a merchant-specific identifier for the product.
  9. Image: The entity holds the URL of a product photo.
    • Every Page must contain at least one image.
    • Images URLs should be indexable and crawlable.
    • All images must represent the marked up.
    • All image file formats must be supported by Google Images.
    • High-Resolution images are preferred.

B Offer: The entity holds an offer for transferring some rights to an item or for providing a service.

Include the following sub-properties :

  1. Price: The entity holds the offer price of the product. The entity is required for your products to be eligible for rich image viewer and related items feature in Google Images.
  2. Availability: The entity holds all possible product availability options. It is expressed with a URL link in the markup. You can add their short names instead, without the full URL scope. The said property is required for products to be eligible for the related items feature in Google Images.
  3. ItemOffered: The entity holds the items being sold. It includes a nestled product but can also contain other item types or free text.
  4. PriceCurrency: The entity holds the currency used to describe the product price, in three-letter ISO 4217.
  5. PriceValidUntil: The entity holds the date represented in ISO-8601 after which the said price will no longer be available. The product snippet may not display the said entity representing a past date.
  6. ShippingDetails: The entity holds nested information regarding the shipping policies and options associated with an offer. Ensure to add the shippingdetails and the required and recommended properties.
  7. URL: The URL of the Product web page.

C. OfferShippingDetails:

The entity holds the shipping costs and estimated delivery time frames based on the location and your company’s shipping policies. The OfferShippingDetails property is not a necessity.

The following properties are required:

  • ShippingDestination: The property indicates the shipping destination. Ensure to specify various sub-properties like ShippingDestination.addressCountry, ShippingDestination.addressRegion.
  • ShippingDestination.addressCountry: The entity contains the two-digit country code in ISO 3166-1
  • DeliveryTime: The entity holds the total time taken between the order receipt and the goods reaching the final customer. Nest the following properties:
    • DeliveryTime.businessDays
    • Delivery.cutOffTime
    • DeliveryTime.handlingTime
    • Delivery.trasitTime
  • 4.DeliveryTime. businessDays: The entity holds the number of days that orders are processed. Specify the days using the DeliveryTime.businessDays.dayOfWeek.
  • DeliveryTime.dayOfWeek: The entity holds the day that the order is processed on. For orders received on non-business days, the processing starts on the next business day. The non-business days that fall in between are added to the handling time.
  • numberyTime.cutOffTime: The said time after which no new orders get processed on that day in ISO-8601 Format. One day gets added to the said handling time.
  • DeliveryTime.handlingTime: The said holdup time between the order receipt and the goods either leaving the warehouse or prepared for pickup. If the delivery is an onsite- pickup, then specify the
    • delivery.handlingTime.minValue
    • delivery.handlingTime.maxValue
    • delivery.handlingTime.minValue
    • delivery.handlingTime.maxValue
  • DeliveryTime.handlingTime.minValue: The entity holds the minimum number of days a product is in transit between the order receipt and the goods either leaving the wear house or being prepped for pick up for on-site pick-up delivery methods. The value should be a non-negative whole number.
  • DeliveryTime.handlingTime.maxValue: The entity holds the maximum number of days a product is in transit between the order receipt and the goods either leaving the warehouse or being prepped for on-site delivery methods. The value should be a non-negative whole number.
  • DeliveryTime.transitTime: The entity holds the classic delay the order has been sent for delivery and the goods reaching the final customer.
  • DeliverTime.transitTime.maxValue: The entity holds the maximum number of days the said product is in transit between being out for delivery and being received by the customer.
  • DeliveryTime.transitTime.minValue: The entity holds the minimum number of days the said product is in transit between being out for delivery and being received by the customer.
  • DoesNotShip: The entity specified when shipping to a particular shippingDestination is unavailable. For stating that the shipping item is unavailable for ShippingDestination, set True. When you set the ShippingDestination value to True, only the ShippingDestination property is required.
  • Either ShippingDestination.addressRegion or a postal code: The entity holds the region or postal code when applicable. Provide either of the entities, not both.

When including shippingDestination.addressRegion, the said region should be a 2- or -3 digit sub-division code, without the country prefix.Postal code should have one of the following properties:

    • ShippingDestination.postalCode : The postal code.
    • ShippingDestination.postalCodePrefix: The defined range of postal code specified by a common textual preference. Always use the property for non-numeric reference.
    • ShippingDesination.postalCodeRange : Defined range of postal codes.
  • ShippingRate: The entity holds details about the shipping costs to the said destination. State the Ship ingRate.currency and ShippingRate.value properties. You must specify only one shippingRate or OfferShippingDetails property.
  • ShippingRate. currency: The said currency of the shipping cost in 3-letter ISO 4217. It must be the value stated in the offer.priceCurrency property.
  • ShippingRate.value: The said cost of shipping to the ShippingDestination. Do not include currency, symbols, thousand separators, or spaces. For specifying free shipping, set the value to 0.

D. BETA Properties:

The below-listed properties are still in BETA and do not surface as shipping details in product rich results at present. Providing the information helps Google know the relationship between the said product and other shipping related pages on your site. Google might use the information for developing Rich Results.

  1. ShippingSettingLink: The URL to the said page on a website outlining the company’s shipping policies. The page must hold one or more policies applicable to the product.

E. An Alternative Approach For Configuring Shipping Settings With Google:

Retailing shipping policies can be complicated and be subjected to further changes. In case of trouble relating to modelling and keeping your shipping details up-to-date with the markup, consider configuring your shipping settings in Google Merchant Centre.

When you choose to use both shipping markup and shipping settings in the Merchant Centre for products submitted in yourMerchant centre product fields, it only specifies submitted products in the product merchant centre fields. Shipping Markup applies to product markup in your site and not to your

F. AggregateOffer:

The entity holds and offers to represent an aggregation of other offers.

  1. LowPrice: The entity holds the lowest price of all offers available. Ensure to use a floating-point number.
  2. PriceCurrency: The stated currency described for the product price, in three-letter ISO 4217.

The property is specified for the product to be eligible for the rich image viewer and Related items feature in Google.

  1. HighPrice: The entity holds the highest price of all available offers. Ensure to use a floating-point number.
  2. OfferCount: The said number of offers for the product.

To know in detail about How To Monitor Rich Results with Google Search Console, Analysing Traffic and Fixing Troubleshooting Problems refer to the earlier posts of the series.