Free custom structured data audit

Custom Schema Markup Checker

Test 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.

  • Results in 30 seconds
  • Reads your live JSON-LD
  • Schema.org validation
  • Rich-result eligibility
35% of Google results show a rich snippet driven by structured data
Any type with custom code you can use any Schema.org type, with no plugin limits
JSON-LD the format you hand-add in the head or body, or template server-side
100% Free no sign-up, no login, no credit card needed to run a check
What gets checked

Any Schema.org type your custom site uses, rich results

Custom 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.

  • Organization & WebSite

    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.

  • FAQPage

    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.

  • Product & Offer

    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.

  • Article & BlogPosting

    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.

  • BreadcrumbList

    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.

  • LocalBusiness & Event

    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.

Step by step

How the custom schema audit works

Three steps, no learning curve. Run the check, read the report, then fix what matters most for rich-result eligibility.

  1. Paste your URL

    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.

  2. Read the results

    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.

  3. Fix and re-check

    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.

Decode the report

Common custom schema errors and what they actually mean

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.

  • No schema on the page

    CRITICAL

    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.

  • Schema rendered only by JavaScript

    Error

    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.

  • Same schema on every page

    Warning

    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.

  • Broken @id or @graph reference

    Warning

    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.

  • Invalid JSON from unescaped values

    Error

    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.

  • Missing required property

    Error

    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.

Troubleshooting

Custom schema is valid, but rich results still aren't showing?

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.

  • Your schema is injected by JavaScript

    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.

  • A CDN or edge cache is serving old HTML

    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.

  • Your star ratings are self-serving

    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.

  • The markup doesn't match the page

    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.

  • It simply needs time

    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.

The honest take

Schema won't rank you on its own, but it changes how you show up

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.

  • Eligibility, not guarantees: we flag what blocks rich results, honestly
  • Validated against current Schema.org and Google documentation
  • Clear severity, so you fix errors first and recommendations next
graph.jsonld
{
  "@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" }
    }
  ]
}
Clear the confusion

Schema Markup Validator vs Rich Results Test vs Search Console

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.

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 markup

Rich Results Test

Checks 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 URL

Search Console

Checks 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-wide

Stop guessing. Audit your custom schema now.

Run 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.

Frequently Asked Questions

Google logo

“The agent doesn’t return ten blue links… it pulls from structured business data… to complete the job.”

- 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.

Try our Other Product

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.