Schema Markup Validator

Next

Structured data that almost validates is structured data that quietly fails to produce a rich result. Paste your JSON-LD block here and this validator confirms two things fast: that it parses as valid JSON, and that it includes the essentials every Schema.org item needs: an @context, an @type, and a name or headline. Think of it as the quick structural pre-check you run before the slower Rich Results Test: catch the broken bracket or the missing type in seconds.

How to check your schema markup

  1. 1

    Paste your JSON-LD

    Drop in the full `<script type="application/ld+json">` block or just the JSON object inside it. Any script tags are stripped automatically.

  2. 2

    Run the check

    The validator parses the JSON and, if it will not parse, points you at the exact syntax error to fix.

  3. 3

    Read the result

    It confirms the core keys are present (`@context`, `@type`, and a `name` or `headline`) or lists precisely which ones are missing.

  4. 4

    Fix and re-check

    Correct the snippet and run it again until it comes back clean, then take it to Google's Rich Results Test for the type-specific rules.

Common validation errors and how to fix them

When you take your markup to a full validator such as Google’s Rich Results Test, most failures come from the same short list of mistakes. Learning to spot them cuts debugging time dramatically.

Frequent offenders

Error message What it means How to fix
Missing field “image” Required field omitted Add at least one image URL (absolute)
“datePublished” is not a valid date Wrong format Use ISO 8601: 2026-04-18 or with time+offset
Unknown type “Offers” Wrong casing Use Offer (singular) inside an offers array
Missing required field “price” Product without price Add price and priceCurrency in offers
Value of “author” is a string Should be a Person/Organization object Wrap as { "@type": "Person", "name": "..." }
Duplicate @id Same identifier on two nodes Use a unique @id per entity
reviewCount of 0 with aggregateRating Star snippet requires at least 1 review Remove the rating or wait until you have reviews
URL “/” (relative) Parsers require absolute URLs Use the full https://example.com/path

Warnings vs errors

  • Errors mean the rich result is ineligible. Fix these first.
  • Warnings mean it is eligible, but a missing property would unlock a larger snippet (for example, adding brand and sku to a Product).

Tips for reliable markup

  • Check the structure before the deep validation. Fixing a broken bracket or a missing @type here saves a round-trip through the slower type-specific tools.
  • Keep markup in sync with content. Updating the page title without updating the headline is the fastest way to get flagged for inconsistency.
  • Prefer JSON-LD for maintainability: a single block is easier to check than properties scattered through the HTML.
  • Monitor Search Console. Google logs structured-data errors and enhancements per type; check monthly.

Frequently Asked Questions

No. It means your JSON-LD is well-formed and carries the core keys. A rich result also needs the type-specific required properties, content that genuinely matches the markup, and Google’s quality thresholds. Use this to fix the basics fast, then confirm eligibility in Google’s Rich Results Test.

This is a lightweight structural pre-check: it confirms the JSON parses and that @context, @type and a name or headline are present. Google’s test goes further and validates the required properties for each eligible type. Run this first to clear the obvious breakage, then Google’s for the type-specific rules.

Yes. Paste the whole <script type="application/ld+json">…</script> block or just the JSON object inside it. The surrounding script tags are removed before parsing. Validate one block at a time.

No. The snippet is sent to our server only to run the check and is discarded straight after; nothing you paste is saved.

Related Tools

Tool available in other languages