What this tool checks
The checker fetches the page, finds every <script type="application/ld+json"> block, and attempts to parse each one. For valid blocks it walks the object — including @graph wrappers, arrays and nested entities — and lists every @type it finds. For broken blocks it reports the JSON parse error with the character position, so you can jump straight to the offending comma. If the URL looks like a homepage, it also warns when no Organization or WebSite entity is present.
Why structured data matters more than ever
Structured data has always powered rich results — the stars, prices, FAQ dropdowns and recipe cards that make a listing take up twice the space and earn twice the clicks. What changed recently is the second consumer: AI answer engines. When ChatGPT, Perplexity or Google's AI Overviews decide what to say about your product and whether to cite you, clean JSON-LD is the difference between being quoted accurately and being paraphrased from whatever text the crawler happened to extract. A page with valid Product, Article or FAQPage markup hands these systems ready-made facts: name, price, author, dates, answers. That is answer engine optimization (AEO) at its most mechanical — and it is entirely under your control.
How to fix what the checker finds
No JSON-LD at all: start with the type that matches the page — Organization on the homepage, Article with datePublished on posts, Product with offers on product pages. Most CMSs have plugins (Yoast, Rank Math, Schema App) that emit these automatically. Parse errors:the position in the error message counts characters from the block's start; the usual culprits are trailing commas and curly quotes. Validate the fixed block before shipping. Valid but typeless: a block without @type does nothing — every entity needs one. Missing Organization on the homepage: add name, url, logo and sameAslinks to your social profiles; it feeds knowledge panels and helps AI systems attribute your brand correctly. After fixing, re-run this check, then confirm eligibility in Google's Rich Results Test — the two test different things (syntax here, rich-result eligibility there).