JSON-LD vs. Microdata vs. RDFa: Which Structured Data Format Should You Use?
A clear comparison of JSON-LD, Microdata, and RDFa for structured data: how each works, why Google recommends JSON-LD, and when the older formats still make sense.
Paste a JSON-LD script tag or object and get an instant, honest audit: is the JSON valid, is there a @type and @context, and does every node carry the required and recommended properties Google needs for rich results? Scored, prioritised and re-formatted, entirely in your browser.
The JSON-LD Validator parses a pasted script tag or object, pinpointing syntax errors, then walks every node and @graph to detect each @type and check schema.org's required and recommended properties. Findings return as pass/warn/fail with a 0–100 score and re-formatted output. Free and local, so competitor snippets and drafts stay private.
The GigAI JSON-LD Validator takes the structured data you already have, a `<script type="application/ld+json">` block copied from a live page, a snippet from your CMS, or a raw object from a build step, and turns it into a clear, prioritised report card. It first parses the JSON with the browser's own engine and, if that fails, points to the exact syntax problem (a trailing comma, an unescaped quote, a stray `<script>` wrapper) so you can fix it in seconds. Once the JSON is valid it walks the whole tree, including nested nodes and `@graph` arrays, detects every `@type` it finds, and checks each against schema.org's required and recommended property sets: a missing required property (an Article with no headline, a Product with no name, an Event with no startDate) is reported as an error that disqualifies the rich result, while a missing recommended one (a Product without an image, an Organization without a logo) is a warning that weakens eligibility without breaking validity. It also flags the two mistakes that silently kill markup, a missing `@type` and a missing `@context`, and confirms when a node is fully valid. Every finding comes back as pass, warning or fail with a plain-English fix, rolled up into a 0–100 score and letter grade so you know at a glance whether the markup is ship-ready. Because it accepts a full script tag, an array of objects, or a bare object, and strips the wrapper for you, you can paste straight from View Source. And since it re-serialises your data into clean, indented JSON, it doubles as a JSON-LD formatter. Everything runs locally on the markup you paste (staging pages, competitor snippets you copied, or unpublished data) and none of it ever leaves your machine.
Last updated
Grab the `<script type="application/ld+json">` block from your page's source (View Source or DevTools), or copy the raw object from your CMS or build output.
Paste the script tag or object into the input: the wrapper is stripped automatically. Load the built-in sample first if you want to see a validated example.
Review the checks: green passes, warnings for missing recommended properties, and red errors for invalid JSON or missing required properties. Each has a plain-English fix.
Correct the flagged issues, copy or download the re-formatted JSON, and paste it back to confirm the score climbs to a clean pass.
This is a pragmatic required/recommended linter: run the same markup through Google's Rich Results Test to confirm Google-specific eligibility before publishing.
Every node's @type is validated against schema.org's required (error) and recommended (warning) property sets for Article, FAQPage, Product, Organization, LocalBusiness, Event, Breadcrumb, Video, Recipe, Person, Review and Software.
Invalid JSON surfaces the exact message from the browser's parser (trailing commas, unescaped quotes, single quotes) so you fix the real problem instead of guessing.
Paste a full <script type="application/ld+json"> block, a bare object, or an array / @graph of nodes. The wrapper is stripped and every node is walked, including nested ones.
Once valid, your markup is re-serialised into tidy, 2-space-indented JSON you can copy or download, so the validator doubles as a JSON-LD beautifier.
Errors and warnings roll up into a single score and grade with pass/warn/fail counts, so you know at a glance whether the structured data is ready to ship.
Parsing and validation use the browser's native JSON engine on your device. Prices, author names and business data in your markup are never uploaded, stored or logged.
A missing headline, a Product with no name, a missing @type: small omissions cost you the FAQ accordion, star rating or breadcrumb. The validator flags them before they cost you the enhancement.
Structured data often breaks on a trailing comma or an unescaped quote pasted from a CMS. The exact parser message points you straight to the character that broke it.
Because it works on what you paste, you can validate a competitor's snippet from View Source, a staging page behind auth, or a build-step template you haven't deployed yet.
Everything runs locally, so JSON-LD containing unpublished prices, internal event details or personal author information can be checked without any of it leaving your machine.
From quick one-off fixes to daily workflows, see how people put this tool to use.
Paste the JSON-LD from each template page to confirm the @type is right and no required property is missing before you sign off on a rich-results rollout.
Drop the JSON your framework or CMS generates into the validator to catch bad JSON, a missing @context, or a dropped required field before it ships to production.
Check that Product nodes carry a name, image and a valid Offer with price and currency so listings stay eligible for price and review rich results.
Confirm FAQPage question/answer pairs and Article headline, author and dates are present so posts qualify for FAQ and enhanced-article treatments.
Accepts JSON-LD, JSON and HTML, and produces Report and JSON, all processed locally in your browser.
Generate valid JSON-LD structured data for Article, FAQ, Product, Organization, LocalBusiness, Event and more, with a live rich-results validity check and a copy-ready script tag. 100% in your browser.
Turn a list of questions and answers into valid FAQPage JSON-LD structured data, with a live validity check for the Google FAQ rich result and a copy-ready script tag. 100% in your browser.
Generate valid Product JSON-LD structured data with Offer price, availability and AggregateRating, for price and star-rating rich results in Google. Live validity check, copy-ready script tag, 100% in your browser.
Paste a page's HTML to audit its title, description, canonical, robots, Open Graph and Twitter Card tags: with a length score, missing/duplicate checks and a live search & social preview, 100% in your browser.
Format, validate and minify JSON in your browser with pinpoint error line + column, jump-to-error, key sorting and live editing: nothing is uploaded.
Generate valid Article, BlogPosting and NewsArticle JSON-LD structured data: with author, publisher, dates, images and keywords, a live SERP preview and a rich-results validity check. 100% in your browser.
Go deeper on the concepts behind the json-ld validator.
Hit a snag? Here are quick fixes for the issues people run into most.
The most common causes are a trailing comma after the last property, curly “smart quotes” pasted from a document instead of straight quotes, single quotes instead of double quotes, or a stray character before the opening brace. The error message names the position: fix that character and re-check.
Check spelling and case: schema.org property names are case-sensitive (`startDate`, not `startdate`). An empty string, null, or empty array also counts as missing. Give the property a real value.
The validator walks nested nodes too, so an Offer inside a Product or an AggregateRating is checked on its own required/recommended set. Add the flagged property to that inner node, not just the outer one.
This is a required/recommended linter, not a full schema.org shape validator, and Google layers its own eligibility rules on top of valid JSON-LD. Always confirm with Google's Rich Results Test before publishing.
Paste the whole `<script type="application/ld+json">` tag straight from View Source. The wrapper is stripped for you, so there's no need to trim it by hand.
One page can carry several blocks: validate each Organization, BreadcrumbList and Article node separately, or paste them as an array / @graph and the validator checks each.
Only mark up content that's actually visible on the page, valid markup that describes hidden content can still trigger a manual action in Search Console.
Use the re-formatted output as a formatter: paste minified JSON-LD and copy back the clean, indented version for your codebase.
A clean pass here is necessary but not sufficient: always finish with Google's Rich Results Test, which adds Google-specific eligibility checks.
Recent updates and improvements to the json-ld validator.
Initial release. Paste a script tag or object to validate JSON syntax, @context/@type, and per-type required/recommended properties, with a 0–100 score, grouped checks, plain-English fixes and a re-formatted JSON copy.
Added automatic stripping of the <script type="application/ld+json"> wrapper, support for arrays and @graph of multiple nodes, and per-node type detection with a summary strip.
Refined error messages for common JSON mistakes (trailing commas, smart quotes), added copy/download of the re-formatted output, and a link to Google's Rich Results Test for final confirmation.
Your JSON-LD is parsed and validated entirely in your browser using its native JSON engine. Nothing is uploaded to any server. No prices, author names, event details or organization data in your markup are stored, logged or transmitted, so you can safely validate structured data containing private or unpublished information. Close the tab and every trace is gone.
Free, private and instant. JSON-LD Validator runs right in your browser.