Websites promotion & analytics

Select your language

Ask a question +38 096 558 7514

Microdata for online stores

Five to six years ago, many stores ignored structured data, but today, with the rapid development of Google search results and Google Shopping, it’s essential to implement structured data in online stores. We won’t go into long explanations about how it affects CTR and rankings, but we’ll dive straight into how to set up structured data without unnecessary details.

Structured data is needed for the following pages in an online store:

Structured data can be implemented in three ways - Microdata, RDFa, and JSON-LD. The choice depends on the ease of technical implementation in each specific case, but all follow schema.org libraries' rules. We'll look at using Microdata here. Other options can be easily explored on schema.org, and we’ll provide links. Let’s get started!

Homepage microdata:

First, you need to show the search engine bot information about your organization (name, address, contact details). Here’s what the structured data code for the homepage looks like:


<div itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Company Name">
<meta itemprop="description" content="Company Description">
<meta itemprop="image" content="link to logo">
<meta itemprop="telephone" content="phone number">
<span itemprop="email" content="email address">

<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<meta itemprop="streetAddress" content="Street, building, office">
<meta itemprop="addressLocality" content="City">
<meta itemprop="addressRegion" content="Region">
</div>
</div>

Product category microdata:

Микроразметка категории интернет-магазина

This could include lamps, laptops, phones, or anything that summarizes category information: minimum and maximum prices, the number of products in the category, and the category name.


<div itemscope itemtype="http://schema.org/Product">
<meta itemprop="Name" content="Category Name">
<div itemtype="http://schema.org/AggregateOffer" itemscope="" itemprop="offers">
<meta content="5114" itemprop="offerCount">          <!-- Number of products in the category -->
<meta content="987582" itemprop="highPrice">         <!-- Highest price in the category -->
<meta content="315" itemprop="lowPrice">             <!-- Lowest price in the category -->
<meta content="UAH" itemprop="priceCurrency">        <!-- Currency -->
</div>

Product page microdata:

Микроразметка товара

For product pages, structured data should first indicate the product name, image, price, availability, and a brief description.


<div itemscope="" itemtype="http://schema.org/Product">
<meta itemprop="name" content="Product Name">                       <!-- Product Name -->
<meta itemprop="image" content="https://site.ua/images/picture.png">   <!-- Product image (PNG format) -->

<div itemprop="offers" itemscope="" itemtype="https://schema.org/Offer">
<meta itemprop="priceCurrency" content="UAH">
<meta itemprop="price" content="5000.00">                              <!-- Product Price -->

<meta itemprop="priceValidUntil" content="2022-01-01">                 <!-- Current Date -->
<link itemprop="availability" href="http://schema.org/InStock">        <!-- Availability (InStock, OutOfStock, PreOrder) -->
<meta itemprop="brand" content="Brand">                                <!-- Product Brand -->

<meta itemprop="description" content="Product Description">            <!-- Product Description -->
<meta itemprop="url" content="https://site.ua">                        <!-- Product URL -->
<meta itemprop="sku" content="1234">                                   <!-- Product SKU -->
</div>
 
</div>

Secondly, if there are ratings with stars, it is also necessary to show this correctly to the robot:


<div itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating">
<meta itemprop="reviewCount" content="31"> <!-- Number of ratings -->
<meta itemprop="ratingValue" content="5">  <!-- Rating value -->
<meta itemprop="bestRating" content="5">   <!-- Maximum rating scale -->
</div>

In addition, you can see reviews on the product card:


<div itemprop="review" itemscope itemtype="http://schema.org/Review">
<meta itemprop="name" content="Review Title">          <!-- Review Title -->
<meta itemprop="reviewBody" content="Review Text">     <!-- Review Text -->   
<meta itemprop="author" content="Author Name">         <!-- Reviewer’s Name -->
<meta itemprop="datePublished" content="2016-12-01">   <!-- Review Date -->
</div>

In 2022, product page structured data introduced the ability to mark pros and cons for each review using the positiveNotes and negativeNotes parameters. In JSON format, it looks like this:


<script type="application/ld+json">
{
        "@context": "http://schema.org",
        "@type": "Product",
        "name": "Product Name",
        "review": {
          "@type": "Review",
          "name": "Review Title",
          "author": {
            "@type": "Person",
            "name": "Author Name"
          },
          "positiveNotes": {
            "@type": "ItemList",
            "itemListElement": [
              {
                "@type": "ListItem",
                "position": 1,
                "name": "Pros"
              }
            ]
          },
          "negativeNotes": {
            "@type": "ItemList",
            "itemListElement": [
              {
                "@type": "ListItem",
                "position": 1,
                "name": "Cons"
              }
            ]
          }
        }
      }
</script>

There are additional variables, which you can read more about on the schema.org/Product page. We recommend implementing all of the above.

Breadcrumbs microdata:

Микроразметка хлебных крошек

Breadcrumbs structured data can be used for catalog pages, information pages, or blogs.


<ol itemscope itemtype="http://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a itemprop="item" href="https://example.com/ ">
<span itemprop="name">Home</span></a>
<meta itemprop="position" content="1" />
</li>
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a itemprop="item" href="https://example.com/dresses">
<span itemprop="name">Main Category</span></a>
<meta itemprop="position" content="2" />
</li>
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a itemprop="item" href="https://example.com/dresses/real">
<span itemprop="name">Subcategory</span></a>
<meta itemprop="position" content="3" />
</li>
</ol>

When adding structured data, don’t just wait for it to appear in search results. Use validation tools to check its implementation.

How to check structured data?

You can check structured data through search engine validators with just a few clicks. You can do this on Google's testing tool. These systems will tell you what’s right or wrong with your store’s structured data.

Additionally, in 2021, schema.org launched its own validator: https://validator.schema.org/

проверка микроразметки

The micro-markup validator will indicate where exactly there are problems, if there are any.

In popular CMS platforms, structured data is usually already built into the basic functionality. In most cases, structured data needs to be added to custom-built websites. We hope this material helps when writing a technical brief for your developer or web studio to ensure successful SEO and ranking in search engines.

If you have any questions about our services, please write how to contact you and briefly describe your business.

* Your personal data is completely protected and will not be disclosed to third parties.

Please select the best way to contact you.

  • United States+1
  • United Kingdom+44
  • Afghanistan (‫افغانستان‬‎)+93
  • Albania (Shqipëri)+355
  • Algeria (‫الجزائر‬‎)+213
  • American Samoa+1
  • Andorra+376
  • Angola+244
  • Anguilla+1
  • Antigua and Barbuda+1
  • Argentina+54
  • Armenia (Հայաստան)+374
  • Aruba+297
  • Ascension Island+247
  • Australia+61
  • Austria (Österreich)+43
  • Azerbaijan (Azərbaycan)+994
  • Bahamas+1
  • Bahrain (‫البحرين‬‎)+973
  • Bangladesh (বাংলাদেশ)+880
  • Barbados+1
  • Belarus (Беларусь)+375
  • Belgium (België)+32
  • Belize+501
  • Benin (Bénin)+229
  • Bermuda+1
  • Bhutan (འབྲུག)+975
  • Bolivia+591
  • Bosnia and Herzegovina (Босна и Херцеговина)+387
  • Botswana+267
  • Brazil (Brasil)+55
  • British Indian Ocean Territory+246
  • British Virgin Islands+1
  • Brunei+673
  • Bulgaria (България)+359
  • Burkina Faso+226
  • Burundi (Uburundi)+257
  • Cambodia (កម្ពុជា)+855
  • Cameroon (Cameroun)+237
  • Canada+1
  • Cape Verde (Kabu Verdi)+238
  • Caribbean Netherlands+599
  • Cayman Islands+1
  • Central African Republic (République centrafricaine)+236
  • Chad (Tchad)+235
  • Chile+56
  • China (中国)+86
  • Christmas Island+61
  • Cocos (Keeling) Islands+61
  • Colombia+57
  • Comoros (‫جزر القمر‬‎)+269
  • Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)+243
  • Congo (Republic) (Congo-Brazzaville)+242
  • Cook Islands+682
  • Costa Rica+506
  • Côte d’Ivoire+225
  • Croatia (Hrvatska)+385
  • Cuba+53
  • Curaçao+599
  • Cyprus (Κύπρος)+357
  • Czech Republic (Česká republika)+420
  • Denmark (Danmark)+45
  • Djibouti+253
  • Dominica+1
  • Dominican Republic (República Dominicana)+1
  • Ecuador+593
  • Egypt (‫مصر‬‎)+20
  • El Salvador+503
  • Equatorial Guinea (Guinea Ecuatorial)+240
  • Eritrea+291
  • Estonia (Eesti)+372
  • Eswatini+268
  • Ethiopia+251
  • Falkland Islands (Islas Malvinas)+500
  • Faroe Islands (Føroyar)+298
  • Fiji+679
  • Finland (Suomi)+358
  • France+33
  • French Guiana (Guyane française)+594
  • French Polynesia (Polynésie française)+689
  • Gabon+241
  • Gambia+220
  • Georgia (საქართველო)+995
  • Germany (Deutschland)+49
  • Ghana (Gaana)+233
  • Gibraltar+350
  • Greece (Ελλάδα)+30
  • Greenland (Kalaallit Nunaat)+299
  • Grenada+1
  • Guadeloupe+590
  • Guam+1
  • Guatemala+502
  • Guernsey+44
  • Guinea (Guinée)+224
  • Guinea-Bissau (Guiné Bissau)+245
  • Guyana+592
  • Haiti+509
  • Honduras+504
  • Hong Kong (香港)+852
  • Hungary (Magyarország)+36
  • Iceland (Ísland)+354
  • India (भारत)+91
  • Indonesia+62
  • Iran (‫ایران‬‎)+98
  • Iraq (‫العراق‬‎)+964
  • Ireland+353
  • Isle of Man+44
  • Israel (‫ישראל‬‎)+972
  • Italy (Italia)+39
  • Jamaica+1
  • Japan (日本)+81
  • Jersey+44
  • Jordan (‫الأردن‬‎)+962
  • Kazakhstan (Казахстан)+7
  • Kenya+254
  • Kiribati+686
  • Kosovo+383
  • Kuwait (‫الكويت‬‎)+965
  • Kyrgyzstan (Кыргызстан)+996
  • Laos (ລາວ)+856
  • Latvia (Latvija)+371
  • Lebanon (‫لبنان‬‎)+961
  • Lesotho+266
  • Liberia+231
  • Libya (‫ليبيا‬‎)+218
  • Liechtenstein+423
  • Lithuania (Lietuva)+370
  • Luxembourg+352
  • Macau (澳門)+853
  • North Macedonia (Македонија)+389
  • Madagascar (Madagasikara)+261
  • Malawi+265
  • Malaysia+60
  • Maldives+960
  • Mali+223
  • Malta+356
  • Marshall Islands+692
  • Martinique+596
  • Mauritania (‫موريتانيا‬‎)+222
  • Mauritius (Moris)+230
  • Mayotte+262
  • Mexico (México)+52
  • Micronesia+691
  • Moldova (Republica Moldova)+373
  • Monaco+377
  • Mongolia (Монгол)+976
  • Montenegro (Crna Gora)+382
  • Montserrat+1
  • Morocco (‫المغرب‬‎)+212
  • Mozambique (Moçambique)+258
  • Myanmar (Burma) (မြန်မာ)+95
  • Namibia (Namibië)+264
  • Nauru+674
  • Nepal (नेपाल)+977
  • Netherlands (Nederland)+31
  • New Caledonia (Nouvelle-Calédonie)+687
  • New Zealand+64
  • Nicaragua+505
  • Niger (Nijar)+227
  • Nigeria+234
  • Niue+683
  • Norfolk Island+672
  • North Korea (조선 민주주의 인민 공화국)+850
  • Northern Mariana Islands+1
  • Norway (Norge)+47
  • Oman (‫عُمان‬‎)+968
  • Pakistan (‫پاکستان‬‎)+92
  • Palau+680
  • Palestine (‫فلسطين‬‎)+970
  • Panama (Panamá)+507
  • Papua New Guinea+675
  • Paraguay+595
  • Peru (Perú)+51
  • Philippines+63
  • Poland (Polska)+48
  • Portugal+351
  • Puerto Rico+1
  • Qatar (‫قطر‬‎)+974
  • Réunion (La Réunion)+262
  • Romania (România)+40
  • Russia (Россия)+7
  • Rwanda+250
  • Saint Barthélemy+590
  • Saint Helena+290
  • Saint Kitts and Nevis+1
  • Saint Lucia+1
  • Saint Martin (Saint-Martin (partie française))+590
  • Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)+508
  • Saint Vincent and the Grenadines+1
  • Samoa+685
  • San Marino+378
  • São Tomé and Príncipe (São Tomé e Príncipe)+239
  • Saudi Arabia (‫المملكة العربية السعودية‬‎)+966
  • Senegal (Sénégal)+221
  • Serbia (Србија)+381
  • Seychelles+248
  • Sierra Leone+232
  • Singapore+65
  • Sint Maarten+1
  • Slovakia (Slovensko)+421
  • Slovenia (Slovenija)+386
  • Solomon Islands+677
  • Somalia (Soomaaliya)+252
  • South Africa+27
  • South Korea (대한민국)+82
  • South Sudan (‫جنوب السودان‬‎)+211
  • Spain (España)+34
  • Sri Lanka (ශ්‍රී ලංකාව)+94
  • Sudan (‫السودان‬‎)+249
  • Suriname+597
  • Svalbard and Jan Mayen+47
  • Sweden (Sverige)+46
  • Switzerland (Schweiz)+41
  • Syria (‫سوريا‬‎)+963
  • Taiwan (台灣)+886
  • Tajikistan+992
  • Tanzania+255
  • Thailand (ไทย)+66
  • Timor-Leste+670
  • Togo+228
  • Tokelau+690
  • Tonga+676
  • Trinidad and Tobago+1
  • Tunisia (‫تونس‬‎)+216
  • Turkey (Türkiye)+90
  • Turkmenistan+993
  • Turks and Caicos Islands+1
  • Tuvalu+688
  • U.S. Virgin Islands+1
  • Uganda+256
  • Ukraine (Україна)+380
  • United Arab Emirates (‫الإمارات العربية المتحدة‬‎)+971
  • United Kingdom+44
  • United States+1
  • Uruguay+598
  • Uzbekistan (Oʻzbekiston)+998
  • Vanuatu+678
  • Vatican City (Città del Vaticano)+39
  • Venezuela+58
  • Vietnam (Việt Nam)+84
  • Wallis and Futuna (Wallis-et-Futuna)+681
  • Western Sahara (‫الصحراء الغربية‬‎)+212
  • Yemen (‫اليمن‬‎)+967
  • Zambia+260
  • Zimbabwe+263
  • Åland Islands+358
Thanks! Your message has been sent.
Sending failed. Please fix the errors and try again.