Steven DiResta

Structured Data and Rich Results

An Intro to Structured Data

Structured Data Schema is invisible markup that helps define elements and their properties on your page.

It can be formatted in one of several ways, the differences of which dictate the amount of work required, but I personally only have ever used the JSON-LD format. This exists as a script in a page's <head> element.


Cool, but what is this for?

The Google search engine can do a lot of things, but its inferencing isn't perfect. Proper use of HTML elements goes a long way in letting your page's content be interpreted as intended, but it's not 100% airtight.

With structured data in place to explicitly state an element's type and properties, Googlebot has a much easier time discerning what it's looking at when it's crawling pages.

This comes with a couple of great benefits — better performance on the SERP, and the potential for rich results.


Rich Results

This is one of those things that you've seen a million times, but you maybe didn't quite know what makes them tick.

Rich results are content previews that appear on the SERP, typically at the very top — needless to say, a highly valuable position. This means that if a user searches a topic related to your own site's content, they may be able to engage with said content before even clicking onto your site.

They're rather easy to spot — open up a new tab and search something like "apple pie recipe", and you should see some rich results appear:

Image of apple pie recipes in the rich results

This is because Google believes that it has a good understanding of your search's intent.

You can even see a handful of the defined properties within these recipes' structured data schemas: the recipe titles, aggregate review ratings, cook time, a thumbnail image, and some of the ingredients are all showing here. Recipes can also have other properties that aren't shown here like their prep time, publish date, description, and more.

Think of how you might act if you searched for a product and saw a rich result appear — would you click one of those options at the top, or would you ignore them and scroll down for a plain link? I, personally, go for the rich results nearly every time.

Let's leave the realm of recipes to explore another example, this time looking more closely at the schema itself:

The Sock Company

Let's use a fictional company to create an example. Our company sells socks. Really great socks, as indicated by a plethora of high-scoring reviews. Our company is quite proud of this and has included a page on their site that displays a number of their reviews. In order for these reviews and scores to have the opportunity of showing on the SERP, our company needs to implement structured data.

Reviews are a property of a product; our company will first need to have product listings on its website in which to place the reviews. First, let's set up the <script> element in the head tag to hold a JSON-LD schema.

Image of an empty script set to contain a JSON-LD markup

The JSON schema itself will live within those curly brackets. To avoid stretching this article into an endless tutorial on designing each property of the schema, I'll skip to a completed version with some basic details set. Luckily, JSON is very human-readable; the format is simply the name of a property, then a colon, then the value of that property. You'll get a decent idea from looking at the image below:

Image of JSON-LD schema with several properties defined (name, description, review)

This sample markup is for a "Product", and has several properties defined: name, description, review, and aggregate rating. You'll notice that review and aggregate rating have their own subproperties to give further details. In aggregate rating, we can see that the overall rating for our company's product is a 4.8 out of 5, and that comes from 150 reviews.

Not a ton of work, right?

Implementing this only makes your website eligible for rich results — this is because they're never guaranteed to appear. A search engine will always have the final say on whether to display your content as rich results depending on the quality of your markup along with the intent of a user. Using Google's Rich Results Test you can check if a website (or block of code) can support rich results. Let's run our script to check our work:

Summary of Rich Results eligibility test

Success! We can see our product and review information is valid. Clicking each of the detected items provides more details by showing the defined properties. Want to click around yourself? Copy this page's URL and paste it into the Rich Results Test tool to see this page's structured data. Try it with other pages too!


To Sum it All Up

Structured data is a great way to reinforce your page's content since it has multiple benefits and a low skill floor. The JSON-LD format is very easy to use and there is no shortage of reference material written up by other developers and Google themselves.

A lot of the effort will go into the maintenance of the schema in case your content changes; the schema should be updated to reflect the most recent and accurate information.

For Further Information

Schema.org has extensive information and examples for the many different types of schema.

Check out Google's own resources on the topic: Introduction to structured data markup in Google Search

Google's documentation on the supported types of structured data markup: Structured data markup that Google Search supports


Written by Steven DiResta
January 25th, 2026
Back

Menu

Main Links

Recent Articles