Structured Data for SEO
What is Structured Data for SEO?
SEO context, “structured data” usually refers to implementing some type of markup on a webpage, to provide additional detail around the page’s content. This markup improves the search engines’ understanding of that content, which can help with relevancy signals and also enables a site to benefit from enhanced results in SERPs (rich snippets, rich cards, carousels, knowledge boxes, etc.).
Markup: A webpage is created by marking-up content (text, images, etc.) using the HyperText Markup Language (HTML). The markup provides instructions to the software used for viewing a webpage (web browser) on how the page should look and work.
Syntax: Syntax refers to the spelling and grammar of a programming language. Computers are inflexible machines that understand what you type only if you type it in the exact form that the computer expects. The expected form is called the syntax.
Rich Snippets: (also known as “Rich Results”) are normal Google search results with additional data displayed. This extra data is usually pulled from Structured Data found in a page’s HTML. Common Rich Snippet types include reviews, recipes, and events.
Rich cards are a new Search result format building on the success of rich snippets. Just like rich snippets, rich cards use schema.org structured markup to display content in an even more engaging and visual format, with a focus on providing a better mobile user experience.
Breadcrumb: A breadcrumb is a small text path, often located at the top of a page indicating where the user is on the site. On yoast.com, for instance, the path to our Yoast SEO plugin page is Home > WordPress Plugins > Yoast SEO for WordPress. This breadcrumb trail immediately shows you where you are.
Carousels: Carousels allow multiple pieces of content to occupy a single, coveted space. This may placate corporate infighting, but on large or small viewports, people often scroll past carousels. A slider and carousel are NOT the same things. A slider slides the images horizontally or vertically (usually horizontally), usually with a momentum effect. A carousel rotates the images radially and in a 3D feel by using distance and depth of field.
Knowledge Boxes: Knowledge panels are information boxes that appear on Google when you search for entities (people, places, organizations, things) that are in the Knowledge Graph. They are meant to help you get a quick snapshot of information on a topic based on Google’s understanding of available content on the web. Learn More.
There are three syntaxes that search engines will typically support (Microdata, JSON-LD, and microformats) and two common vocabularies that can be used with these syntaxes: Schema.org and Microformats.org. Schema.org can be used with either the Microdata and JSON-LD syntaxes, while the microformats syntax and vocabulary go together. If you’re reading up on this topic, you may also see references to RDFa, which is another syntax.
( RDFa (Resource Description Framework in Attributes) is a technique that allows just that: it provides a set of markup attributes to augment the visual information on the Web with machine-readable hints. )
*This all gets pretty confusing, so if you’re feeling less-than-crystal-clear right now, you might want to check out this great glossary cheat sheet from Aaron Bradley.
Some resources to start Structured Data Implementation:
- Google’s Overview of Structured Data for SEO: Information from Google about how they recommend approaching structured data for SEO and AMP
- Google’s Structured Data Markup Helper: This tool can guide you through creating the code for various common use cases.
- Structured Data Testing Tool – Google: This tool from Google allows you to test whether your markup is working correctly.
- Bing Guide to Marking Up Your Site: More information about how Bing supports structured data.
- Structured Data Validator – Yandex: A tool from Yandex to test how they see your structured data markup.
- Schema.org: The official Schema.org website. Here you’ll find information about the latest updates, FAQs, and a guide to adding Schema.org markup to your site.
When it’s a good time to prioritize structured data for SEO?
- Search is a key value-driven channel for your business.
- You have recently reviewed the basic optimization issues of your website, and know that you have reached a competitive benchmark in terms of keyword positioning, backlink profiles, website structure, and technical settings.
- You are in a highly competitive industry, and you need your results to stand out in SERP.
- You want to use AMP (Accelerated Mobile Pages) as a way to display in SERP feature areas (including carousels)
- You have a lot of article-style content related to key terms (for example, ten chicken recipes), and you want a way to display multiple results for these terms in the SERP.
- For terms with high search volume (5000-50,000 searches per month), your ranking is already high (rank 15 or higher)*
- You have solid development resources with availability on staff, and can be implemented with minimal time and financial investment.
- You are in any of the following verticals: e-commerce, publishing, educational products, events/ticketing, creative production, TV/movie/book reviews, job listings, local business.
Implementing structured data on your site
In this guide, we will only focus on the opportunity to implement Schema.org markup because this is the most widely used vocabulary. Besides, since search engine companies themselves developed it, it is consistent with what they currently support and should continue to be the most supported framework in the future.
How is Schema.org data structured?
The Schema.org vocabulary is structured in a way that uses different “types” (recipes, products, articles, people, organizations, etc.) to represent entities, data types, and/or content types.
Each type has its own set of “attributes” that can be used to identify the attributes of the item. For example, the “recipe” type includes attributes such as “image”, “cookTime”, and “nutritionInformation”. When you tag recipes with these attributes on your website, Google can visually display these details in the SERP, like this:
In order to mark up your content with the Schema.org vocabulary, you need to define specific attributes for the indicated type.
For example:
If you want to mark a recipe page, you need to include the title and at least two other attributes. These attributes may be:
- aggregateRating: The averaged star rating of the recipe by your users
- author: The person who created the recipe
- prepTime: The length of time required to prepare the dish for cooking
- cookTime: The length of time required to cook the dish
- datePublished: Date of the article’s publication
- image: An image of the dish
- nutritionInformation: Number of calories in the dish
- review: A review of the dish
- …and more.
Each type has different “required” attributes to make it work, and other related attributes. (You can view the complete list of recipe attributes on Schema.org/Recipe, or view the Google’s Overview of Recipe tag Markup).
Once you know what types, attributes, and data need to be included in the markup, you can generate code.
The code: Microdata vs. JSON-LD
There are two common ways to add Schema.org markup to a page: microdata (add inline comments directly in the relevant HTML) and JSON-LD (use Javascript script tags to insert the markup at the top of the page).
JSON-LD is the method recommended by Google and is generally a cleaner and simpler way to implement it… However, it is worth noting that Bing has not officially supported JSON-LD. Also, if you have a WordPress website, you can use a plugin (although please note that not all WordPress plugins work as expected, so it is especially important to choose a software with a good review and test it thoroughly after implementation).
No matter which option you choose to use, always test your implementation to ensure that Google displays it correctly.
What does this code look like?
Let’s look at an example of a news article (Schema.org/NewsArticle) with very simple markup.
Here’s the article content (excluding body copy), with my notes about what each element is:
[posted by publisher ‘Google’] [headline]Article Headline [author byline]By John Doe [date published] Feb 5, 2015 [description] A most wonderful article [image] [company logo]
And here’s the basic HTML version of that article:
<div> <h2>Article headline</h2> <h3>By John Doe</h3> <div> <img src="https://google.com/thumbnai1.jpg"/> </div> <div> <img src="https://google.com/logo.jpg"/> </div>
If you use Microdata, you’ll nest your content inside the relevant meta tags for each piece of data. For this article example, your Microdata code might look like this (within the <body> of the page):
<div > <meta itemType="https://schema.org/WebPage" itemid="https://google.com/article"/> <h2 >Article headline</h2> <h3 > By <span >John Doe</span> </h3> <span >A most wonderful article</span> <div > <img src="https://google.com/thumbnail1.jpg"/> <meta content="https://google.com/thumbnail1.jpg"> <meta content="800"> <meta content="800"> </div> <div > <div > <img src="https://google.com/logo.jpg"/> <meta content="https://google.com/logo.jpg"> <meta content="600"> <meta content="60"> </div> <meta content="Google"> </div> <meta content="2015-02-05T08:00:00+08:00"/> <meta content="2015-02-05T09:20:00+08:00"/> </div>
The JSON-LD version would usually be added to the <head> of the page, rather than integrated with the <body> content (although adding it in the <body> is still valid).
JSON-LD code for this same article would look like this:
<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "NewsArticle", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://google.com/article" }, "headline": "Article headline", "image": { "@type": "ImageObject", "url": "https://google.com/thumbnail1.jpg", "height": 800, "width": 800 }, "datePublished": "2015-02-05T08:00:00+08:00", "dateModified": "2015-02-05T09:20:00+08:00", "author": { "@type": "Person", "name": "John Doe" }, "publisher": { "@type": "Organization", "name": "Google", "logo": { "@type": "ImageObject", "url": "https://google.com/logo.jpg", "width": 600, "height": 60 } }, "description": "A most wonderful article" } </script>
This is the general style of Microdata and JSON-LD code (applicable to Schema.org/Article). The Schema.org website provides a complete list of all supported types and their attributes, and Google has created a “feature guide” that contains sample code for the most common structured data use cases, which you can use as your own reference to the code.
How to identify structured data opportunities (and issues)
If structured data has been previously added to your website (or are not sure whether it has been added), the first thing to check is the “Structured Data Report” in Google Search Console.
The report will not only tell you how many pages have been identified as containing structured data (how many of them have errors), but it can also identify where and/or why the error occurred. You can also use the “Structured Data Testing Tool” to debug all flagged errors: when you edit the code in the tool interface, it will flag any errors or warnings.
If you have not implemented structured data, or want to check your settings from the beginning thoroughly, the best way to identify opportunities is to conduct a quick content review of your website based on the business you are in.
A note on keeping it simple:
When it comes to Schema.org markup, there are many options, and it may be crazy to mark all possible markups. But the best practice is to stay focused and usually use a single top-level Type on a given page. In other words, you might include review data on the product page, but the main type you want to use is Schema.org/Product. The purpose is to tell search engines the content of the page.
The structured data must represent the main content of the page, and the marked content should not be hidden from the user. Google will penalize sites that they believe are marked with structured data in scammy ways.
Google has some other general guidelines, including:
- Add your markup to the page it describes (therefore, the product markup will be added to the individual product page, not the homepage)
- For duplicate pages with canonical versions, please add the same markup to all versions of the page (not just canonical)
- Do not block marked pages from search engines.
- Be as specific as possible when choosing the type to add to the page.
- Multiple entities on the same page must be individually marked (so for the product list, each product should add its own product mark)
Generally, you should only add tags to content added to the page.
So, how do you know which Schema.org types are relevant to your site? It depends on the type of business and website you run.
Schema.org for general websites
Almost any business can benefit from certain types of Schema.org markup, and certain types of businesses have more specific use cases.
The general opportunities to be aware of are:
- Organization: Use the organization tag on the homepage to indicate that your website is a brand website.
- Knowledge Grap Content: Brand information (logo, social profile), your company’s mailing address and company contact information (such as phone number) can be marked on the homepage and displayed in the knowledge map box of the brand search:
- Sitelinks Search Box: if you have search functionality on your site, you can add markup which enables a search box to appear in your site links:
- Breadcrumbs: get breadcrumbs in the SERP:
- Video Object: if you have video content on your site, this markup can enable video snippets in SERPs, with info about uploader, duration, a thumbnail image, and more:
A note about Star reviews in the SERP
You will often see suggestions for “marking up your reviews” to get stars in SERP results. “Review” has its own type, Schema.org/Review, which contains the attributes you need to include, but you can also use the “Review” attribute of this type to embed it in other types.
You can see the above example in the “recipe” image, where some recipes in the SERP show star ratings. This is because they include a comprehensive user score for the recipe in the “review” attribute of the Schema.org/Recipe type.
For other properties with their own types, you will see similar implementations, such as Schema.org/Duration, Schema.org/Date, and Schema.org/Person. It feels really complicated, but this is actually just organizing information according to category>subcategory>discrete objects.
If this is a bit confusing, it may help us to think in terms of how to define physical things (such as ingredients in a recipe). Chicken soup is a dish you can make, and every food that makes chicken soup will be classified as an ingredient. But you can also have a recipe that requires chicken broth as an ingredient. Therefore, depending on whether you want to write a chicken soup recipe or a recipe that includes chicken soup, you will classify it differently.
Similarly, attributes such as “comment,” “date,” and “duration” can be their own (type) or another type of attribute. This is just something to be aware of when starting to implement this kind of marking. Therefore, when it comes to “comment tag” unless the page itself is mainly a comment on something, it is usually necessary to implement the “comment tag” as the main type of attribute of the page.
In addition to this generally applicable markup, there are certain Schema.org Types that are particularly helpful for specific kinds of businesses:
- E-commerce
- including online course providers
- Recipes Sites
- Publishers
- Events/Ticketing Sites
- including educational institutions which offer courses
- Local Businesses
- Specific Industries (small business and larger organizations)
- Creative Producers
Schema.org for e-commerce
If you have an e-commerce website, you need to check out:
- Product: This allows you to display product information, such as price, in search results. You can use this tag on a single product page or on an aggregator page that displays information about different sellers offering a single product.
- Online courses: If your product is an online course, you can use the Schema.org/Course type to get more specific fragments.
- Offer: Can be combined with Schema.org/Product to display special offers for products (and encourage higher click-through rates).
- Review: If your site has product reviews, you can use Schema.org/aggregateRating to aggregate the star rating of each product and display it in the SERP of the product.
Precautions:
- Product markup is designed for individual products rather than product lists. If you have a category page and want to tag it, you need to tag each product with its own data on the page.
- Review markup is intended to be used for review of specific items, goods, services, and organizations. You can use your business reviews to tag your website, but you should include it on the homepage as part of your organization’s tagging.
- If you are marking up reviews, they must be generated by your website, not a third-party source.
- Course markup may not be used for the content of the operation method or regular lectures that do not contain courses, specific results, or fixed student lists.
Schema.org for recipes sites
For sites that publish a lot of recipe content, Recipe markup is a fantastic way to add additional context to your recipe pages and get a lot of visual impact in the SERPs.
Precautions:
If you’re implementing Recipe Rich Cards, you’ll want to be aware of some extra guidelines:
- You’ll have to build AMP versions of the pages of your recipe.
- If you want to have a host carousel/list with multiple recipes for the same keyword, you must have a summary page that lists all the recipes in that collection (e.g. “chicken recipes”) and use ItemList markup to summarize recipes.
- See Mark Up Your Lists for more detail on this.
Schema.org for publishers
If you have a publisher site, you’ll want to check out the following:
- Article and its subtypes,
- NewsArticle: this indicates that the content is a news article
- Blog Posting: similar to Article and NewsArticle, but specifies that the content is a blog post.
- Fact Check: If your site reviews or discusses “claims made by others,” as Google diplomatically puts it, you can add a “fact check” to your snippet using the Schema.org/ClaimReview.
- CriticReview: if your site offers critic-written reviews of local businesses (such as a restaurant critic’s review), books, and /or movies, you can mark these up with Schema.org/CriticReview.
- Note that this is a feature being tested, and is a knowledge box feature rather than a rich snippet enhancement of your own search result.
Precautions:
- If you use AMP (Accelerated Mobile Pages) or are considering implementing this feature, you’ll need to a) make sure you include structured data on your AMP versions, and b) you’ll need Articles markup on your canonical version if you want to make it into the Top Stories AMP carousel.
- Google has some additional guidelines around accessibility for Articles (pagination, canonicalization, restricted content, and First Click Free).
Schema.org for events/ticketing sites
If your business hosts or lists events, and/or sells tickets, you can use:
- Events: you can mark up your events pages with Schema.org/Event and get your event details listed in the SERP, both in a regular search result and as instant answers at the top of the SERP:
- Courses: If your event is a course (i.e., instructor-led with a student roster), you can also use Schema.org/Course markup.
Precautions:
- Don’t use Events markup to mark up time-bound non-events like travel packages or business hours.
- As with products and recipes, don’t mark up multiple events listed on a page with a single usage of Event markup.
- For a single event running over several days, you should mark this up as an individual event and make sure you indicate the start and end dates;
- For an event series, with multiple connected events running overtime, mark up each individual event separately.
- Course markup should not be used for how-to content, or for general events/lectures which do not include a curriculum, specific outcomes, and an enrolled student list.
Schema.org for job sites
If your site offers job listings, you can use Schema.org/JobPosting markup to appear in Google’s new Jobs listing feature:
Note that this is a Google aggregator feature, rather than a rich snippet enhancement of your own result (like Google Flights).
Precautions:
- Mark up each job post individually and do not mark up a job listings page.
- Include your job posts in your sitemap, and update your sitemap at least once daily.
- You can include Review markup if you have review data about the employer advertising the job.
Schema.org for local businesses
If you have a local business or a store with a brick-and-mortar location (or locations), you can use structured data markup on your homepage and contact page to help flag your location for Maps data as well as note your “local” status:
- LocalBusiness: this allows you to specify things like your opening hours and payment accepted
- PostalAddress: this is an excellent supplement to getting all those NAP citations consistent
- OrderAction and ReservationAction: if users can place orders or book reservations on your website, you may want to add action markup as well.
You should also get set up with GoogleMyBusiness.
☆ Additional resources for local business markup
Here’s an article from Whitespark specifically about using Schema.org markup and JSON-LD for local businesses, and another from Phil Rozek about choosing the right Schema.org Type. For further advice on local optimization, check out the local SEO learning center and this recent post about common pitfalls.
Schema.org for specific industries
There are certain industries and/or types of organization which get specific Schema.org types, because they have a very individual set of data that they need to specify. You can implement these Types on the homepage of your website, along with your Brand Information.
These include LocalBusiness Types:
- AnimalShelter
- Automotive Business
- ChildCare
- Dentist
- DryCleaningOrLaundry
- Emergency Service
- Employment Agency
- EntertainmentBusiness
- Financial Service
- FoodEstablishment
- GovernmentOffice
- HealthAndBeautyBusiness
- HomeAndConstructionBusiness
- Internet Cafe
- Legal Service
- Library
- LodgingBusiness
- Professional Service
- RadioStation
- RealEstateAgent
- RecyclingCenter
- Self Storage
- ShoppingCenter
- SportsActivityLocation
- Store
- TelevisionStation
- TouristInformationCenter
- Travel Agency
And a few larger organizations, such as:
- Airline
- Corporation
- Educational Organization
- GovernmentOrganization
- LocalBusiness
- MedicalOrganization
- NGO
- PerformingGroup
- SportsOrganization
Precautions:
- When you’re adding markup that describes your business as a whole, it might seem like you should add that markup to every page on the site. However, best practice is to add this markup only to the homepage.
Schema.org for creative producers
If you create a product or type of content which could be considered a “creative work” (e.g., content produced for reading, viewing, listening, or other consumption), you can use CreativeWork markup.
More specific types within CreativeWork include:
- Book
- Course
- Episode
- Game
- Movie
- Music Composition
- MusicPlaylist
- MusicRecording
- Painting
- Photograph
- Sculpture
- Software Application
- TVSeason
- TVSeries
- VisualArtwork
- …and several others.
Schema.org new features (limited availability)
Google has been developing new SERP functions for testing, and you can participate in some of these tests. For some people, this feature is a supplement to the existing Type; for others, it is only provided as part of a limited test group. At the time of writing, these are some of the new features being tested:
- Actions
- Books
- Podcasts
- Datasets
- Music
- Software Apps
- Top Places Lists (Publishers)
- Live Coverage(Publishers)
Structured data beyond SEO
As mentioned in Part 1 of this guide, structured data can be useful for other marketing channels as well, including:
- Social Cards
- Email markup
- AdWords
For more detail on this, see the section in Part 1 titled: “Common Uses for Structured Data.”
How to generate and test your structured data implementation
Once you have determined the type of Schema.org that is relevant to you, you want to add a markup to your website. If you need help generating code, you can use Google’s Data Highlighter tool. You can also try this tool from Joe Hall. Please note that these tools are limited to a few Schema.org types.
After the markup is generated, you need to use Google’s “Structured Data Testing Tool” to test it in two stages of implementation: first, before adding the markup to the site, and then use it again. In this pre-implementation test, you will be able to see any errors or problems in the code and correct them before adding them to the website. After that, you will need to test again to ensure that there are no problems in the implementation.
In addition to the Google tools listed above, you should also use Bing’s Markup Validator tool and Yandex Structured Data Validator tool (if applicable) to test the implementation. Bing’s tools can only be used with URLs, but Yandex’s tools will verify URLs or code segments, such as Google’s SDT tool.
You can also check out Aaron Bradley’s review of structured data markup visualization, verification, and testing tools for more options.
After obtaining real-time structured data on your website, you also need to periodically check the “Structured Data Report” in Google Search Console to ensure that your implementation is still functioning properly.
Common mistakes in Schema.org structured data implementation
There are a few things you need to pay special attention to when implementing Schema.org on your website. Using irrelevant or incorrect Schema.org type markup content appears to be spam and may lead to Google’s “spam structured markup.” These are some of the most common mistakes people make when using Schema.org markup implementations:
Mishandling multiple entities
Marking up categories or lists of items (Products, Recipes, etc.) or anything that isn’t a specific item with markup for a single entity
- The recipe and product markup are designed for a single recipe and products and do not apply to a listing page that contains multiple recipes or products on a single page. If you have multiple entities on a single page, mark up each item separately with related markup.
Misapplying Recipes markup
Using Recipe markup for something that isn’t food
- Recipe markup should only be used for content about preparing food. Other types of content, such as “diy skin treatment” or “date night ideas,” are not valid names for a dish.
Misapplying Reviews and Rating markup
Using Review markup to display “name” content which is not a reviewer’s name or aggregate rating
- If your markup contains a single review, the name of the commenter must be the actual organization or individual. Other types of content, such as “50% discount on ingredients”, are considered invalid data and cannot be included in the “name” attribute.
Adding your overall business rating with aggregate rating markup across all pages on your site
- If your business’s reviews have a comprehensive rating score, you can include them in the “reviews” attribute of your organization or LocalBusiness.
Using overall service score as a product review score
- The “review” attribute in Schema.org/Product is only used for reviews of specific products. Do not merge ratings for all products or companies, and do not include them in this resource.
Marking up third-party reviews of local businesses with Schema.org markup
- You should not use structured data markup on comments generated through third-party websites. These comments can appear well on your website, but should not be used to generate rich snippets. The only UGC review content that you should mark is the comments that are displayed on your website and generated by users in it.
- This is a relatively recent update to the guidelines.
General errors
Using organization markup on multiple pages/pages other than the homepage
- It might seem counter-intuitive, but the organization and LocalBusiness markup should only be used on the pages which are actually about your business (e.g., homepage, about page, and/or contact page).
Improper nesting
- This is why it’s important to validate your code before implementing it. Especially if you’re using Microdata tags, you need to make sure that the nesting of attributes and tags is done correctly.
Therefore, you have mastered this introductory guide; it is an introductory guide to understanding and implementing SEO structured data! There is so much knowledge on this topic that an article or guide cannot cover everything, but if you have done it at the end of this series of articles, you should know how structured data can help you achieve SEO and other marketing efforts. Happy implementation!
The article is written by Bridget Randolph on Moz, About Bridget Randolph —
Bridget Randolph is an SEO and marketing consultant. After working at Distilled for four years, she recently entered the world of freelance and took a short internal job at Hearst Digital Media. She especially likes to learn about mobile technology, social media, and conversion rate optimization. Bridget is also interested in how different types of organizations (especially art and publishing brands) implement digital strategies.
Still, have questions? Or want to get a call?
Just fill-up the contact form or call us at +88 01716 988 953 or +88 01912 966 448 to get a free consultancy from our expert or you can directly email us at hi@mahbubosmane.com We would be happy to answer you.
MahbubOsmane.com’s Exclusive Services
osmani
Related Posts
Leave a Reply Cancel reply
Categories
MahbubOsmane.com is reader-supported, some products displayed may earn us a commission if you purchase through our links. MahbubOsmane.com is a participant in the Amazon Services LLC Associates Program. Learn more.