Schema audit tool

Audit the JSON-LD structured data of a page or a snippet: syntax errors with their exact line, @context and @type, @id links, and the properties Google requires for each rich result, including which features Google has retired.

  • Errors shown at the exact line
  • Google's required properties per type
  • Pasted code stays in your browser
Ready

Structured data

Enter a URL to start

Blocks —
Items —
Errors
—
Warnings
—
Rich results
—
  1. Source
    Waiting for input
    URL or pasted code
  2. JSON syntax
    —
    Every block parsed
  3. Schema.org
    —
    @context, @type, @id
  4. Google
    —
    Rich result properties

Schema audit

Enter a page URL or paste JSON-LD above to see every structured data item, its errors and warnings, and whether it has what Google needs for a rich result.

Fair-use limit for URL audits: 30 per hour and 200 per day for each visitor IP address. Results are cached for 10 minutes. Pasted code has no limit.

What structured data does

JSON-LD describes what a page is about, such as a product, an article or a business, in a form search engines can read without guessing.

Syntax first

One trailing comma or a single quote makes the whole block unreadable, so nothing in it counts.

Schema.org vocabulary

@context names the vocabulary and @type the kind of thing. Type names are case-sensitive: Article, not article.

Eligible, not guaranteed

Google's required properties make a page eligible for a rich result. Google still decides whether to show it.

Features change

Google retired FAQ, HowTo and the sitelinks search box, and dropped seven more features in 2025. Old markup is harmless.

Google's rules the audit checks

Required properties decide eligibility; recommended ones improve the result. From Google Search Central, checked on October 16, 2026.

TypeRequiredRecommended
Article, NewsArticle, BlogPosting None headline, image, datePublished, dateModified, author
BreadcrumbList itemListElement with at least 2 ListItems, each with position, name and item (item optional on the last) None
Product name, plus one of offers, review or aggregateRating; Offer needs price image, description, priceCurrency, availability
SoftwareApplication name, offers.price, plus aggregateRating or review applicationCategory, operatingSystem
Event name, startDate, location with address description, endDate, eventStatus, image, offers, organizer, performer
LocalBusiness and its subtypes name, address telephone, url, geo, openingHoursSpecification, priceRange, image
Organization None name, url, logo, sameAs, description, address, contactPoint
Recipe name, image author, datePublished, description, recipeIngredient, recipeInstructions, totalTime
VideoObject name, thumbnailUrl, uploadDate description, contentUrl or embedUrl, duration
JobPosting title, description, datePosted, hiringOrganization, jobLocation baseSalary, employmentType, validThrough
Review, AggregateRating author, itemReviewed, reviewRating.ratingValue; ratingValue plus ratingCount or reviewCount datePublished, bestRating, worstRating

How to use this tool

From a URL or snippet to markup that is ready for Google.

  1. Enter a URL or paste code

    Paste JSON-LD, a script tag or a whole HTML page, or open a .json, .html or .txt file.

  2. Read the syntax check

    Invalid JSON is shown with its line, column and the most likely cause.

  3. Review each item

    Every typed item gets its rich result status, issues and a table of its properties.

  4. Confirm with Google

    Run the Rich Results Test for Google's own verdict before you rely on a rich result.

What this tool does, and what it doesn't

A plain list, so you know exactly what to expect.

This tool does

  • Find JSON syntax errors by line
  • Follow @context through @graph
  • Check @id links, URLs and dates
  • Check Google's required properties
  • Flag retired rich result features
  • Audit pasted code in your browser

This tool does not

  • Replace Google's Rich Results Test
  • Guarantee rich results or rankings
  • Audit Microdata or RDFa in detail
  • See markup added by JavaScript
  • Fix or rewrite your markup
  • Store your URLs or code

Where your data goes

Pasted or uploaded code is audited in your browser and sent nowhere. For a URL, our server fetches the page and returns its JSON-LD to your browser; the result is kept for 10 minutes. Fair-use counters use a hashed IP address, as described in our privacy policy.

Google's structured data gallery

Why your results might look unexpected

The six situations people run into most, and what each one means.

Invalid JSON in a block

A trailing comma, a missing comma or a single quote. The error line shows where.

Many items from one block

SEO plugins put WebPage, Organization, Person and more into one @graph.

@id reference not found

An item points to an @id that is not on this page. Fine if it lives on another page.

FAQ or HowTo marked as retired

Google no longer shows these rich results. The markup is harmless.

No JSON-LD found

The markup may be added by JavaScript after load, or the page uses Microdata.

Missing required property

The item is valid Schema.org but cannot get that Google rich result yet.

Questions about schema audits

What does this schema audit check?

It checks that each JSON-LD block is valid JSON and points to the exact line of an error, that every item has a Schema.org @context and @type, that @id references resolve, and that URLs and dates are in the right format. For types that can show as a Google rich result, it checks the properties Google lists as required and recommended.

Does passing the audit mean I will get rich results?

No. Valid markup makes a page eligible, but Google decides whether to show a rich result, and the markup must describe content that is visible on the page. Use Google's Rich Results Test for Google's own verdict, and the Schema.org Validator for all Schema.org types.

Why does my FAQ markup show as retired?

Google stopped showing FAQ rich results in Search in May 2026, after limiting them to government and health sites in 2023. HowTo rich results and the sitelinks search box are also gone, and Google dropped seven more features, such as Course info and Claim review, in 2025. The markup does no harm and is still valid Schema.org, so you can keep or remove it.

Why are items inside @graph not missing @context?

In JSON-LD, the @context at the top of a block applies to everything inside it, including every item in an @graph array and every nested object. The audit follows that rule, so only a block without any @context is reported.

What does an @id reference warning mean?

Plugins such as Yoast SEO and Rank Math link items with @id, for example an Article whose author is {"@id": "https://example.com/#person"}. If no item on the page has that @id, the link points nowhere on this page. That is fine when the item is defined on another page, but often it is a sign of a missing or renamed node.

Does the tool check Microdata and RDFa?

It counts Microdata and RDFa types on a page so you know they are there, but it audits JSON-LD only, the format Google recommends. Use the Rich Results Test or the Schema.org Validator to check Microdata and RDFa in detail.

Is my URL or code sent to your server?

Pasted or uploaded code is checked in your browser and is not sent anywhere. For a URL, our server fetches the page and returns its JSON-LD to your browser, where the audit runs; the result is kept for 10 minutes. Fair-use counters use a hashed version of your IP address, as described in our privacy policy.