top of page

Schema markup and structured data ultimate guide (JSON-LD)

Updated: Oct 15, 2021

Do you want to learn how you can create and add Schema markups to your website by using JSON-LD?

If so, keep reading this ultimate guide.

In this article, not only will you find information about rich snippets and Schema structured data, but you will also learn how to write JSON-LD and generate all the markups you want.

I’ll tell you exactly how to use to create your very own structured data markups.

Table of contents

  1. What Schema markups are;

  2. What rich snippets are;

  3. Free Schema markup generators;

  4. How to use;

  5. 7-step structured data workflow;

  6. Understanding the syntax of JSON-LD;

  7. How to create structured data with JSON-LD (workshop).


In 2011, Google, Microsoft (Bing), Yahoo! and Yandex launched, an initiative to provide a commonly shared vocabulary for structured data.

Structured data is used by webmasters to help search engines understand published content on a web page.

Schema’s mission statement (source:, info retrieved on May 2020): is a collaborative, community activity with a mission to create, maintain, and promote schemas for structured data on the Internet, on web pages, in email messages and beyond.

What are Schema markups?

Schema markups are snippets of code webmasters usually insert in the header of web pages to further describe and specify online content for search engines.

Search engines use this data to interpret online content and display more appropriate information in the SERP (Search Engine Results Page)

When you use HTML tags on your web pages, you are telling browsers how to display information, including the tag (if you want to know what an HTML tag is, read my following bonus paragraph).

HTML tags representation and presentation
Web users experience depends on the relationship between data representation and presentation. HTML tags are data representation.

For example:

<h1>Schema markup SEO guide</h1>

tells browsers to display the text string “Schema markup SEO guide” in a heading 1 format. Nevertheless, the HTML tag doesn’t give any additional information on what the text string means.

“Schema markup SEO guide” can be a title of a blog post or the title of a book that you can actually purchase.

It’s difficult for search engines to correctly understand the context of a text string and display to a user the right search results accordingly.

So, provides context to help search engines interpreting online content.

Be aware that search engines compare Schema markups information with the page content. If they don’t match, search engines will not consider your structured data and could also penalize you.

In other words, if you insert a Review markup (I’ve explained what it is later), but in your page you don’t actually have any reviews, Google doesn’t consider this markup valid.

To write Schema markups, webmasters can use Microdata, RDFa or JSON-LD formats.

In this article, I’ll only focus on JSON-LD format, since Google recommends it.

Google recommends using JSON-LD
Google recommends using JSON-LD for structured data markups whenever possible. Screenshot from the page “Understand how structured data works” published by Google Developers.

Why is Schema structured data important for SEO?

In a 2018 Reddit AMA (Ask Me Anything), John Mueller, senior webmaster trends analyst at Google, stated that Schema markups help rankings.

We do use [structured data] to understand a page better, it helps us to rank it better where it’s relevant.

John Mueller explains Schema markups on Reddit AMA
John Mueller, webmaster trends analyst at Google, explains why Schema markups affect rankings. Screenshot from TechSEO AMA (Ask Me Anything) on Reddit, 2016.

Adding Schema structured data in your website’s HTML is one of the many SEO (Search Engine Optimization) activities you should include to ensure optimal performance in the search.

If structured data helps Google understand a page better, it may rank higher in the SERP or rank for additional keywords.

Nevertheless, on the 2nd of April 2018, Mueller Tweeted that Schema markups are not a ranking signal. It means your website doesn’t rank higher just because you’ve added Schema structured data on your pages.

Schema markups are not a ranking signals
In 2018, John Mueller, webmaster trends analyst at Google, posted a Tweet stating that Schema markups are not ranking signals.

In other words, RankBrain (Google’s machine-learning AI algorithm) doesn’t directly consider structured data as a ranking signal to determine the most relevant results to search engine queries.

Bonus: what is an HTML tag?

Just to have a complete overview on Schema markups, I’ve decided to write this brief paragraph on what an HTML tag is.

A tag is a command inserted in the code of a web page which tells browsers to do something (e.g. perform an action, display content accordingly and so on).

Tags are enclosed in between a single left and right angle quote: “<” and ”>”.

HTML is a language that you can use to express these tags: <html>.

Example of HTML tag:

<!DOCTYPE html>
<html lang="en">
  <title>Title of the document</title>
<h1>This is a heading</h1>
<p>This is a paragraph.</p>

This is what it means line by line:

  1. Doctype declaration of the document. In this case HTML5;

  2. It indicates the start of an HTML document in English (language of the document);

  3. It’s the first part of the HTML document that search engines and browsers read. It’s not visible on the web page;

  4. It represent the title of the document (or web page) and it is displayed from search engines in the SERP and from browsers in the window tab;

  5. End of the head section (or header);

  6. Begin of the body section: this content is visible on the page;

  7. It represents a heading 1: it tells search engines what the web page is all about and commands browsers to display the text string in between the tags with a heading 1 format;

  8. It represents a paragraph: it provides search engine information about the page and commands browsers to display the text string in between the tags with a paragraph format;

  9. End of the body section;

  10. End of the document.


When search engines process Schema markups, they may display additional information in the SERP to help users in their search. This additional information is called rich snippets or rich results.

What are rich snippets?

Rich snippets (or rich results) are search results with additional information displayed. Rich snippets are the results of Schema markups and their data is pulled from the structured data found in a page’s HTML.

This is a Google search result without rich snippets:

Google SERP without rich results
Example of Google SERP without rich results.

This is a Google search result with a rich snippet:

Example of FAQPage rich snippet
Example of search result with a rich snippet. In this case, the rich snippet is represented by a list of FAQs, because the landing page has the FAQPage Schema markup installed.

Many entrepreneurs ask me how they can add rich snippets to their website.

This question is completely wrong.

Just to clarify, rich snippets are a result of structured data. You add Schema structured data in your website’s HTML to generate rich results.

So, the right question should be how to add Schema markups in a website to generate rich snippets.

I’ll show you how in a moment.

Why are rich snippets important for SEO?

Rich snippets mean higher organic CTR (Click-Through-Rate).

It’s not a secret that a rich result stands out more from the others and an eye-catching search result translates into more clicks.

The percentage of users that click on a search result determines the CTR.

When the CTR doesn’t refer to paid search results (e.g. Google Ads), it is called organic. In SEO jargon, organic means “free”, a result that you attained without paying money.

CTR is a key ranking signal.

In 2016, Larry Kim’s study demonstrated the correlation between CTR and search rankings (see image below).

CTR vs organic search position
CTR vs. organic search position. Larry Kim used 1,000 keywords in the same keyword niche (to isolate external factors like Google shopping and other SERP features that can alter CTR characteristics). The keywords are all from his own website: He compared CTR versus rank for 1-2 word search terms and did the same thing for long-tail keywords (4-10 word search terms).

Every time your pages beat the expected organic CTR for a given position, you gain an opportunity to to appear in higher organic positions.

Also Google has confirmed multiple times the extreme importance of organic CTR for rankings.

During SMX (Search Marketing Expo) West 2016,