How To Add Structured Data To Your eCommerce Website JSON-LD

How To Add Structured Data To Your eCommerce Website (JSON-LD)

Structured data, often called Schema Markup, is a standardized format for providing search engines with information about your content. For eCommerce websites, this can be particularly useful for showcasing product information directly within search results, potentially leading to higher click-through rates. However, in this article, we will discuss from the perspective of Google Merchant Center.

If you add products to Google Shopping, you might encounter an error saying that prices cannot be updated dynamically, mismatch availability, etc…
This is because something on your website is causing an issue.

Typical Google Merchant Warnings :

  • Mismatched value (page crawl) [price]
  • Mismatched value (page crawl) [availability]
  • Automatic item updates active [availability]
  • Automatic item updates active [condition]
  • Automatic item updates active [price]

Possible Causes :

  • You have enabled Automatic item update
    • You can disable this feature in Settings > Automatic Improvements, however I would recommend keeping this enabled
Disable Automatic Improvements Google Merchant Center
  • Having multiple prices on the website, which confuses Google
  • Prices are in the wrong currency
  • Only showing VAT exclusive prices
  • No structured data

Structured data is essentially an extra tag you must add using JSON-LD. This speeds up the web crawling process for Google Merchant and avoids collecting the wrong data. This article is referenced from Google Shopping FAQ.

If you are looking to add structured data to a eCommerce platform please have a look at the pre-made codes from the list below.

Here are some examples for developers. Make sure to replace the values with your specific product information.

<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "Product",
  "name": "Awesome Sneakers",
  "image": [
    "https://example.com/photos/1x1/photo.jpg",
    "https://example.com/photos/4x3/photo.jpg",
    "https://example.com/photos/16x9/photo.jpg"
   ],
  "description": "A pair of high-quality sneakers.",
  "sku": "12345",
  "mpn": "98765",
  "brand": {
    "@type": "Brand",
    "name": "Nike"
  },
  "review": {
    "@type": "Review",
    "reviewRating": {
      "@type": "Rating",
      "ratingValue": "4",
      "bestRating": "5"
    },
    "author": {
      "@type": "Person",
      "name": "John Doe"
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.4",
    "reviewCount": "89"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/product",
    "priceCurrency": "USD",
    "price": "89.99",
    "priceValidUntil": "2024-11-20",
    "itemCondition": "http://schema.org/UsedCondition",
    "availability": "http://schema.org/InStock",
    "seller": {
      "@type": "Organization",
      "name": "Nike"
    }
  }
}
</script>

Important

If you have existing schema data, you need to delete the old schema data or copy elements you need from the code above into your existing schema. If you don’t do this, then Google will see two product listings, resulting in errors.
For Example, if I already have the price, priceCurrency and availability, but do not have itemcondition. Then, you need to copy the one-line itemcondition and paste it inside the offers container. And not create a new offer container.

    "itemCondition": "http://schema.org/UsedCondition",

Checking The Results

You can use Google’s Structured data testing tool, to check if everything is done correctly. The below image shows an example of a correct listing.

Google Structured Data Testing Result

Need Help?
Do you have a question or need specialist support? Get in touch!

Subscribe
Notify of
guest
14 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Geek Hut
Geek Hut
5 years ago

These explanations for adding schema are frustrating. They never show a practical example of adding schema to a product on a HTML page. Do I add the product HTML before the closing div in the micro data example?

Sharmile Thaneshkumar
Sharmile Thaneshkumar
6 years ago

Hi,
I am receiving same error “Missing microdata for condition” for most of the products. I have created JSON_LD structured data with Google Tag manager. I don’t see any error when I tested with the structured testing tool. Website don’t have any existing schema data. everything now in tag manager. What could be the reason for getting this message in Merchant center.

Emmanuel Flossie
Reply to  Sharmile Thaneshkumar
6 years ago

Google Tag Manager loads scripts via Javascript, Google Shopping bot can not read javascript (client side) rendered data. You will need to install the JSON-LD strait on to the page (server side) and not use any javascript injected scripts or data. Hope it helps. Google Structured Data Testing tool only checks for syntax error, it does not check if Google Shopping can read it or not.

Sharmile Thaneshkumar
Sharmile Thaneshkumar
Reply to  Emmanuel Flossie
6 years ago

Thanks Emmanuel Flossie.

Md Sajedur Rahman
7 years ago

How could i use it for product listing page ..

Emmanuel Flossie
Reply to  Md Sajedur Rahman
7 years ago

If you are unsure about this article, please contact your web developer. This page is designated for Google Shopping / Merchant.

Roshani Khanna
8 years ago

Is it Helping for improve SERP of my Website ? If yes then I will Surely Add This.
Regards
Roshani Khanna

Emmanuel Flossie
Reply to  Roshani Khanna
8 years ago

It does help your SERP, this alone will not boost your SEO dramatically. Other elements need to be improved too.

Roshani Khanna
Reply to  Emmanuel Flossie
8 years ago

Thanks Emmanuel Flossie, Let me focus on that.

Piotr Stopa
Piotr Stopa
8 years ago

I have a Product detailed page, where there are variants based on size of the bottle (200ml, 400ml, 800ml) or versions (1 cartridge, 4 cartidges, 8 cartridges). Each of the varian has uniqe GTIN. How to properly tag them in microdata?

Emmanuel Flossie
Reply to  Piotr Stopa
8 years ago

Hello Piotr, if the variants are defined in a drop down than no extra microdata needs to be added. If you have each product in its own element (meaning separated) than you can use one of the two first code snippets above. Mostly when you have different sizes you have them as a drop down, so based on this assumption I recommend that each link pre selects your product. To know more about pre selecting variants please read https://feedarmy.com/kb/google-shopping-optimize-landing-page/

Piotr Stopa
Piotr Stopa
Reply to  Emmanuel Flossie
8 years ago

hi Emmanuel, thank you for quick reply. Indeed, I have a dropdown selection for variants. Strange not to use GTINs in the microdata. I will stick then to aggregated review. Thanks.

Emmanuel Flossie
Reply to  Piotr Stopa
8 years ago

Hi Piotr, Google Shopping does not require GTIN to be in the microdata as of yet. However if this is not related to Google Shopping and you want to add the GTIN than simply create the microdata based on the second code example. This will work.

14
0
Would love your thoughts, please comment.x
()
x