What Is Schema?
Schema markup (schema.org) is a structured data vocabulary that helps search engines better understand the information on your website.
When search engines recognize the meaning and relationships behind entities, they can serve rich results, or rich snippets.
Like this one:
Schema is a language used to represent data—the actual data is called structured data.
Structured data organizes your page’s content and makes the information easier for Google to understand.
For example, you can use structured data on a birthday cake recipe page to let Google know the cook time, user ratings, and more like in the image above.
In this article, we’ll cover:
- Different types of schema markup
- Why schema markup is important for SEO
- How to generate and test your own schema
Let’s begin with some examples.
Types of Schema Markup
Schema markup is code that describes elements on your website into a language that all major search engines understand. That way, search engines can present users with richer results.
A how-to markup, for example, tells Google that a specific piece of content is a step-by-step guide. Google can then give searchers a preview of each step within the search results page:
Google understands 32 types of schema. These are:
- Article
- Book
- Breadcrumb
- Carousel
- Course
- Dataset
- Employer Aggregate Rating
- Event
- Fact check
- FAQ
- Home Activities
- How-to
- Image license
- Job posting
- Learning video
- Math Solvers
- Movie
- Education Q&A
- Estimated salary
- Podcast
- Practice problems
- Q&A
- Recipe
- Software app (Beta)
- Speakbable
- Subscription and paywalled content
- Video
Here are five common examples of schema and what they look like on the SERP (search engine results page):
Logo Markup
Logo markup tells Google what your logo is. That way, your correct logo will appear in the Google knowledge panel every time someone searches for your company.
Here is what the logo markup looks like in action:
Local Business Markup
Local Business markup points out which elements of your website contain contact information, your address, and other important business details. Google then displays that information in a Local Business Panel on the right side of certain SERPs.
This markup ensures that Google gives those searchers the right information and encourages local foot traffic.
Here’s what it looks like:
Review Markup
The review markup adds a star rating to the bottom part of your results page entry. It shows searchers what other people think of your site or products. This is helpful because customers are more likely to purchase products with reviews.
Here is what the review markup looks like in action:
Sitelink Markup
Sitelink markup adds extra navigational links to your listing on the results page. Instead of just a link to your home page, searchers will also see links to your careers tab, blog, and other important pages.
Here is what sitelink markup looks like on the SERP:
Product Markup
Product markup gives Google more information about products listed on your site so that searchers can see more details directly on the results page, which improves the user experience.
It also gives Google an image of your product that can appear in Google Image Search. Image searches make up 22.6% of all searches, so you can miss out on a lot of traffic if you ignore them.
Here’s what product markup looks like in action:
Google won’t display rich results for all pages with structured data.
However, adding schema markup to your site will give you a higher chance of getting a rich result which takes up more real estate on the results page.
For example, your site could show up simultaneously as an organic result, as an answer to an FAQ, and as a video on the same results page.
So there are multiple chances for a user to click on your site, all from one search.
Why Is Schema Markup Important for SEO?
The point of structuring your data is to communicate better with search engines. When Google understands entities on a deeper level, it serves better results to searchers.
Items like rich cards, rich snippets, and the knowledge panel appear on SERPs after gathering information from structured data.
While there’s no evidence that that schema will improve your rankings, it does provide a wealth of opportunities.
For example, a search result without site links doesn’t give searchers much more than the title and meta description of the linked page:
On the other hand, a search result with sitelinks gives searchers the main linked page along with similar site pages that might interest them more:
f the user wasn’t enticed to click by the title tag, there are still a few more chances to reel them in with sitelinks.
Some schemas act like digital billboards, too. Walmart takes up the entire above-the-fold portion of the SERP because of all the rich snippets it has:
Studies show that improved real estate from rich results can improve click-through rate.
In fact, users click on rich results 58% of the time vs. 41% of the time for non-rich results.
Google has also stated that properly structured data can improve the overall appearance of search results (which provides a better user experience).
For example, with structured reviews, Google can show recipes with the most five-star ratings at the top of their results.
Or, with structured data on songs and albums, Google can show what songs an artist sings as a series of rich cards.
So while there’s no hard evidence that structured data actually impacts rankings, it vastly improves the search experience. Users can read FAQs, see ratings, learn important business information, and more without ever visiting a page.
This can expand your brand reach and, as mentioned, potentially increase click-through rates.
How to Generate & Test Your Own Schema for Your HTML
There are three languages of code that you can add to your HTML to tell search engines what exactly is on your webpage: JSON-LD, microdata, and RDFa.
JSON-LD (Javascript Object Notation for Linked Objects)
JSON-LD is a script added as a data block, separate from the rest of a page’s code. Google recommends using JSON-LD “whenever possible” because JSON-LD data blocks are easier to organize and change or edit, when necessary.
Here’s what it looks like:
In this example, the webpage code, <p> My name is Kelly </p>, is completely separate from the JSON-LD script below it.
Microdata
Microdata essentially does the same thing as JSON-LD but is formatted differently. The code needs to be embedded into a webpage’s HTML, which means it’s less beginner-friendly to write and update.
It’s also more difficult to use at scale for larger websites (like ecommerce sites).
Here’s an example of microdata in action:
RDFa (Resource Descriptive Framework in Attributes)
RDFa is similar to microdata in that you add it to your page’s code through HTML tags and attributes. However, it’s a bit older and more complex.
The benefit is that it can be easier to integrate it with other apps or platforms that also use it.
In practice, it looks like this:
Generate Schema Markup for SEO
Google’s Structured Data Markup Helper makes it easy to generate schema. Here’s how to use it:
Step 1: Select a Data Type
Choose one of the common data types from the given list. For this example, we chose “Articles.”
Step 2: Paste Your URL
Paste the URL of the page you want to add markup to. You also have the option to paste the HTML. Then, click “Start Tagging.”
The tool will load your page so you can start marking it up. Your webpage will appear on the left side and the data items will appear on the right. Like this:
Step 3: Start Marking Up Your Page
To begin, highlight the selection on the left you’d like to mark up. For an article, you can highlight the author and choose the “Author” data item from the menu that pops up.
The tool will take the author’s name and place it next to “Author” on the right-hand side.
You can also tag items that can’t be found on your page. On the right side of your page, scroll down until you see the “Add missing tags” button.
Click on the button to open a pop-up menu where you can manually add tags. For example, we manually added data to the URL tag.
Continue adding markup items until you’re ready to generate your HTML.
Step 4: Generate HTML
When you’re done, click the “Create HTML” button on the top right of the screen.
You’ll receive the code to add to your site. Click the drop-down at the top to choose between JSON-LD (recommended) and microdata.
Step 5: Add the Markup to Your Site
Now that you have your updated code, add it to your CMS (content management system).
You have the option to copy and paste, or you can download the entire HTML file and upload it to your site.
When you’re done, update the page you’re working on. Hit the “Finish” button to get a list of instructions if you’re not sure how to complete the next steps.
Now it’s time to test the markup you added to your page.
Step 6: Test Your Structured Data
Google recommends using their Rich Results Test tool to test your schema markup:
Enter your URL or code snippet. Errors, warnings, and detected schema markup will show up on the right-hand side of the screen:
If you need to fix any errors, you can edit your code directly on the left side of the page. After you make changes, click the “Run test” button at the bottom of the page to revalidate:
You can also test your entire site for schema markup issues with our Site Audit tool.
Either create a new project or click on an existing project in your Site Audit Dashboard.
Look for the Markup section within the Overview tab. Then, click the “View details” button.
You’ll get a Markup Score that indicates how much of your schema data is valid or invalid. The higher your score, the fewer errors your site has.
To see a full list of errors, scroll down to the “Structured Data Items” section. Click on the “View all invalid items” button.
Click on any entry in the “Affected Fields” column to see specific errors per identified issue.
If any errors show up for your site, revisit the Structured Data Markup Helper to generate new markup, then validate it again with the Rich Results Test.
If you want to test your code for a different search engine, you can use Schema.org’s Schema Markup Validator.