Schema Markup Validator

Test a URL or paste your code to check structured data. We find JSON-LD syntax errors, validate every type and property against schema.org, and check Google's required and recommended properties.

Check

Free, no signup. Results are cached for 6 hours.

How to use the Schema Markup Validator

  1. Choose whether to test a live URL or paste code.
  2. Enter the URL, or paste your JSON-LD, a <script type="application/ld+json"> block or a full HTML snippet.
  3. Run the validator. Each JSON-LD block is listed separately, with the types it contains.
  4. Fix errors first. A JSON syntax error stops the whole block from being read. Then work through unknown types, invalid properties and missing recommended fields.
  5. Test again, and when the markup is clean, confirm it in Google's Rich Results Test.

Understanding your results

Formats found. We extract every JSON-LD block on the page and count how many elements use Microdata (itemscope and itemtype) or RDFa (typeof and vocab). Google supports all three formats and recommends JSON-LD because it is the easiest to implement and maintain. Our detailed validation applies to JSON-LD. Microdata and RDFa are counted so you know they are present.

Syntax errors. If a JSON-LD block is not valid JSON, we report the error and the reason, such as a trailing comma, an unescaped quotation mark or a missing bracket. A block with a syntax error cannot be parsed at all, so fix these first.

Context. We check that @context points to schema.org. Without it, systems reading your markup cannot tell which vocabulary your types come from.

Vocabulary checks. Every @type and property is compared with the official schema.org vocabulary. We flag types that do not exist, which is often a typo or wrong capitalization such as Blogposting, and properties that are not defined for the type you used. Markup that uses @graph to hold several connected items is supported, and every item in the graph is checked.

Google's required and recommended properties. For common types, we check the properties Google's documentation lists as required or recommended: Article, BlogPosting and NewsArticle; Product and Offer; Review and AggregateRating; FAQPage; BreadcrumbList; Organization; LocalBusiness; Event; Recipe; VideoObject; JobPosting; Course; SoftwareApplication; WebSite; and Person. A missing required property is reported as an error. A missing recommended property is reported as a warning.

How this tool works

For a URL, we fetch the page's HTML and pull out every application/ld+json script, along with the Microdata and RDFa attributes. For pasted code, we read the code directly. Each JSON-LD block is parsed as JSON. We then walk through every item, including nested objects and items inside @graph, and check it against the schema.org vocabulary and our list of Google requirements for supported types.

There are limits worth knowing. Structured data added by JavaScript after the page loads may not appear in the HTML we fetch, so paste the rendered code if that is how your site works. We check structure and vocabulary, not whether the content is accurate. Your markup must still describe what is actually visible on the page.

Most important: only Google decides rich result eligibility. Google's Rich Results Test is the authoritative check for Google features, and even valid markup does not guarantee a rich result, because Google decides what to show for each search. Google has also reduced some rich result types sharply. HowTo rich results stopped appearing in 2023, when FAQ rich results were also limited to a small group of sites, and Google's documentation changelog now records FAQ rich results as no longer shown in Search. We still validate FAQPage markup because it remains a valid schema.org type.

Tips

  • Use JSON-LD where your platform allows it. It sits in one block and is easier to maintain than attributes spread through the HTML.
  • Choose the type that matches the page. A product page should use Product, and an article should use Article or BlogPosting.
  • Keep values consistent with the visible page, including the same price, headline and rating.
  • Watch capitalization. Schema.org types start with a capital letter, and properties usually start with a lowercase letter.
  • Avoid duplicate, conflicting blocks. A theme and an SEO plugin can each add their own Organization or WebSite markup.
  • Use absolute URLs for values such as url, image and logo.
  • For a guided introduction, read our schema markup guide.
  • Check the rest of the page's on-page setup with the SEO Checker.

Frequently asked questions

How is this different from Google's Rich Results Test?

This tool checks JSON-LD syntax, validates types and properties against the full schema.org vocabulary and checks Google's required and recommended fields for common types. The Rich Results Test shows which Google rich results a page may be eligible for. Use both: this tool to clean up your markup, and Google's test for the final word on Google features.

Does valid schema markup guarantee rich results?

No. Valid markup can make a page eligible, but Google decides whether to show a rich result for each search. Some types are shown only for certain sites or are no longer shown at all.

Should I use JSON-LD, Microdata or RDFa?

Google supports all three and recommends JSON-LD because it is easier to implement and maintain. Pick one format for each item, and avoid marking up the same thing twice in different formats.

Why does the tool say a property is not valid for my type?

Schema.org defines which properties belong to each type. If you use a property on a type that does not support it, systems reading your markup may ignore it. Check the spelling, or use a more specific type that includes the property.

Is FAQ schema still worth adding?

Google's changelog records that FAQ rich results are no longer shown in Google Search. FAQPage is still a valid schema.org type, so the markup is not an error, but you should not add it expecting a rich result in Google.

Can I test markup before it is published?

Yes. Paste the code instead of entering a URL. This is a quick way to catch syntax and vocabulary problems before you deploy a change.

Related tools

Guides

More in SEO Tools · All tools