Search engines use site crawlers to understand websites’ content and to index new and updated pages. As a result, they can categorize the pages and direct people to the right ones accordingly.
But sometimes, search engines need a little help. With so many products, prices, and new content to crawl, ecommerce websites pose a challenge to search engines. Schema markups can help a search engine get a clearer picture of the structure and relevance of your ecommerce site—essential to proper indexing and search result visibility.
Learn more about ecommerce schemas and their impact on organic traffic.
What is structured data?
Structured data is machine-readable code that marks up meaningful elements on a web page. The packaged chunks of contextual information, known as schema code or schema markup, tell search engines what the content means so they can accurately analyze and classify web pages.
You can add structured data markup to product data shared with Google Merchant Center, which helps Google display accurate information about your products across Google Search, Google Shopping, Google Images, and Google Maps. Structured data can enhance your click-through rate (CTR), which may contribute to improved rankings in Google search results.
How schema appears
You can find schema code inside pages on a website with a standard HTML <script> tag wrapped around it.
Inside the script tag is the script type application ID (the kind of format you use for structuring data). Websites commonly use JSON-LD format (JavaScript Object Notation for Linked Data). To specify that a block of data is using JSON-LD , the code should read: type application/ld+json.
Here’s a simple code snippet that describes valuable information about a product. Each attribute (name, description, image, brand, etc.) appears alongside its value on a new line.
{
"@context": "http://schema.org",
"@type": "Product",
"name": "Olympian Manual Typewriter",
"description": "A retro manual typewriter with vintage metal chassis and smooth typing action.",
"image": "https://example.com/typewriter.jpg",
"brand": {
"@type": "Olympian",
"name": "OL 500"
},
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "109.99",
"availability": "https://schema.org/InStock"
}
}
When Google scans the product web page, it learns vital information about the item—like name, description, image, brand, and price.
You can also add attributes to existing HTML tags called “microdata.” This is another way to signal to search engines the meaning and context of your content, so it can be displayed in relevant and useful ways.
Rich snippets
If you search “typewriters” or any product on Google, you’ll see rich snippets in action. With structured data, Google builds rich snippets—search results with extra details like prices, ratings, and shipping information.
Rich results (anything beyond the blue links on Google) are useful for ecommerce products because they let people shopping online compare a range of items at a glance. If something about your product’s rich snippet catches their eye (like positive reviews), the shopper might then engage with your brand.
How schema builds authority with Google
Schema can help Google see your experience, expertise, authority, and trustworthiness, or E-E-A-T, a rubric Google uses to assess a website. Structured data makes it possible for Google to read and interpret clearly by making connections the search engine might have missed on its own. All this context means Google can accurately gauge your website.
“Implementing schema markup serves as positive directional information for E-E-A-T, further enhancing your site's credibility in the eyes of both users and search engines,” says Arthur Camberlein, SEO senior specialist at Shopify.
But it’s important to know when and where to use ecommerce schema to build authority.
“When considering ecommerce schema, it’s essential to remember that schema markup are just indicators—additional context for bots to better understand your content,” says Arthur. “For example, product pages will include information like ratings, price, and availability, while blog posts will typically feature author information and FAQ schemas.”
When implementing ecommerce scheme, Arthur recommends doing it step by step, schema by schema. This way you can clearly track the impact and reduce the risk of downgrading the user experience or website growth.
How to build structured data
Building schema can be a complicated process (Google Search Central offers more information), but here are the basic steps:
1. Insert structured data. The location will vary depending on the web format you use, but structured data typically appears in the <head> section of an HTML page. JSON-LD is within a <script> tag in the <head> section. You can also add microdata to the HTML to identify and add additional context to the content within your website.
2. Test. The Google Rich Results Test or Schema.org Rich Result Test will help you spot any bugs in the code.
3. Do a trial run with a few deployed pages. Use Google’s URL inspection tool to see how the search engine views the page. If it looks good, proceed to the next step.
4. Ask Google to recrawl the website URLs. If you’ve added structured data to only a few pages, select the “Request indexing” option on the URL inspection tool. If you have several pages across your site that need to be recrawled, resubmit your sitemap. Google periodically crawls sites automatically, but submitting your sitemap to Google Search Console can speed up the process.
Types of structured data for your ecommerce website
There are many schema types available for ecommerce websites. Here are some of the most essential ones that deliver relevant enhanced search result pages:
Organization
To increase the visibility of the business behind your products, use organization schema to feed company information to search engines. You can create a markup with your business name, address, logo, areas served, and more. Only use organization markup on a single page of the website—typically your homepage. Use this sample code to guide you:
{
"@context": "http://schema.org",
"@type": "Organization",
"name": "Your Company Name",
"url": "https://www.yourwebsite.com",
"logo": "https://www.yourwebsite.com/logo.png",
"sameAs": [
"https://www.facebook.com/yourpage",
"https://twitter.com/yourhandle"
],
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"city": "Anytown",
"state": "CA",
"postalCode": "12345",
"country": "USA"
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1234567890",
"contactType": "customer service"
}
}
Local business
Use the local business schema if you have one or more physical locations in addition to your ecommerce store. The best spot to place the markup is on the particular landing page for each store. You can describe the business name, address, telephone number, opening hours, logo, price range, and URL. For example:
{
"@context": "http://schema.org",
"@type": "LocalBusiness",
"name": "Your Business Name",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Anytown",
"addressRegion": "CA",
"postalCode": "12345",
"addressCountry": "US"
},
"telephone": "+1234567890",
"openingHours": "Mo-Fr 09:00-17:00",
"image": "https://example.com/business-logo.png",
"priceRange": "$",
"url": "https://www.yourwebsite.com"
}
Product
Product schema markup is a must for ecommerce businesses selling physical products. By marking up product pages, the search bot will recognize your listings as products and showcase them properly in Google search results pages.
Product schema is built into many Shopify store themes, including the free flagship theme, Dawn. However, you can also add additional structured data manually to a Shopify website with a structured data liquid filter, or use schema markup applications to automate the process.
On your website, you can add the name, description, color, dimensions, product category, product ID, images, availability, special offers, brand, multiple reviews and ratings, shipping rates, stock-keeping unit (SKU), delivery times, and more.
While there’s no specific schema for category pages, there is a workaround: Use the ItemList type and make each category a ListItem. Nest products inside each, with product names, prices, images, and links. For example:
{
"@context": "http://schema.org",
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@type": "Product",
"name": "Product A",
"image": "https://example.com/product-a.jpg",
"price": "99.99",
"url": "https://example.com/product-a"
}
},
// ... other products
]
}
Price
The price specification schema lets you add the product’s price, offer price, discount, price drop, unit item price, and currency. Accurate representation of product prices and pricing history increases the chances of your products appearing as price drops in rich results on Google Search. The price schema is within the product schema. For example:
{
"@context": "http://schema.org",
"@type": "Product",
// ... other product details ...
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": 99.99,
"priceValidUntil": "2024-12-31",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition",
"priceSpecification": {
"@type": "PriceSpecification",
"value": 99.99,
"currency": "USD",
"priceComponent": {
"@type": "PriceComponent",
"name": "Base Price",
"price": 89.99
},
"priceComponent": {
"@type": "PriceComponent",
"name": "Shipping",
"price": 10.00
}
}
}
}
Breadcrumb
Breadcrumb schema helps search engines understand the hierarchical structure of ecommerce sites. If you want search engines to follow the breadcrumb trail, add a ListItem to represent each step and a position property (where it falls on the list) to signal the proper order. Use absolute URLs (full URLs) for the item property, and start with the first item on your list. For example:
<html>
<head>
<title> Winners</title>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Books",
"item": "https://example.com/books"
},{
"@type": "ListItem",
"position": 2,
"name": "YA",
"item": "https://example.com/books/ya"
},{
"@type": "ListItem",
"position": 3,
"name": "Winners"
}]
}
</script>
</head>
<body>
</body>
</html>
Availability
Using availability schema, you can show potential customers whether products are in stock directly on a rich snippet on the search engine results page (SERP). You can also show pre-order information or whether a product is coming soon, in pre-sale, or sold out. Availability schema can be added within the product schema.
Other schema types to consider
You can add schema for many other types of content that can yield rich results, including:
- Video schema. You can mark up livestreams and product videos. The markups for video description, thumbnail URL, date, duration, and more can raise visibility in video search, Google Images, and Google Discover.
- Review schema. Review schema adds structural markup to user reviews. It includes information about the reviewer, the rating, and the review content.
- Article schema. This marks up details of blog posts and informational articles—like the headline, author, publication date, FAQs, and article body.
- News schema. News schema provides context for news-related articles, including the headline, author, publication date, and article body.
Ecommerce schema FAQ
What is schema in ecommerce?
Schema is the description of webpage content in the form of a structured data vocabulary. In ecommerce, a schema type helps Google understand meaningful information such as products, prices, availability, and reviews.
Does Shopify use schema?
Product schema is built into many Shopify store themes, including the free flagship theme, Dawn. However, you can also add additional structured data manually to a Shopify website with a structured data liquid filter, or use schema markup applications to automate the process.
What is a schema example?
A basic product schema for ecommerce includes product markup code to capture information like the name, price, image, and availability. Each attribute consists of a name and a value, like “price” : $79.