All sites can benefit from implementing structured data, but there are specific types of SCHEMA markup which should be present on every eCommerce site to optimise it to its full potential.

An intro to SCHEMA

SCHEMA markup is essentially a form of code that helps Google to find and identify what is on each page of your site. Using this information, Google can then present your page, product or article in the best way in the Search Engine Results Page (SERP). Once you’ve got your site up and running, SCHEMA makes a good page better and can be the difference between your page appearing in position 10 or position 1. It’s one of the best SEO tools you can have under your belt.

Related: A Guide to Implementing Structured Data and SCHEMA Markup

Before you start, it’s worth checking out the structured data guidelines from Google.

If you’re ready to go right ahead and improve your eCommerce rankings, let’s dive in.

In this article, we’ll be talking primarily about JSON-LD as this is the format we use. It’s the most streamlined type of markup which makes it the ‘easiest’ to implement. We’ve given each type of structured data an importance rating out of 5; 5 being crucial and 1 being not very important.

Jump to the relevant section:

 

SCHEMA for your eCommerce home page

The home page is the page that probably gains the most links and the most traffic because it’s the top of the tree when it comes to your sitemap. On this page, the most important thing to tell search engines is who your company is, what you sell and how popular you are.

Organization SCHEMA

Importance level:

 

 

You can use Organization SCHEMA to give information about your company including your name, your trading name, founding date, logo, address, contact information and social media pages.

How it looks (shown in the Knowledge Panel):

Dreams rich snippet using organization schema markup

This kind of snippet won’t happen overnight, and it can be difficult to get information into that Knowledge Panel. But the results are worth the wait.

Markup:

<script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "Organization",
      "name": "companyname",
      "url": "https://www.brand.co.uk/",
      "logo": "http://logourl",
      "foundingDate": "1985",
      "sameAs": [
        "https://www.facebook.com/brand/",
        "https://twitter.com/brand",
        "https://www.instagram.com/brand/",
        "https://www.pinterest.co.uk/brand/",
        "https://www.youtube.com/user/brand"
      ]
    }
  </script>

 

You can also add things like awards and contact information for people who work at the company. Find out more about Organization SCHEMA on the schema.org site.

Importance level:

 

 

Sitelinks can be used to improve the way your homepage listing looks on Google. This feature is automated by Google, and your listing will take up double the usual space and also gives users the option to click on the page that’s most relevant to them.

A sitelinks searchbox allows users to search directly from the Google listing to find exactly what they want.

Find out how to set this up including full guidelines from Google.

How it looks:

Giving users this option makes it much easier for them to reach their end destination quicker.

Markup:

{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "url": "https://www.example.com/",
  "potentialAction": {
    "@type": "SearchAction",
    "target": "https://query.example.com/search?q={search_term_string}",
    "query-input": "required name=search_term_string"
  }
}

 

Importance level:

 

 

Just like in Hansel and Gretel, breadcrumbs help you to navigate through a site and will always lead up the site hierarchy back to the homepage. You should use Breadcrumb SCHEMA on every page on your site, apart from the homepage.

How it looks:

Here, we can see which categories we’ll pass through to get to the Toddler Bedroom page.

Markup:

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "name": "Baby",
    "item": "https://example.com/baby"
  },{
    "@type": "ListItem",
    "position": 2,
    "name": "Toddler Bedroom",
    "item": "https://example.com//babytoddlerbedroom"
  },{
    "@type": "ListItem",
    "position": 3,
    "name": "Toddler Beds",
    "item": "https://example.com/baby/toddlerbedroom/toddlerbeds"
  }]
}
  

 

SCHEMA for category pages

Moving further into the site, search engines need to know what type of products you sell

ItemList SCHEMA

ItemList SCHEMA is used to identify a list of items. This includes products on your category or subcategory page. Within ItemList you will also use ListItem SCHEMA which identifies each item in the list.

Markup:

<script type='application/ld+json'>
    {
      "@context": "http://www.schema.org",
      "numberOfItems": "3",
      "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "url": "https://www.example.co.uk/",
        }},
        {
         "@type": "ListItem",
         "position": 2,
            "url": "https://www.example.co.uk/",
         }},
        {
         "@type": "ListItem",
         "position": 3,
         "url": "https://www.example.co.uk/",
         }}
      ]
     }
  </script>

 

Other SCHEMA used on category pages

You will also use the following types of structured data on your category page. Click to jump to the relevant section.

SCHEMA for product pages

There are a few ways you can enhance your product pages to ensure they grab attention in the SERPs.

Product SCHEMA

Importance level:

 

 

Adding this type of structured data to your product pages will provide searchers with useful information about that product. This can include price, availability, a description of the product and reviews (which we’ll discuss in the next section).

Guidelines:

There are certain additional guidelines for Product SCHEMA:

  • Markup should only be used on specific products, not categories or collections of products
  • Adult-related products are not permitted
  • If including reviews, the reviewer’s name must be valid for either a person or team/company

Find out more on the Google guidelines page.

How it looks:

In this listing, you can see the rating, price and whether the item is in stock.

Markup:

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Product Name",
  "image": [
    "https://example.com/photos/1x1/photo.jpg",
    "https://example.com/photos/4x3/photo.jpg",
    "https://example.com/photos/16x9/photo.jpg"
   ],
  "description": "Product description.",
  "sku": "0446310786",
  "mpn": "925872",
  "brand": {
    "@type": "Thing",
    "name": "Product Name"
  },
  "review": {
    "@type": "Review",
    "reviewRating": {
      "@type": "Rating",
      "ratingValue": "4",
      "bestRating": "5"
    },
    "author": {
      "@type": "Person",
      "name": "Fred Benson"
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.4",
    "reviewCount": "89"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/product",
    "priceCurrency": "GBP",
    "price": "119.99",
    "availability": "https://schema.org/InStock",
    "seller": {
      "@type": "Organization",
      "name": "Your Company Name"
    }
  }
}

 

Review SCHEMA

Importance level:

 

 

Review SCHEMA comes into products and categories. You can add SCHEMA for a review of a single product but you can also add AggregateRating SCHEMA which pulls in data from multiple reviews to give an overall rating (this is what’s shown on the product listing with the orange stars in the previous section).

Guidelines

There are some guidelines you’ll need to adhere to:

  • Information provided must be about a specific item rather than a category or list of items. Adding a star rating on a category page with no products can result in a penalty
  • Pages with review content or ratings must have this information available for customers to see on the page
  • Local Business ratings must be sourced directly from users and information can’t be taken from other sites

For more information, see Google’s Guidelines.

Markup:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Product",
  "name": "[the name of the product]",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "[rating]",
    "reviewCount": "[number of reviews]"
  }
}
</script>

Rich results.

We know the schema to improve your CTR

Your Free Audit

SCHEMA for guide and blog content

If you have a decent content marketing strategy, it’s likely you’ve already got some sort of blog, magazine or resource content to provide your customers with useful information on topics surrounding your products.

If you’re already ranking on page 1 with your content, well done. But, you can make these listings bigger and better by implementing structured data.

Article SCHEMA

Importance level:

 

 

Implementing Article SCHEMA is a great way to pull your article into enhanced features in the SERPs such as carousels, featured snippets and visual stories.

How it looks:

While Google can pull information from your articles to appear in featured snippets, Article SCHEMA can increase the chance of this happening. The ‘In the News’ snippets that you see at the top of most topical searches will have NewsArticle SCHEMA.

Markup:

<script type="application/ld+json">
{ 
  "@context": "http://schema.org",
  "@type": "Article",
  "headline": "[article title]",
  "alternativeHeadline": "[article sub heading]",
  "image": "[main article image url]",
  "author": "[author name]",
  "datePublished": "[date in ISO format e.g. 2014-03-16]",
  "description": "[article summary]"
}
</script>

 

If you have subscription or paywalled content (unlikely on an eCommerce site but not impossible), you should also add Subscription and Paywalled Content SCHEMA.

You can also use BlogPosting SCHEMA to signify that this is a blog post.

How-To SCHEMA

Importance level:

 

 

Pretty self-explanatory, How-To SCHEMA indicates that your article or content has a how-to format. How To articles should follow a step by step process, telling the reader how to complete a task such as ‘How to lay laminate flooring’. If the main content on your page follows this structure, you could benefit from implementing this structured data on the page.

There are two types of How-To rich results – one with one image or one with multiple images.

Guidelines:

  • This type of structured data can’t be used for advertising purposes
  • Some types of content will be ineligible for How-to rich results including – sexually explicit, obscene, graphically violent, profane, promoting dangerous or illegal activities, hateful or harassing language
  • The source page must contain all the How-to content that’s submitted in the markup. Each page can only have one How-to focus
  • Introductions and summaries shouldn’t be included in the markup
  • Use Recipe structured data for recipes, not How-to markup. General advice articles are also not eligible for this markup, only step by step articles which have a clear and methodical structure

Read the full guidelines from Google.

How a standard How-To Result looks:

How a How-To Result with images looks:

The type of SCHEMA you choose will depend on what your ‘how-to’ is about. Some instructional articles just work better with images, especially searches like ‘how to tie a tie’.

Markup for standard result:

<html>
<head>
<title>How to make a cup of tea</title>
</head>
<body>
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "HowTo",
  "name": "How to make a cup of tea",
  "description": "Every great host needs to learn how to make a perfect cup of tea. This guide will explain how.",
  "image": {
    "@type": "ImageObject",
    "url": "https://example.com/photos/1x1/photo.jpg",
    "height": "406",
    "width": "305"
  },
  "estimatedCost": {
    "@type": "MonetaryAmount",
    "currency": "GBP",
    "value": "0"
  },
  "supply": [
    {
      "@type": "HowToSupply",
      "name": "teabags"
    }, {
      "@type": "HowToSupply",
      "name": "water"
    }, {
      "@type": "HowToSupply",
      "name": "milk"
    }, {
      "@type": "HowToSupply",
      "name": "sugar"
    }
  ],
  "tool": [
    {
      "@type": "HowToTool",
      "name": "kettle"
    }, {
      "@type": "HowToTool",
      "name": "mug"
    },{
      "@type": "HowToTool",
      "name": "teaspoon"
    }
  ],
  "step": [
    {
      "@type": "HowToStep",
      "url": "https://example.com/tea#step1",
      "name": "Fill the kettle",
      "itemListElement": [{
        "@type": "HowToDirection",
        "text": "Fill the kettle with water to the desired level - some modern kettles tell you how many cups on the side."
      }, {
        "@type": "HowToDirection",
        "text": "Put the kettle on the stand and flick it on."
      }],
      "image": {
        "@type": "ImageObject",
        "url": "https://example.com/photos/1x1/photo-step1.jpg",
        "height": "406",
        "width": "305"
      }
    }, {
      "@type": "HowToStep",
      "name": "Prepare the mug",
      "url": "https://example.com/tea#step2",
      "itemListElement": [{
        "@type": "HowToTip",
        "text": "You can use either a small or large mug."
      }, {
        "@type": "HowToDirection",
        "text": "Place your teabag in a clean mug."
      }],
      "image": {
        "@type": "ImageObject",
        "url": "https://example.com/photos/1x1/photo-step2.jpg",
        "height": "406",
        "width": "305"
      }
    }, {
      "@type": "HowToStep",
      "name": "Pour boiling water",
      "url": "https://example.com/tea#step3",
      "itemListElement": [{
        "@type": "HowToDirection",
        "text": "Once the kettle has boiled, pour water into the mug leaving room for milk at the top."
      }, {
        "@type": "HowToDirection",
        "text": "Leave the teabag to steep in the boiled water for as long as is instructed on the box of teabags. Usually 2-4 minutes."
      }],
      "image": {
        "@type": "ImageObject",
        "url": "https://example.com/photos/1x1/photo-step3.jpg",
        "height": "406",
        "width": "305"
      }
    }, {
      "@type": "HowToStep",
      "name": "Take out the teabag",
      "url": "https://example.com/tea#step4",
      "itemListElement": [{
        "@type": "HowToDirection",
        "text": "Using your teaspoon, take out the teabag, squeezing the bag on the side of the mug to drain it."
      }, {
        "@type": "HowToDirection",
        "text": "If you prefer your tea weaker, you don't have to squeeze out the teabag."
      }],
      "image": {
        "@type": "ImageObject",
        "url": "https://example.com/photos/1x1/photo-step4.jpg",
        "height": "406",
        "width": "305"
      }
    }, {
      "@type": "HowToStep",
      "name": "Add milk and sugar (optional)",
      "url": "https://example.com/tea#step5",
      "itemListElement": [{
        "@type": "HowToDirection",
        "text": "Pour in the milk to your preference."
      }, {
        "@type": "HowToDirection",
        "text": "Add as many teaspoons of sugar as required to your taste."
      }, {
        "@type": "HowToDirection",
        "text": "Stir until the sugar has dissolved or the milk is fully mixed. Enjoy!"
      }],
      "image": {
        "@type": "ImageObject",
        "url": "https://example.com/photos/1x1/photo-step5.jpg",
        "height": "406",
        "width": "305"
      }
    }
  ],
  "totalTime": "P2D"
}
</body>
</html>

 

Markup for result with images:

<html>
<head>
<title>How to tie a tie</title>
</head>
<body>
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "HowTo",
  "image": {
    "@type": "ImageObject",
    "url": "https://example.com/1x1/photo.jpg"
  },
  "name": "How to tie a tie",
  "description": "The four-in-hand knot is a great look for any occasion. From formal suits to casual jacket and tie affairs, it’s a simple way to quickly look great. Once you have mastered the knot you can tie it in just a minute, so it’s also great when you’re in a pinch too. ",
  "totalTime": "PT2M",
  "video": {
    "@type": "VideoObject",
    "name": "Tie a Tie",
    "description": "How to tie a four-in-hand knot.",
    "thumbnailUrl": "https://example.com/photos/photo.jpg",
    "contentUrl": "http://www.example.com/videos/123_600x400.mp4",
    "embedUrl": "http://www.example.com/videoplayer?id=123",
    "uploadDate": "2019-01-05T08:00:00+08:00",
    "duration": "P1MT10S"
  },
  "supply": [
    {
      "@type": "HowToSupply",
      "name": "A tie"
    }, {
      "@type": "HowToSupply",
      "name": "A collared shirt"
    }
  ],
  "tool": [
    {
      "@type": "HowToTool",
      "name": "A mirror"
    }
  ],
  "step":[
    {
      "@type": "HowToStep",
      "name": "Preparations",
      "text": "Button your shirt how you’d like to wear it, then drape the tie around your neck. Make the thick end about 1/3rd longer than the short end. For formal button down shirts, it usually works best with the small end of the tie between 4th and 5th button.",
      "image": "https://example.com/1x1/step1.jpg",
      "url": "https://example.com/tie#step1"
    }, {
      "@type": "HowToStep",
      "name": "Crossing once",
      "text": "Cross the long end over the short end. This will form the basis for your knot.",
      "image": "https://example.com/1x1/step2.jpg",
      "url": "https://example.com/tie#step2"
    }, {
      "@type": "HowToStep",
      "name": "Second crossing",
      "text": "Bring the long end back under the short end, then throw it back over the top of the short end in the other direction.",
      "image": "https://example.com/1x1/step3.jpg",
      "url": "https://example.com/tie#step3"
    }, {
      "@type": "HowToStep",
      "name": "Loop in",
      "text": "Now pull the long end through the loop near your neck, forming another loop near your neck.",
      "image": "https://example.com/1x1/step4.jpg",
      "url": "https://example.com/tie#step4"
    }, {
      "@type": "HowToStep",
      "name": "Pull and tighten",
      "text": "Pull the long end through that new loop and tighten to fit!",
      "image": "https://example.com/1x1/step5.jpg",
      "url": "https://example.com/tie#step5"
    }
  ]
}
</body>
</html>

 

FAQ SCHEMA

Importance level:

 

 

This type of structured data can be implemented on pages with content that have a question and answer structure. In this format, each question is followed by a quick answer. If you have pages that are already on page 1 of the SERPs, adding FAQ SCHEMA could help you to climb higher up the rankings.

How it looks:

example of FAQ SCHEMA snippet with google bot traffic article

We implemented this structured data on some of our articles and this is how it appears.

Markup:

<script type="application/ld+json">{
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [{
    "@type": "Question",
    "name": "
What is Question 1?
",
    "acceptedAnswer": {
      "@type": "Answer",
     "text": "
This is the answer for Question 1.
"
    }
  }, {
    "@type": "Question",
    "name": "
What is Question 2?
",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "
This is the answer for Question 2.
"
    }
  }, {
    "@type": "Question",
    "name": "
What is Question 3?
",
    "acceptedAnswer": {
 "@type": "Answer",
      "text": "
This is the answer for Question 3.
"
    }
  }, {
    "@type": "Question",
    "name": "
What is Question 4?
",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "
This is the answer for Question 4.
"
    }
  }, {
    "@type": "Question",
    "name": "
What is Question 5?
",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "
This is the answer for Question 5.
"
    }
  }, {
   "@type": "Question",
    "name": "
What is Question 6?
",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "
This is the answer for Question 6.
"
    }
  }, {
    "@type": "Question",
    "name": "
What is Question 7?
",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "
This is the answer for Question 7.
"
}
  } ]
  }</script>

 

You can also add FAQ SCHEMA to enhanced page copy if you have it on your category pages. This can be one way of getting on page 1 for long-tailed keywords and questions related to your products.

Q&A Schema

Importance level:

 

 

This SCHEMA is also for pages that have content in a question and answer format. It’s similar to FAQs, but in this format, one question can have multiple answers. This is mainly used in forums or product support pages that have the functionality for users to submit answers.

Guidelines:

  • Q&A SCHEMA shouldn’t be used on how-to guides, blog posts or essays that answer a question. It’s also not valid on static FAQ pages
  • Like How-to pages, content that is offensive will not be displayed in a rich result
  • Q&A markup should not be used for advertising
  • Q&A markup should only be used for pages that have a single question with multiple answers
  • Users must be able to submit answers to the question – static question and answer pages should use FAQ SCHEMA instead

Check out Google’s full guidelines.

How it looks:

Here you can see multiple answers to the question.

Markup:

 {
    "@context": "https://schema.org",
    "@type": "QAPage",
    "mainEntity": {
      "@type": "Question",
      "name": "How many ounces are there in a pound?",
      "text": "I have taken up a new interest in baking and keep running across directions in ounces and pounds. I have to translate between them and was wondering how many ounces are in a pound?",
      "answerCount": 3,
      "upvoteCount": 26,
      "dateCreated": "2016-07-23T21:11Z",
      "author": {
        "@type": "Person",
        "name": "New Baking User"
      },
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "1 pound (lb) is equal to 16 ounces (oz).",
        "dateCreated": "2016-11-02T21:11Z",
        "upvoteCount": 1337,
        "url": "https://example.com/question1#acceptedAnswer",
        "author": {
          "@type": "Person",
          "name": "SomeUser"
        }
      },
      "suggestedAnswer": [
        {
          "@type": "Answer",
          "text": "Are you looking for ounces or fluid ounces? If you are looking for fluid ounces there are 15.34 fluid ounces in a pound of water.",
          "dateCreated": "2016-11-02T21:11Z",
          "upvoteCount": 42,
          "url": "https://example.com/question1#suggestedAnswer1",
          "author": {
            "@type": "Person",
            "name": "AnotherUser"
          }
        }, {
          "@type": "Answer",
          "text": " I can't remember exactly, but I think 18 ounces in a lb. You might want to double check that.",
          "dateCreated": "2016-11-06T21:11Z",
          "upvoteCount": 0,
          "url": "https://example.com/question1#suggestedAnswer2",
          "author": {
            "@type": "Person",
            "name": "ConfusedUser"
          }
        }
      ]
    }
  }

 

Person SCHEMA

Importance level:

 

 

One of the biggest impacts felt from Google’s EAT update was to sites that were deemed untrustworthy due to lack of expertise and authority when it came to content. Think bloggers giving health advice with no medical qualifications to back it up.

Using Person SCHEMA on your author pages should theoretically help to signify to search engines that you have some expertise in the thing you’re talking about. For example, if you’re talking about marketing, signify that you have x amount of years working in the field and a related degree.

At the moment, all we know is that this type of structured data can get us a knowledge card for name searches. Anything else is experimental in relation to E-A-T for us, but it’s worth implementing for UX purposes and user trust if anything.

Markup:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type" : "Person",
  "name" : "[person's name]",
  "description" : "[person's bio]",
  "image" : "[image url of person]",
  "jobTitle": "[job tile]",
  "address" : {
    "@type" : "PostalAddress",
    "addressLocality" : "[Locality]",
    "addressRegion" : "[region]",
    "postalCode" : "[postal code]"
  },
  "telephone" : "[telephone number]",
  "email" : "[email address]"
}
</script>

 

You can also add personal social accounts to this markup.

SCHEMA for store pages

If you’re a brick and mortar business with lots of stores, you should implement this type of structured data on your individual store pages.

Local Business SCHEMA

Importance level:

 

 

Local Business structured data allows you to highlight opening hours, contact details and reviews of the store. If you’re a small business with only one location, you should consider using this over Organization. This should also be used if you’re a national business with several stores. See below for an example of the latter.

How it looks:

Markup:

<script type="application/ld+json">
{
    "@context": "http://schema.org/",
    "@type": "Invoice",
    "broker": {
      "@type": "LocalBusiness",
      "name": "ACME Home Heating"
    },
    "accountId": "xxxx-xxxx-xxxx-1234",
    "customer": {
      "@type": "Person",
      "name": "Jane Doe"
    },
    "paymentDueDate": "2015-01-30",
    "minimumPaymentDue": {
      "@type": "PriceSpecification",
      "price": 0.00,
      "priceCurrency": "USD"
    },
    "totalPaymentDue": {
      "@type": "PriceSpecification",
      "price": 0.00,
      "priceCurrency": "USD"
    },
    "paymentStatus": "http://schema.org/PaymentComplete",
    "referencesOrder": [
      {
        "@type": "Order",
        "description": "furnace",
        "orderDate": "2014-12-01",
        "orderNumber": "123ABC",
        "paymentMethod": "http://purl.org/goodrelations/v1#ByInvoice",
        "orderedItem": {
          "@type": "Product",
          "name": "ACME Furnace 3000",
          "productID": "ABC123"
        }
      },
      {
        "@type": "Order",
        "description": "furnace installation",
        "orderDate": "2014-12-02",
        "paymentMethod": "http://purl.org/goodrelations/v1#ByInvoice",
        "orderedItem": {
          "@type": "Service",
          "description": "furnace installation"
        }
      }
    ]
}
</script>
    

You may also like – 10 Google Search Operators to Mine Search Results

Think you need help implementing structured data on your site? Let us help.

Challenge Us

We'll exceed your expectations.

What's your goal?

Talk To Us

We love a good chinwag.

01244 564 500