Structured Data and Schema Markup

As a basic definition, there are 3 parts to a website: text, markup, and structured data. Text is the content, markup show the browser how the text should look, and structured data tells bots such as Google what the data is. Structured data can not only make your website look better but it can help search engines categorize your website as well. A lot of times the benefits of structured data aren’t very obvious, but as your understanding of SEO evolves it becomes more evident that it should be an integral part of any SEO plan.

In general search engines want to read and crawl data that is organized (i.e. “structured”) so that they can more efficiently crawl your website. Normal HTML markup can’t be easily read by crawlers. For instance, they can tell that text is big and blue, but they can’t tell that that text is a recipe or a review. With structured data, Google and other crawlers are more easily able to crawl your website and figure out the topical relevancy of your website. It is becoming a very hot topic for SEO’s all over the world, in all industries and almost mandatory for some industries.

Here are some commonly used types of structured data:

In total there are 1000’s of types of schema (people, places and things) from broad topics to ones that are very focused and specific. Some of the really specific ones such as “airline” or “sports organization” don’t really serve a direct purpose when it comes to SEO, but Google is constantly implementing new features so it is always best to mark up as much data as possible.

Defining what you data is from a structured data standpoint can really help search engines tell what your site is, instead of having to guess.


Up until 2016 or so, most SEO’s recommended using micro-data as the default schema type. More recently, Google themselves started recommend that people use JSON-LD instead of microdata in most situations. Prior to JSON-LD, SEO’s and web developers would need to “anchor” their schema to HTML within a web site. Now you can embed JSON-LD scripts anywhere in the page: in the body, head, or footer and there is no need for the structured data to be visible.

But the biggest reason most SEO’s care about JSON-LD or structured data? They want presence in featured snippets / rich snippets or what some refer to as “knowledge graph placement” while not technically correct. Here is some sample code for JSON-LD recipe I just whipped up:

<script type="application/ld+json">
 "@context": "",
 "@type": "Recipe",
 "name": "Patrick's Chocolate Pudding",
 "author": "Patrick Coombe",
 "image": "",
 "description": "Patrick's classic chocolate putting, made from scratch.",
 "aggregateRating": {
 "@type": "AggregateRating",
 "ratingValue": "4",
 "reviewCount": "500",
 "bestRating": "5",
 "worstRating": "1"
 "prepTime": "PT25M",
 "totalTime": "PT1H",
 "recipeYield": "15",
 "nutrition": {
 "@type": "NutritionInformation",
 "servingSize": "1 scoop",
 "calories": "200 calories",
 "fatContent": "1 g",
 "carbohydrateContent": "30 g",
 "recipeIngredient": [
 "1/3 cup of sugar",
 "1/2 cup of corn starch",
 "recipeInstructions": [

The end result would ultimately yield a snippet in Google that looks something along the lines of:

It may seem sometimes that there isn’t a rhyme or reason to how and where Google gives you these snippets. We like to use the method called “close your eyes, and click.”

Facebook Open Graph Protocol

This is where things start to get a bit technical. Structured data has always been a big part of SEO, but in the past 3-4 years it has really started to become a major part. For a quick an easy example, we’ll start with Facebook Open Graph Protocol. It might sound complicated, but really all it is is the code required to make a Facebook post look properly formatted.

facebook open graph

Structured data example. In this image, we illustrate how structured data can help a Facebook post look properly formatted, instead of a small thumbnail and random text.

<meta property="og:title" content="Make your Facebook Posts Look better"/>
<meta property="og:image" content=""/>
<meta property="og:site_name" content="Name of Your Website"/>
<meta property="og:description" content="By implementing this tag into your website, your Facebook posts will look so much better!"/>

There are a few more options when it comes to the Facebook Open Graph protocol, but this is the basic info you need to make your posts look swell.

Twitte Cards

Like Facebook Open Graph Protocol, Twitter Cards will help make your website look good. Overall there are about 8 types of Twitter Cards including “summary, app, gallery” and more. If you aren’t sure which type to choose, choose summary or summary with large image for now.

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@pmkoom">
<meta name="twitter:creator" content="@pmkoom">
<meta name="twitter:title" content="The Title of My Post">
<meta name="twitter:description" content="A detailed description, keep it short and sweet.">
<meta name="twitter:image" content="">

You might be thinking “I don’t use Twitter, I don’t need this” well keep in mind a few things:

With that in mind, it is a general “best practice” to implement this code in any website you are optimizing.

Google’s Knowledge Graph

This is one topic that really expands into a subject of its own. Structured data is also one of the aspects that powers Google’s Knowledge Graph. By marking up your content with the proper semantic language, you are helping Google categorize your website. One of the benefits that this might yield is Google rewarding you with a Knowledge Panel within the search results.

structured data knowledge graphs seo tutorial

Another example of how marking up your content can yield beneficial SEO results is recipes. Remember, SEO stands for search engine optimization and in SEO the goal is not always rankings it is “optimizing” the search engines to the best of your ability. In this case, by marking up a recipe with proper schema markup, Google displays calorie information, reviews as well as cook time in the search results.

rich snippet recipe structured data SEO

As you can see in the image, the code supplied in the website directly correlates to the search results. Again not all recipes will automatically show up in the search results, it does take some time for Google to figure out who you are but after time it will start to pop. Menu’s are another hot item in the world of schema markup and structured data. Google “restaurant name menu” and sure enough you’ll probably run across a Google version of the menu right there on Google.

google menu search results

The real kicker here is that sometimes Google will “structure your data” even with no semantic markup present. Google is getting much better at guessing that a menu is a menu or a review is a review.

Testing your Structured Data / Schema Markup

One of the biggest questions we hear about schema markup is “am I doing it right?” We’ll see SEO’s and webmasters working on very complex structured data elements only to find it doesn’t work the way they planned. Google released this structured data testing tool to help webmasters verify if they are indeed “doing it right.” In this example we test the about us page from

google verify schema markup

As you can see in the example, there are 4 main sections and individual parameters within each section. In the highlighted section we see the “person” schema markup and the social network profiles linked within. If there were errors, they would be highlighted within them.

One of the really cool things about the testing tool is that you can test other peoples websites as well. So if you have a new type of markup that you want to play with, you can just plug it into the testing tool and see if it works or not. Of course you can also copy the code directly from the tool, or the source code as well and modify it to suit your needs.

Schema Markup for People

Structuring data for people can be a very rewarding task. Not only will it help search engines find you better but if you have enough authority it can also produce a knowledge graph snippet within the search results. After a few months of testing our CEO Patrick Coombe was able to obtain a Knowledge Panel result using structured data. In his case he used JSON-LD structured data which allows you to embed structured data into your HTML elements without having to modify HTML.

<script type="application/ld+json">
  "@context": "",
  "@type": "Person",
  "address": {
"@type": "PostalAddress",
"addressLocality": "Delray Beach",
"addressRegion": "FL",
"postalCode": "33444",
"streetAddress": "100 Atlantic Ave"
  "colleague": [
  "email": "",
  "image": "steve.jpg",
  "jobTitle": "Professor",
  "name": "Stevey Steve",
  "telephone": "(425) 123-4567",
  "url": ""
  "sameAs" : [ "",

While the code above won’t grant you immediate access into the Knowledge Graph, it will definitely improve your chances. Do a Google search for “Patrick Coombe” and most likely you’ll see some version of this Knowledge Graph:

patrick coombe

If you are interested in getting started with structured data, one of the easiest ways to do that is by marking up some of the content on your website. Chances are if you have a smaller website you are not going to break anything.

Other resources:

SEO Skeptic – one of our favorite websites for structured data and SEO in general

SEO by the Sea – without a doubt one of the best resources for SEO patents, structured data and SEO

Google Structured Data Testing Tool – Test your schema markup and structured data for errors and validity

Contact Info

900 Linton Blvd, Suite 104
Delray Beach, FL 33444

Phone: 561-526-8457
Toll Free: 855-353-8730
Fax: 561-526-8707