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.