Free Schema Markup Validator

Paste a page URL or your HTML and get a report of JSON-LD errors, warnings and missing fields for 27 schema types. Free, no account needed.

Enter a page URL

or

What Is a Schema Markup Validator?

Quick answer: A schema markup validator, also called a schema validator or schema checker, reads the JSON-LD on a page or in pasted code and reports syntax errors and missing required or recommended fields. To try it, validate your markup in the tool above.

Paste a page address or the page HTML, press Validate Structured Data, and read the structured data report. As a structured data validator, it pulls each script tag whose type is application/ld+json and tests each typed object, including those nested inside others, against field rules for 27 schema types.

It can't say whether Google will show a rich result. The Rich Results Test only reports which ones a page can produce.

How to Validate Schema Markup With a URL or Pasted Code

Four steps, and step one holds the traps.

  1. Choose your input. Type a page address under Enter a page URL, or paste code into Paste JSON-LD or HTML code. A bare address such as example.com works: the tool adds https:// for you, whether you press the button or Enter. A site that answers only on http then fails with "We could not connect to that website." Type http:// in front of the address, or paste its HTML. Pasted HTML needs its <script type="application/ld+json"> tag, or the report finds no blocks; JSON-LD pasted on its own, starting with { or [, is checked as one block. Fill one box only: the URL wins.
  2. Run the check. Press Validate Structured Data. A paste took 0.2 to 0.5 seconds on most runs. Most URLs answered in under five seconds; a slow site can take much longer.
  3. Read the report. The Result card shows three counters: JSON-LD blocks found, Errors and Warnings. Each block gets its own card: red is an error, amber a warning, green a pass.
  4. Fix and run it again. The code box comes back empty after a paste. Keep your snippet in an editor. Behind a login or on staging? Paste just the script blocks that hold your JSON-LD.

Quick test: Paste a small Article in script tags with @context, @type, headline, image and datePublished. Expect 0 errors and 3 warnings.

See a Validation Report on Real Markup

Real runs on small test snippets from 16 October 2026, not mock-ups.

What we pastedErrorsWarnings and what the report said
Article with all six checked fields00 warnings, three green lines when author and publisher are plain text
Same Article minus author, dateModified, publisher03 warnings, one per missing field
Product with only a name06 warnings: image, description, offers, review, aggregateRating, brand
Recipe with only a name3 (image, recipeIngredient, recipeInstructions)4 warnings: author, prepTime, cookTime, nutrition
JSON with a trailing comma1Invalid JSON syntax: Syntax error, with no line or column
Complete Article, @context line removed01 warning: No @context property found

Read the Product row slowly: our rules ask only for a name, so zero errors does not mean the page qualifies for a Google product snippet. Paste your own leanest markup and compare the counts.

What This JSON-LD Validator Checks

An error means a block is broken or a required field is missing; a warning means it parses but something we expect is absent.

  • JSON syntax. A failure prints Invalid JSON syntax with the parser's short message, and nothing else in that block is checked.
  • @context and @type. A missing @context is a warning, and so is a value that doesn't mention schema.org. A missing @type is an error, as is a block with no typed object.
  • Fields. For the 27 types, a missing required field is an error and a missing recommended one a warning, and typed objects nested inside others are checked too. Any other top-level type draws the notice "Detailed field checks are not available for this type yet"; an empty property draws a warning.
  • Structure. A single object, an array or an @graph all work. Duplicate markup from a theme and an SEO plugin shows twice, because each script block gets its own card.
  • Presence versus validity. Our SEO report counts the blocks and flags any that are not valid JSON (see the explainer on structured data markup); this tool checks each block's syntax and fields.

Schema Types and Fields Checked

Every rule the tool applies, with field names as printed.

TypeError if missingWarning if missing
Article, NewsArticle, BlogPostingheadline, image, datePublishedauthor, dateModified, publisher
Productnameimage, description, offers, review, aggregateRating, brand
Offerprice, priceCurrencyavailability, url
AggregateOfferlowPrice, priceCurrencyhighPrice, offerCount
Organizationnamelogo, url, sameAs
WebSitename, urlpotentialAction
WebPagenonename, description
CollectionPagenonename, description
BreadcrumbListitemListElementnone
ListItemposition, name or itemnone
FAQPagemainEntitynone
Questionname, acceptedAnswernone
Answertextnone
LocalBusinessname, addresstelephone, openingHoursSpecification, priceRange, image
ReviewreviewRating, authoritemReviewed
AggregateRatingratingValue, reviewCount or ratingCountbestRating, worstRating
RatingratingValuebestRating, worstRating
Recipename, image, recipeIngredient, recipeInstructionsauthor, prepTime, cookTime, nutrition
Eventname, startDate, locationendDate, image, offers
JobPostingtitle, description, datePosted, hiringOrganization, jobLocationvalidThrough, employmentType
VideoObjectname, description, thumbnailUrl, uploadDateduration, contentUrl, embedUrl
HowToname, stepimage, totalTime
Personnameurl, image, jobTitle
ImageObjecturl or contentUrlwidth, height
SoftwareApplicationnameapplicationCategory, offers, aggregateRating

These are our own simplified lists, and several differ from Google's pages as of 16 October 2026. Google lists no required properties for Article or Organization, wants name plus one of review, aggregateRating or offers for Product snippets, requires image and name for Recipe, and skips description for VideoObject. Review, AggregateRating and SoftwareApplication differ too. Event, JobPosting and LocalBusiness agree on required fields. Treat an error as a prompt to fix, not as a Google rule.

Rows apply to top-level objects, graph nodes and typed objects nested inside them, such as an Offer in a Product or a Question in a FAQPage, and a nested message names the property it was found under. A nested object gets the required-field check; recommended fields are reported only for a nested Offer, AggregateOffer or AggregateRating; a nested type without a row is skipped without a notice; and a nested object that holds only an @id is treated as a reference and not checked. Type names are case-sensitive: article or https://schema.org/Article gets the unavailable notice, not the Article rules.

Common Schema Markup Errors and How to Fix Them

Match your report's message; long ones are shortened.

  • Invalid JSON syntax: Syntax error. Fix it first. Suspects: a trailing comma, single or curly quotes, a comment, a byte order mark or a CDATA wrapper. No line number is given, so find the character with the JSON Validator.
  • No @context property found. Add "@context": "https://schema.org".
  • An object in this block is missing an @type property. Find the entry that has properties but no type, and add one.
  • Type "X" was detected. Detailed field checks are not available for this type yet. Often a casing or prefix slip, such as article or schema:Article. A valid type outside the 27, such as Course, gets it too.
  • X is missing the required property "field". Add it; an Event with only a name draws errors for startDate and location. For an object nested inside another, the message also names the property it sits under, as in Offer in "offers" is missing the required property "price".
  • Valid markup, flagged anyway. A graph node holding only an @id is flagged for a missing @type, and an array of objects that each carry their own @context gets the @context warning. Leave working markup alone.

What This Schema Validator Does Not Check

Here is what a clean report can still hide.

  • Google eligibility. A clean report says the JSON parsed and our listed fields exist, not that Google will show a rich result.
  • Nested objects. Only the types in the table are checked, and recommended fields only for an Offer, AggregateOffer or AggregateRating inside another object. An Offer with no price and no priceCurrency inside a Product raises two errors, but a nested type without a row, such as PostalAddress, passes without a word. A block with more than 400 nested objects is checked only up to the first 400, and the report says so.
  • Names and values. A misspelled property passes unless it replaces a field on our list: write headlin for headline and the report says headline is missing. A date written as text and a one-word author passed too.
  • JavaScript-injected markup. In URL mode we read the raw HTML and don't run scripts, so JSON-LD added by a tag manager isn't counted. If View Source lacks it but the Elements panel shows it, paste the html node's outerHTML. The free SEO score checker renders the page in a real browser, counts JSON-LD and flags blocks that are not valid JSON, but it does not check fields.
  • RDFa and Microdata. Microdata is counted, not validated. RDFa isn't detected at all, which leaves an RDFa-only page looking empty.
  • One page at a time. Each run takes one URL or one paste: pick a representative URL for each page template.
  • Pages that block our fetch. A site that blocks outside requests answers with an error instead of a report. We saw a 403 and a 460 that way. Paste the HTML instead.

Schema Markup Validator vs Google Rich Results Test

Column one comes from our code and tests, the other two from what each tool's own pages say.

This validatorGoogle's Rich Results TestSchema Markup Validator (schema.org)
Checks JSON syntax and common fields for 27 typesShows which Google rich results the page's markup can produceValidates Schema.org-based markup, with no Google-specific warnings
Runs no JavaScript, so script-added markup is missedNot stated on its pageExtracts markup injected by JavaScript
JSON-LD checked, Microdata counted, RDFa not detectedNot stated on its pageExtracts JSON-LD, RDFa and Microdata
Takes a page URL or pasted HTMLOffers a URL tab and a code tabFetches a URL or checks markup provided directly

Use this schema markup checker for a quick pass while you edit. Move to the Schema Markup Validator at schema.org for the wider vocabulary, RDFa and JavaScript-added markup, then to Google's Rich Results Test before launch, then Google Search Console once the page is live. Google's own page calls the Rich Results Test "the official Google tool", and the retired Structured Data Testing Tool moved to the schema.org validator without its Google-specific checks.

Which Rich Results Has Google Retired?

As of October 2026, Google no longer shows the FAQ rich result. Google's changelog entry on the FAQ rich result, posted 8 May 2026, says the feature stops appearing in Google Search from 7 May 2026; the documentation was removed in June 2026. Google dropped the How-to documentation in September 2023 for the same reason.

FAQPage and HowTo remain valid types we still check, but a clean report no longer leads to a rich result. Google still documents Article, Product snippets, Recipe, Event, JobPosting, VideoObject and LocalBusiness, as of 16 October 2026.

Debugging tip: Markup validates but earns nothing? Check Google's Search gallery for your type. If it isn't listed, expect no rich result.

Free to Use, and What Happens to Your Code

No account is needed, and guests and members get the same report. The check runs on our server: we fetch a URL, and pasted code travels to us in the form submission.

Structured data is meant to be public, so paste markup your pages already publish. Keep confidential material, such as unreleased prices, out of the code box.

Related Free Tools

Once the markup is clean, check the other tags on the same page.

Frequently Asked Questions

Frequently Asked Questions (FAQs) is a list of common questions and answers provided to quickly address common concerns or inquiries.

How do I validate schema markup with this tool?

Type the page address under Enter a page URL, or paste the page HTML with its script tags into Paste JSON-LD or HTML code. Press Validate Structured Data, then read JSON-LD blocks found, Errors and Warnings. Fill one box only, because a URL wins over pasted code.

What is the difference between this validator and Google's Rich Results Test?

This validator checks JSON syntax, @context, @type and the fields of 27 types, runs no JavaScript and gives no eligibility verdict. Google's Rich Results Test shows which Google rich results a page can generate. Use ours while you edit and Google's tool before launch.

Does passing the validator guarantee rich results in Google?

No. Valid markup is only an input, and Google alone decides whether to show a rich result. The FAQ rich result proves it: markup can validate cleanly and yield nothing in Search, because Google stopped showing that result in May 2026.

Which schema types does this validator check?

It field-checks 27 types, including Article, Product, Recipe, Event, JobPosting, LocalBusiness and FAQPage; the table on this page lists them all. Any other top-level type gets a notice that field checks are unavailable. Typed objects nested inside others, such as an Offer in a Product or a Question in a FAQPage, are checked too.

What is the difference between an error and a warning?

An error is invalid JSON, an empty script tag, an object with no @type, or a missing field our list marks required. A warning is a missing or non-schema.org @context, a missing recommended field, an empty property, or a type we do not field-check. There is no third level.

Can I validate schema markup before the page is live?

Yes, paste it. Pasted HTML needs the script tags around the JSON-LD, while bare JSON starting with { or [ is checked as one block. A URL has to be public, so for a staging site behind a login, paste just the script blocks. The code goes to our server.

Why does it say no JSON-LD was found when my page has schema?

The likeliest cause is markup added by JavaScript or a tag manager, because we read the raw HTML and run no scripts. Paste the rendered HTML from the Elements panel instead. Other causes: JSON-LD pasted inside other HTML without its script tag, another script type, Microdata or RDFa only, or a blocked fetch.

Does FAQ schema still work in Google?

No, not for rich results. As of October 2026 Google no longer shows the FAQ rich result, and it dates the end of the feature to 7 May 2026. FAQPage is still valid schema.org and this validator checks it. Google dropped the HowTo documentation in 2023 for the same reason.

Is the validator free, and where does my code go?

Yes, it is free and needs no account, and guests and members get the same report. The check runs on our server, so a submitted URL or pasted code is sent to us. Structured data is meant to be public, so paste only markup your pages already publish.
Share on Social Media: