Schema markup validator

This schema markup validator fetches any public page, extracts every JSON-LD block and tells you what it declares and what is broken: blocks that are not valid JSON, blocks without an @context, and missing key properties for 15 common schema.org types such as Article, Organization, Product and LocalBusiness. It scores the page out of 100.

Types checked
15 schema.org types
Reads
JSON-LD in the HTML
Cost
free, no signup

Check the page itself, not the homepage, if you are validating Article or Product markup.

Try

Issues found

Before a run, these are the checks made. After a run, each row is a real issue on your page

  1. Not runEvery JSON-LD block is valid JSON—

    Why it mattersJSON-LD is parsed whole. One trailing comma or unescaped quote makes the entire block unreadable, so every entity inside it is lost, not just the broken line.

    How to fixPaste the block into a JSON linter, fix the syntax error, and stop plugins and manual edits writing to the same block. Each invalid block is an error.

  2. Not runEach block declares @context—

    Why it matters@context tells a parser the terms come from schema.org. Without it the types and properties are ambiguous.

    How to fixStart each block with "@context": "https://schema.org". A missing @context is a warning.

  3. Not runKey properties present for 15 types—

    Why it mattersValid JSON can still describe an incomplete entity. An Article without an author or an Event without a start date is unlikely to qualify for rich results.

    How to fixAdd the missing properties named in the issue, using values that match the visible page. Each type with missing properties is one error.

  4. Not runOne organisation-level type—

    Why it mattersWhen a theme, an SEO plugin and a page builder each declare an Organization, LocalBusiness or ProfessionalService, search engines have to guess which describes the business.

    How to fixKeep one organisation entity, with the most specific type that fits, and reference it by @id elsewhere. Two or more of these types is a warning.

  5. Not runFAQPage rich result note—

    Why it mattersSince August 2023 Google shows FAQ rich results only for well-known, authoritative government and health sites, so most sites will not get the SERP feature.

    How to fixKeep FAQPage only if it mirrors a visible FAQ; do not expect a rich result. This is a note and does not affect the score.

  6. Not runMicrodata detected—

    Why it mattersSome pages mix microdata with JSON-LD, which makes it easy for the two to drift apart.

    How to fixThe validator reports when itemscope microdata is present but does not validate it. Prefer one format, ideally JSON-LD.

Types declared on the page

Every schema.org type found in JSON-LD, with how many nodes declare it

Nothing to show yet. After a check, every schema.org type found in the page's JSON-LD appears here with its node count, including nested entities such as an author inside an Article.

Which properties count as required

For each of these 15 types, the validator checks the first node of that type it finds for a minimum set of properties. A property counts as missing when it is absent or empty. This is MoxSEO's minimum set, not Google's full rich result requirements, which add recommended and type-specific properties.

Required properties checked for each type
TypeProperties checked
Article, BlogPosting, NewsArticleheadline, author, datePublished
Organizationname, url
LocalBusiness, ProfessionalServicename, address
Productname
Eventname, startDate, location
JobPostingtitle, hiringOrganization, datePosted
VideoObjectname, thumbnailUrl, uploadDate
BreadcrumbListitemListElement
FAQPagemainEntity
WebSiteurl
Personname
SoftwareApplicationname
Clean100

No errors or warnings. Notes, such as the FAQPage note, do not cost points.

Issues found1 to 99

Each error costs 22 points and each warning 8.

Fails

No JSON-LD on the page, or enough errors to use up all 100 points.

The validator reads JSON-LD in the HTML your server returns. It does not run JavaScript, so markup injected by a tag manager or client-side script is not seen. It checks other types by name and node count only, and it does not compare markup with the visible content. Use Google's Rich Results Test to confirm eligibility for a specific rich result.

How to validate and fix your markup

One URL at a time, a few seconds each. Fix errors before warnings.

  1. Step 1

    Enter the page URL

    Paste the full address of the page whose markup you care about, such as an article, product or location page. It must be public and return HTTP 200.

  2. Step 2

    Read the score and the issue list

    Each row is one real issue, labelled Error, Warning or Note. If there are none, you see a single pass row with the number of valid blocks.

  3. Step 3

    Fix errors first

    Invalid JSON hides whole blocks, and missing properties make an entity incomplete. Each error costs 22 points, so these move the score most.

  4. Step 4

    Check the types table

    The details list every type found and how many nodes declare it. Unexpected duplicates, such as two Organization nodes from different plugins, usually explain the warnings.

  5. Step 5

    Re-check, then confirm with Google

    Publish the fix, run the validator again, then use Google's Rich Results Test for any rich result you are targeting.

Why structured data fails silently

Structured data either parses or it does not, and nothing warns you either way. A single trailing comma invalidates a whole block. A missing author leaves an Article incomplete. Google Search Console reports only on the types it supports for rich results, which leaves much of your markup unchecked.

The third failure is conflict. When a theme, an SEO plugin and a page builder each print their own Organization block with different values, search engines must guess which describes the business. Google supports JSON-LD, Microdata and RDFa and recommends JSON-LD because it sits apart from your visible markup and is easier to maintain.

Structured data is an eligibility requirement, not a ranking shortcut. Valid markup makes a page eligible for rich results and removes ambiguity about what its entities are, which matters to AI systems that lean on explicit structure. It does not make a page nobody wants to read rank. To build clean Person or Organization markup, use the entity schema generator; to see whether AI engines can quote the page, run the AI Answer Extractability Checker.

What the validator does

  • Extracts every JSON-LD block from the page HTML
  • Flags invalid JSON and a missing @context
  • Walks every node, including nested entities
  • Checks key properties for 15 types
  • Warns on competing organisation-level types
  • Reports when microdata is present

What it does not do

  • Run JavaScript or read injected markup
  • Validate microdata or RDFa
  • Apply Google's full rich result rules
  • Check every node of a type, only the first
  • Compare markup with the visible content

Need help resolving markup inconsistencies?

Discuss schema syntax, duplicate graphs and whether the markup matches the visible page content.

Structured data, answered plainly

Short, standalone answers. Email editorial@moxseo.com if any of them is wrong.

What does the Schema Markup Validator check?

It fetches a public page, extracts every JSON-LD block and flags blocks that are not valid JSON, blocks with no @context, and missing key properties for 15 schema.org types. It warns when more than one of Organization, LocalBusiness and ProfessionalService is declared, notes FAQPage markup, reports microdata, and lists every type found.

How is the schema score calculated?

The score starts at 100 and loses 22 points for each error and 8 points for each warning, with a floor of 0. Errors are invalid JSON blocks, missing required properties and no JSON-LD at all. Warnings are a missing @context and competing organisation-level types. A page with no JSON-LD scores 0.

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

Google's Rich Results Test checks eligibility for the rich results Google supports, using Google's full rules. This validator checks a smaller minimum set of properties across 15 common types, flags invalid JSON and missing @context in every block, and warns about competing organisation types. Use both: this one for a quick health check, Google's for rich result eligibility.

Should I use one JSON-LD block or several?

Either works. What matters is that the blocks do not contradict each other. Problems start when a theme, an SEO plugin and a page builder each print their own Organization or Article with different values. Keep one source for each entity and link entities by @id.

Is FAQPage schema still worth adding?

Not for rich results on most sites. Since August 2023 Google shows FAQ rich results only for well-known, authoritative government and health websites. The markup is not harmful and still describes the content to machines, but it will not produce the SERP feature most people add it for.

Does microdata still work?

Yes. Google supports JSON-LD, Microdata and RDFa, and recommends JSON-LD because it is separate from the visible markup and easier to maintain. This validator tells you when microdata is present but only validates JSON-LD.

Why is my score low when Search Console shows no errors?

Search Console reports only on types eligible for rich results. Invalid JSON blocks, missing @context, competing Organization blocks or incomplete types outside that set do not appear there, but this validator counts them.

Is the validator free, and is my URL stored?

It is free with no signup. The page is fetched from our server, and it keeps only a short-lived request counter for rate limiting. It does not ask for any personal data.

All 18 free tools

Clean markup is the easy half.
Being worth citing is the hard half.

Structured data makes you legible to machines; whether they choose you as the source is a question of authority and evidence. Book a free 30-minute call with Sakshi Kumari or Ashish Khan to go through your schema and entity setup.

A call is not an engagement. We never guarantee rankings or AI citations.