Schema Markup Validator

Check a page's structured data against schema.org and against what Google requires for each rich result. Errors only where Google says required.

What It Checks

JSON-LD and microdata

Every script block and every microdata item, with @graph, @id references and blocks that describe the same node merged, as search engines read them.

The schema.org vocabulary

Types and properties against schema.org 30.1 (released 2026-09-16): unknown names with the closest real one, properties on the wrong type, superseded terms.

Google's required properties

For the common rich results, the properties Google's documentation lists as required, each message linking the page it comes from.

Retired rich results

FAQ, HowTo and other features Google has stopped showing are flagged as such, never as errors: the markup is valid, it just no longer does anything in Search.

What Google Requires, by Type

Read from Google Search Central on 12 October 2026. Recommended properties are not listed here; the validator suggests them.

TypeRequired by Google
Product (product snippets)name, and one of review, aggregateRating or offers; an Offer needs price
BreadcrumbListitemListElement; each ListItem needs position, name and item (item may be left off the last one)
Reviewauthor, reviewRating.ratingValue, and itemReviewed unless the review is nested in what it reviews
AggregateRatingratingValue and ratingCount or reviewCount, plus itemReviewed when not nested
LocalBusinessname, address
Eventname, startDate, location as a Place with an address
Recipename, image
VideoObjectname, thumbnailUrl, uploadDate
SoftwareApplicationname, offers.price (0 if free), and aggregateRating or review
JobPostingtitle, description, datePosted, hiringOrganization, jobLocation (or applicantLocationRequirements)
Article, OrganizationNothing. Google lists recommended properties only.

Rich Results Google No Longer Shows

Markup for a retired feature is still valid schema.org and does no harm, but it no longer changes how a page appears in Google Search. FAQ rich results stopped on 7 May 2026, after being limited to government and health sites since 2023. HowTo rich results went in 2023. Course info, estimated salary, learning video, special announcement and vehicle listing results were removed in September 2025, and practice problems in January 2026. Dataset markup now serves Google Dataset Search only.

Structured data sits in the page's HTML, so it has to be valid HTML too: run the page through the HTML validator, check its meta tags and Open Graph tags, and when a JSON-LD block fails to parse, the JSON validator and the JSON error guides show the exact fix.

Frequently Asked Questions

What is the difference between an error and a warning here?
An error means the markup cannot be read (a JSON-LD block that is not valid JSON) or a property Google's documentation lists as required for that rich result is missing, so the page cannot get it. A warning means the markup probably does not say what you meant: a type or property schema.org does not define, a property on a type it does not belong to, a date that is not ISO 8601, or a rich result Google has retired. Google's recommended properties are listed as suggestions. schema.org itself requires nothing, so nothing is an error on schema.org's account alone.
Does valid structured data guarantee a rich result?
No. Google decides whether to show a rich result based on the page, the query and its own quality guidelines, and may show none even when every required property is present. Valid markup makes a page eligible; it does not make it chosen.
Why does my FAQ markup get a warning?
Google stopped showing FAQ rich results on 7 May 2026 and removed the documentation in June 2026. FAQPage is still valid schema.org, so it is never an error here, but it no longer changes how the page looks in Google Search. HowTo rich results were retired in 2023.
Is this the same as Google's Rich Results Test or the Schema Markup Validator at validator.schema.org?
It covers both questions on one screen: whether the markup matches the schema.org vocabulary (what validator.schema.org checks) and whether it has what Google requires for the common rich results (what the Rich Results Test checks). It reads the HTML your server sends and does not run JavaScript, so markup injected by a script after load is not seen; paste the rendered HTML from your browser's developer tools for those pages. For a decision about a specific rich result, Google's own test remains the final word.
Which formats are supported?
JSON-LD, which Google recommends, and microdata, including itemref and nested items. RDFa is detected and reported but not read yet, so a page using it gets a note rather than a clean result.
Why is a property I use reported as not belonging to my type?
schema.org attaches each property to the types it describes. price belongs to Offer, not to Product, which is why a product's price goes inside offers. The message names the types the property does belong to, which usually points at the missing nesting.
Is my code stored?
No. The page or the pasted code is checked in memory and discarded. If you are signed in, the result (not the code) is added to your validation history.

Related Tools