A Beginner’s Guide to Structured Data for SEO

Structured data featured image

If there’s one thing that’s intimidating to SEO beginners and experts alike, it’s structured data. Spend more than five minutes looking into and your head will start spinning in pure confusion, and you’ll vow never to look into it again. This is a big mistake. Done correctly, structured data can elevate your website to a whole new level. And we’re here to show you how with our beginner’s guide to structured data for SEO!

We’re going to walk you through what structured data is (in terms you’ll actually understand!), why it’s so beneficial to your website and share some handy resources to make things even easier for you.


What is structured data for SEO?

Structured data, otherwise known as schema markup, is a way of helping search engines understand the content of your website, in order to display your content for relevant searches. It also tells search engines which parts of your content are most important—and need prioritising—and how to present them in the most appealing way on the SERPs.

Let’s say you’ve got hundreds of recipes on your blog. When you google them, they show up the same way any other webpage might on the SERPs:

Screenshot of macaroni and cheese recipe in the SERPs

With structured data, however, your recipes might be displayed in a completely different manner:

Screenshot of macaroni cheese in rich snippets

In these examples, Google has taken the most important elements from the recipe pages—ratings, cooking times and ingredients—and displayed them as rich results for the convenience of people searching for macaroni cheese recipes.

So, that tells you what structured data does, but what does it actually look like?

Without getting too technical, structured data is a set of tags that are added to the code of your webpages. These tags are made up of vocabulary and syntax, or, words and grammar.

There are different types of vocabularies available, from schema.org to microformats.org, in addition to syntaxes like JSON-LD, Microdata and RDFa. The most popular combination favoured by most SEOs and Google tends to be schema.org and JSON-LD.

If you were using this type of structured data for SEO in your macaroni cheese recipe, then it would look something like this:

<html>
<head>
<title> Macaroni Cheese</title>
<script type=”application/ld+json”>
{
“@content”: “https://schema.org/”,
“@type”: “Recipe”,
“author”: {
“@type”: “Person”,
“name”: “John Doe”
},
“datePublished”: “2021-08-09”,
“description”: “This macaroni cheese is quick, easy to make and utterly delicious!”,
“prepTime”: “PT90M”
}
</script>
</head>
<body>
<h2>Macaroni cheese recipe</h2>
</p>
<em>by John Doe, 2021-08-09</em>
</p>
<p>
Preparation time: 90 minutes
</p>
</body>
<html>

If you’ve not had much experience dealing with code, or you’re not the biggest fan of it, this can look intimidating. Don’t worry though—you’ll take to it like a duck to water in no time!


Why is structured data so important?

Those of you who hate the idea of tinkering around with code are probably looking for excuses to not implement structured data into your content. Unfortunately, we’ve got a few key reasons why you need to start using it ASAP…

It helps Google… to help you

Context is key to everything in life and it’s even more important when it comes to online content. If you use structured data, Google will be better able to understand what your website is about and will be able to index it that much faster.

This understanding also increases the findability of your website. If a search engine knows what your content is about, they’ll be able to match it to relevant user queries, which helps drive traffic to your website and also improve your rankings.

It helps you take up more real estate

When it comes to the SERPs, you want to do everything you can to stand out from the crowd and attract potential buyers to your website. The best way to do this is by dominating the SERPs.

With structured data, you’ve got a better chance of bringing your content alive through rich results—featured snippets, carousels, knowledge boxes—which helps you take up more space on the SERPs and outperform your competitors.

It can help you show up for voice search

As we’ve discussed when looking at the best ways to optimise your pages for voice search, adding structured data to your website can also increase your chances of ranking well for voice searches.

It works wonders on your metrics

If your content shows up in rich results, it’s likely to:

  • Increase your click through rates
  • Drive more traffic to your website
  • Increase your conversion rates

The advantages to incorporating structured data into your content are endless. Add in the fact that it doesn’t take too much effort on your end to implement, and you’ve really got nothing to lose by taking the plunge.


Types of structured data for SEO

In our examples so far, we’ve focused on recipes, but make no mistake: that’s not the only type of structured data available! There are hundreds of schema markups for you to take advantage of.

Let’s take a look at a few, shall we?

 

Organisation schema markup

This markup is used for organisations—like schools, corporations, clubs—and will typically contain information like:

  • Company description
  • Logo
  • Contact information
  • Location(s)
  • Social media platforms
Screenshot of an example of organisation schema markup
Click here to see Schema.org’s example of this markup

“@type”: “Organization”,
“address”: {
“@type”: “PostalAddress”,
“addressLocality”: “Paris, France”,
“postalCode”: “F-75002”,
“streetAddress”: “38 avenue de l’Opera”
},
“email”: “secretariat(at)google.org”,
“faxNumber”: “( 33 1) 42 68 53 01”,
“member”: [
{
“@type”: “Organization”
},
{
“@type”: “Organization”
}
],
“alumni”: [
{
“@type”: “Person”,
“name”: “Jack Dan”
},
{
“@type”: “Person”,
“name”: “John Smith”
}
],
“name”: “Google.org (GOOG)”,
“telephone”: “( 33 1) 42 68 53 00”
}
</script>

Person schema markup

This markup is used for people—alive, dead, undead, or fictional—and will typically contain information like:

  • Name
  • Birthdate
  • Address
  • Family members
  • Education
Screenshot of a person schema markup
Click here to see Schema.org’s example of this markup

<script type=”application/ld+json”>
{
“@context”: “https://schema.org”,
“@type”: “Person”,
“address”: {
“@type”: “PostalAddress”,
“addressLocality”: “Seattle”,
“addressRegion”: “WA”,
“postalCode”: “98052”,
“streetAddress”: “20341 Whitworth Institute 405 N. Whitworth”
},
“colleague”: [
“http://www.xyz.edu/students/alicejones.html”,
“http://www.xyz.edu/students/bobsmith.html”
],
“email”: “mailto:[email protected]”,
“image”: “janedoe.jpg”,
“jobTitle”: “Professor”,
“name”: “Jane Doe”,
“telephone”: “(425) 123-4567”,
“url”: “http://www.janedoe.com”
}
</script>

Local business schema markup

This markup is used for a local business or branch of an organisation—like a restaurant, food chain, club—and will typically contain information like:

  • Service options
  • Location
  • Address
  • Hours
  • Contact information
Screenshot of a local business schema markup
Click here to see Schema.org’s example of this markup

<script type=”application/ld+json”>
{
“@context”: “https://schema.org”,
“@type”: “Restaurant”,
“address”: {
“@type”: “PostalAddress”,
“addressLocality”: “Sunnyvale”,
“addressRegion”: “CA”,
“postalCode”: “94086”,
“streetAddress”: “1901 Lemur Ave”
},
“aggregateRating”: {
“@type”: “AggregateRating”,
“ratingValue”: “4”,
“reviewCount”: “250”
},
“name”: “GreatFood”,
“openingHours”: [
“Mo-Sa 11:00-14:30”,
“Mo-Th 17:00-21:30”,
“Fr-Sa 17:00-22:00”
],
“priceRange”: “$$”,
“servesCuisine”: [
“Middle Eastern”,
“Mediterranean”
],
“telephone”: “(408) 714-1489”,
“url”: “http://www.greatfood.com”
}
</script>

Product schema markup

This markup is used for any product or service that you’re offering—like items of clothing, tickets, online streaming—and will typically contain information like:

  • Price
  • Product description
  • Ratings
  • Availability
Screenshot of an example of a product schema markup
Click here to see Schema.org’s example of this markup

<script type=”application/ld+json”>
{
“@context”: “https://schema.org”,
“@type”: “Product”,
“aggregateRating”: {
“@type”: “AggregateRating”,
“ratingValue”: “3.5”,
“reviewCount”: “11”
},
“description”: “0.7 cubic feet countertop microwave. Has six preset cooking categories and convenience features like Add-A-Minute and Child Lock.”,
“name”: “Kenmore White 17\” Microwave”,
“image”: “kenmore-microwave-17in.jpg”,
“offers”: {
“@type”: “Offer”,
“availability”: “https://schema.org/InStock”,
“price”: “55.00”,
“priceCurrency”: “USD”
},
“review”: [
{
“@type”: “Review”,
“author”: “Ellie”,
“datePublished”: “2011-04-01”,
“reviewBody”: “The lamp burned out and now I have to replace it.”,
“name”: “Not a happy camper”,
“reviewRating”: {
“@type”: “Rating”,
“bestRating”: “5”,
“ratingValue”: “1”,
“worstRating”: “1”
}
},
{
“@type”: “Review”,
“author”: “Lucas”,
“datePublished”: “2011-03-25”,
“reviewBody”: “Great microwave for the price. It is small and fits in my apartment.”,
“name”: “Value purchase”,
“reviewRating”: {
“@type”: “Rating”,
“bestRating”: “5”,
“ratingValue”: “4”,
“worstRating”: “1”
}
}
]
}
</script>

Article schema markup

This markup is used for articles—news articles, investigative reports or general blog posts—and will typically contain information like:

  • Title
  • Image/video screenshot
  • Website name
  • Date of publication
  • Social media shares
Screenshot of an example of an article schema markup
Click here to see Schema.org’s example of this markup

<script type=”application/ld+json”>
{
“@context”: “https://schema.org”,
“@type”: “Article”,
“author”: “John Doe”,
“interactionStatistic”: [
{
“@type”: “InteractionCounter”,
“interactionService”: {
“@type”: “WebSite”,
“name”: “Twitter”,
“url”: “http://www.twitter.com”
},
“interactionType”: “https://schema.org/ShareAction”,
“userInteractionCount”: “1203”
},
{
“@type”: “InteractionCounter”,
“interactionType”: “https://schema.org/CommentAction”,
“userInteractionCount”: “78”
}
],
“name”: “How to Tie a Reef Knot”
}
</script>

Event schema markup

This markup is used for events occurring at a specific time and location—like concerts, webinars, festivals, lectures—and will typically contain information like:

  • Date
  • Time
  • Location
  • Prices
Screenshot of an example of event schema markup
Click here to see Schema.org’s example of this markup

<script type=”application/ld+json”>
{
“@context”: “https://schema.org”,
“@type”: “MusicGroup”,
“event”: [
{
“@type”: “Event”,
“location”: “Memphis, TN, US”,
“offers”: “ticketmaster.com/foofighters/may20-2011”,
“startDate”: “2011-05-20”,
“url”: “foo-fighters-may20-fedexforum”
},
{
“@type”: “Event”,
“location”: “Council Bluffs, IA, US”,
“offers”: “ticketmaster.com/foofighters/may23-2011”,
“startDate”: “2011-05-23”,
“url”: “foo-fighters-may23-midamericacenter”
}
],
“image”: [
“foofighters-1.jpg”,
“foofighters-2.jpg”,
“foofighters-3.jpg”
],
“name”: “Foo Fighters”,
“track”: [
{
“@type”: “MusicRecording”,
“audio”: “foo-fighters-rope-play.html”,
“duration”: “PT4M5S”,
“inAlbum”: “foo-fighters-wasting-light.html”,
“interactionStatistic”: {
“@type”: “InteractionCounter”,
“interactionType”: “https://schema.org/ListenAction”,
“userInteractionCount”: “14300”
},
“name”: “Rope”,
“offers”: “foo-fighters-rope-buy.html”,
“url”: “foo-fighters-rope.html”
},
{
“@type”: “MusicRecording”,
“audio”: “foo-fighters-everlong-play.html”,
“duration”: “PT6M33S”,
“inAlbum”: “foo-fighters-color-and-shape.html”,
“name”: “Everlong”,
“interactionStatistic”: {
“@type”: “InteractionCounter”,
“interactionType”: “https://schema.org/ListenAction”,
“userInteractionCount”: “11700”
},
“offers”: “foo-fighters-everlong-buy.html”,
“url”: “foo-fighters-everlong.html”
}
],
“subjectOf”: {
“@type”: “VideoObject”,
“description”: “Catch this exclusive interview with Dave Grohl and the Foo Fighters about their new album, Rope.”,
“duration”: “PT1M33S”,
“name”: “Interview with the Foo Fighters”,
“thumbnail”: “foo-fighters-interview-thumb.jpg”,
“interactionStatistic”: {
“@type”: “InteractionCounter”,
“interactionType”: “https://schema.org/CommentAction”,
“userInteractionCount”: “18”
}
}
}
</script>

This is just a drop in the structured data ocean! There are schemas for reviews, accommodation, tourist attractions, research organisations and so on. For the full list, check here.


How do I implement structured data?

Though it might seem tricky to begin with, you don’t have to be a web developer or heavy coder to be able to implement structured data across your website. Just follow the steps below and reap the rewards!

1. Pick your schema markups

Before you start making changes to your website, you first need to decide what types of schema markups you want to use. It’s not as simple as just picking one at random—it needs to fit the page you’re adding it to and general user intent.

Your best bet here is to head to schema.org to trawl through the various types of schema markups available. If you’re aiming to use structured data primarily to get rich snippets, you’ll want to check Google’s Search Gallery first to see which types they favour.

Don’t forget your competitors!

Just because you’ve not implemented structured data on your website yet doesn’t mean your competitors haven’t! That’s why you should take a sneak peek at your competitors’ webpages to see which markups they’re utilising—this will help you get a better idea of which ones you should be using.

To do this, you can check them on the SERPs and use schema.org’s validator tool to see which exact markups they’re using.

As an example, we googled ‘espresso makers’ and found the John Lewis espresso maker from our product schema example shown earlier:

Screenshot of an example of a product schema markup

We then pasted the URL into the validator tool and found four markups in total—WebPage, Organization, WebSite and Product:

Screenshot of schema.org's validator tool in action

Do the same with your competitors and make a note of any markups that might be relevant to your website.

2. Make a spreadsheet

Okay, so we might be slightly obsessed with using spreadsheets in most of our workflows. In our defence though, they do keep everything organised and tidy.

We’d suggest creating a spreadsheet with three columns:

  • URL
  • Schema markup
  • Implemented?

In the first column, you’ll make a list of all of the webpages that you feel would benefit from structured data. You can either list them in order of importance, or, if you’re intending to get it all out of the way ASAP, do it in any order.

In the second column, you’ll list the schema markup(s) that you want to add to each page. Again, make sure these markups are relevant to the pages, otherwise you’ll run into problems further down the line. The third column is then there for you to track your progress.

3. Take action

Now it’s time for you to start adding your schema markups to your website. Unless you’ve got a lot of experience with coding, and you feel comfortable adapting schema.org’s markups to suit your pages, we’d recommend using one of these methods instead…

Structured Data Markup Helper

Google has a handy tool that will help you add structured data to a sample webpage. All you have to do is pick out a data type, e.g., articles/events/products and then paste the URL from your spreadsheet.

Screenshot of Google's structured data markup helper

You’ll then proceed to tag your data. What this means is that you click and highlight certain sections of your content and define them as specified in the markup. In the example below, we highlighted our article title for the ‘name’ tag and started to highlight the author name for the ‘author’ tag:

Screenshot of tagging in Google's structured data markup helper

Once you’re done, all you have to do is select ‘create HTML’ and you’ll get the full structured data as JSON-LD markup. You can then copy and paste this, or download it, and add it to the head section of your HTML.

Schema Markup Generator

Created by Merkle, this tool helps you generate JSON-LD markups that include all of the required item properties and more. All you have to do is select which markup you’d like to create, fill out the boxes provided and voilà!

Once everything’s sorted, you can test it with Google’s tools (we’ll talk about this in the next section) or copy it, ready to be used on your website.

Plugins

If you’re using a website builder like WordPress, you’ll be able to take advantage of the wide range of free and paid structured data plugins available. All you have to do is pick one, install it and it should do all of the heavy lifting for you—you’ll only need to fill in a few boxes, instead of having to manually input the code yourself.

Do bear in mind that if you choose one of the free plugins, it might be slightly limited in capability compared to the paid plugins. Before you commit to one, we’d recommend checking reviews and experimenting with them to see what they’re capable of.

Quick note

If you’ve opted to use one of the plugins or markup generators mentioned above (or below in our resources section), you will only be able to generate relatively basic markups.

To create something more advanced, you’ll need to make changes to the code yourself. Of course, if you have a web developer on hand, or you’re willing to learn as you go along, it shouldn’t be a problem!

4. Test it out

It’s all well and good spending hours of your time picking out schema markups and adding them to your website, but how exactly do you know if it’s all working the way it should be? Well, here are a few tools you can use to find out!

Rich Results Test

This is Google’s official tool for testing your structured data to see whether it’s eligible for rich results. All you have to do is input your URL and it will do the rest.

In the example below, we picked out one of Moz’s latest articles, ‘Winning the Page Speed Race‘ to test its structured data:

Screenshot of using Google's Rich Results Test

As you can see, all of the structured data on the page—both Articles and Breadcrumbs—are eligible for rich results, which means that things are running as they should be.

Schema’s Validator Tool

This tool isn’t just for checking which schema markups your competitors are using; it’s also handy for detecting errors with your own structured data. Simply type in your URL and the tool will let you know if there are any problems.

Google Search Console

Another way you can monitor how well your structured data is faring is with Google Search Console. Just head over to your Enhancements report and you’ll be able to check on the health of your detected schema markups.

Screenshot of Google Search Console's enhancements report

As you can see, Google employs a simple traffic light system here:

  • Green tells you that everything is A-OK
  • Amber means that your markups are valid but have issues
  • Red tells you that there’s an error

If Google does flag anything, they’ll tell you which URL is suffering from the problem and offer up solutions so that you can fix it.


Top resources and tools for structured data

How to fix

To finish things off, we’ve compiled a list of all the top resources and tools that you can use to start using structured data for SEO—some that we’ve already covered, and others that are just the icing on the cake!

Learning resources

Structured data types

  • Schema.org: the full collection of structured data types.
  • Search Gallery: a list of the schema markups used by Google in rich snippets.

Structured data generation tools

Structured data validation tools


Final thoughts

Structured data is one of the many aspects of SEO that looks a lot more terrifying than it actually is. Once you get to the bottom of it, it’s actually pretty simple—as long as you’re willing to put in the time to learn how to use it properly.

Adding structured data to your website will help with your rankings, increase traffic and conversions, and potentially lead to you gaining some decent rich snippet real estate. In short, you’ve got more to lose by not implementing structured data!


For more handy tips, tricks and advice on the ins and outs of SEO, keep an eye on the Supersede Blog!

Share