Sign inCreate a free account
Theme

Schema and rich results

Seven checks: valid structured data, and what it can earn you.

Structured data is a machine-readable description of what a page is, embedded in the page itself. It does not make you rank higher. It decides whether your result can be more than a blue link: star ratings, prices, FAQ dropdowns, recipe cards, event dates.

Seven checks, and they are strict in one direction: invalid schema is worse than none, because it can disqualify a page from rich results it would otherwise have earned.

The checks

CheckSeverityWhat it means
schema.missingRecommendedNo structured data at all. Your result can only ever be a title, a URL and a description.
schema.malformed_jsonCriticalA JSON-LD block that does not parse. Everything in it is discarded, so this is worse than having none.
schema.missing_required_propertyRecommendedA declared type without the properties its rich result needs.
schema.no_high_value_typeRecommendedStructured data present but only generic types that unlock nothing.
schema.non_jsonldNoticeMicrodata or RDFa rather than JSON-LD. Valid, more fragile.
schema.rich_result_eligiblePassA complete, valid type that qualifies for a rich result.
schema.validPassStructured data present and parsing correctly.

Use JSON-LD

Three formats exist. Microdata and RDFa mix the markup into your HTML, so every template change risks breaking the data. JSON-LD sits in one <script> tag, is the format Google documents and recommends, and is the only one we treat as fully supported.

A JSON-LD block is self-contained, so it can be generated by whatever already knows the facts, your CMS or your product database, rather than by the template that happens to render them. That separation is why it stays correct as the design changes.

Types worth having

schema.no_high_value_type fires when a page has structured data but only of a generic kind. WebPage is valid and tells a search engine almost nothing it could not already see. These are the types that unlock something.

TypeSuitsCan produce
Article, NewsArticlePosts, news, editorialHeadline, image, author and date in the result
ProductAnything with a pricePrice, availability and star rating
FAQPagePages that answer several questionsExpandable questions under your result
HowToStep-by-step instructionsNumbered steps, sometimes with images
RecipeRecipesTime, rating, calories and a photo
EventAnything with a date and a placeDates and venue in the result
LocalBusinessAnywhere with an addressHours, address and phone in local results
OrganizationYour home or about pageKnowledge panel details and logo
BreadcrumbListAnything nestedA path instead of a raw URL under your title

Required properties

schema.missing_required_property means a type is declared but is incomplete. A Product without an offers block has no price to show, so it gets no rich result even though the markup parses. The finding names the type and the property.

Only mark up what is actually on the page. Structured data claiming a rating or a price the visitor cannot see is a policy violation, and the penalty is losing rich results across the whole site rather than on the one page.

Checking your work

We validate the shape of the data. Whether Google chooses to show a rich result is a separate question, and it depends on the query as well as on your markup. Google's own Rich Results Test tells you what they would render today; this report tells you whether your markup gives them the chance.

Type to search. Try a check name from your report, an endpoint, or what you are trying to do.

↑↓ to move ↵ to open Esc to close