Schema Markup Validator
Checks Schema.org syntax
Confirms your custom JSON-LD is well-formed and uses valid Schema.org vocabulary. It does not tell you whether Google will actually show a rich result.
Use it: while writing markupTest any hand-coded or custom-built page for JSON-LD, validate your structured data and @graph references against Schema.org, and find the missing fields, broken links, and rendering issues that quietly keep your pages out of Google rich results and AI answers.
This is an illustrative preview of how an audit reads. Connect your store to JSON Schema App to validate the live page and auto-fix every error found.
Fix these in JSON Schema AppCustom code lets you use any type, so the audit reads every block of JSON-LD on your page, whether it sits in the head, the body, or an @graph, maps each to its Schema.org type, and flags the required and recommended properties Google looks for. These are the types custom sites reach for most.
Your site-wide entity foundation: name, logo, URL, and social profiles, ideally linked through @graph and @id so every page connects back to one canonical brand identity.
Question and answer blocks you hand-code onto support and product pages. Google retired FAQ rich results in 2026, but the markup still helps AI assistants quote you accurately.
For any commerce page you build: name, image, price, availability, and rating, often nested with Offer and AggregateRating, so search and AI engines read your catalog right.
For content and docs: headline, author, image, and date, templated from your data so every post carries its own valid markup rather than a repeated default.
The navigation trail Google can show in place of a raw URL, giving searchers context about where a page sits in the hierarchy you built.
And any other type you need: LocalBusiness, Event, Person, Recipe, HowTo, VideoObject. Custom code has no plugin ceiling, so the audit validates whatever Schema.org type you use.
Three steps, no learning curve. Run the check, read the report, then fix what matters most for rich-result eligibility.
Drop in any live page, whatever it's built with. The Custom Schema Validator fetches the URL and reads the JSON-LD from the served HTML exactly as a search crawler does, so you see what Google actually gets.
See each detected type with a clear status: valid, missing a recommended property, or carrying an error. The report flags broken @id references, unbound template values, and schema that only renders in JavaScript.
Correct your JSON-LD block or template, redeploy, and purge your CDN cache, then re-run. Or let JSON Schema App generate and maintain valid JSON-LD across your site, whatever stack it runs on, and confirm a clean pass.
Hand-coded schema gives you total control and total responsibility, so the same rendering and templating issues recur. Here is what each common one means, how serious it is, and the fix.
With nothing hand-added, search and AI engines read your page as plain text and guess at its meaning. Add the JSON-LD types that match the page to become eligible.
JSON-LD injected client-side after load can be missed if the crawler doesn't run your JS. Server-render or pre-render it so the markup is in the initial HTML response.
A template that outputs hard-coded values repeats one headline, date, or price across every page. Bind each field to that page's data so the markup is unique and accurate.
An entity points to an @id that doesn't exist, so the link between, say, an Article and its publisher never resolves. Keep every @id consistent across the @graph.
A dynamic value with a quote, apostrophe, or line break breaks the JSON, so the whole block is ignored. Serialize values properly, for example with JSON.stringify server-side.
A field Google requires for that type is absent, so the block is ineligible even though the JSON is valid. The report names the exact property to add for each type.
Valid markup makes a page eligible for rich results. It does not force them to appear. On a custom build, it is usually one of these.
If the JSON-LD only appears after your JS runs, Google may not see it. Server-render or pre-render it, then confirm with URL Inspection's rendered HTML view.
Your fix is deployed, but a cached copy at the CDN or edge still has the old markup. Purge the cache for that URL, then re-check the live page.
Google no longer shows review stars for reviews a business writes about itself on its own page. Star ratings need to come from genuine, independent reviews.
If your schema pulls a value from a database field that isn't shown on the page, or a value that has gone stale, Google withholds the rich result. Only mark up visible content.
After a fix, Google has to re-crawl and re-process the page. Rich results can take days to reappear, so re-check, then give it time rather than changing things again.
Structured data is not a direct ranking factor. What it does is make your content machine-readable, so search engines and AI assistants can understand a page well enough to enhance how it appears. That often means a richer listing, a higher click-through rate, and a better shot at being cited accurately in AI answers.
A custom build gives you total control over structured data: any type, any nesting, full @graph linking. But there are no guardrails, so every field, every reference, and every deploy is yours to get right, and one unbound template or unescaped value can silently break a whole block. This Custom Schema Validator exists to catch the gaps before they cost you.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://ex.com/#org",
"name": "Northwind",
"url": "https://ex.com/"
},
{
"@type": "WebSite",
"@id": "https://ex.com/#site",
"url": "https://ex.com/",
"publisher": { "@id": "https://ex.com/#org" }
}
]
}
A custom site has no built-in validator, so you lean on Google's. They are not interchangeable, which is why markup can pass one and fail another. Here is what each does.
Checks Schema.org syntax
Confirms your custom JSON-LD is well-formed and uses valid Schema.org vocabulary. It does not tell you whether Google will actually show a rich result.
Use it: while writing markupChecks Google eligibility
Tests your page against Google's feature requirements and previews the result. It renders the page, so it can catch schema that a raw-HTML view would miss, and shows eligibility.
Use it: on the live URLChecks live issues at scale
Reports structured data issues across your whole site from real crawls, and flags problems after pages go live. Best for monitoring at scale, not first-pass checks.
Use it: ongoing, site-wideRun a free check on any URL, then let JSON Schema App generate and maintain valid JSON-LD across your site, whatever stack it runs on.
Find and fix the schema gaps keeping you out of Google's rich results and AI answers from ChatGPT and Gemini.
- Sundar Pichai
JSON Schema App automatically detects, fixes, and manages structured data to help search engines and AI understand your website, improving visibility and rich results.
Website Speedy is a SaaS-based website optimization tool that instantly reduces website loading times.
This tool allows you to optimize images automatically on any platform, including Wix, Shopify, BigCommerce, and more.
©2026 JSON Schema App By MakkPress Apps Studio All rights reserved