schema markup validator tool
Validate JSON-LD, Microdata, and RDFa structured data on any URL. See exactly which schema types are declared and whether they parse correctly for Google rich results.
By Deepak Shukla — Founder & CEO, Pearl Lemon
Part of SEO monitoring — the full answer, the facts and the alternatives in one place.
What This Tool Checks
- JSON-LD blocks parse as valid JSON
- Each schema declares an @type (Article, Product, FAQPage, etc.)
- Microdata itemtypes and RDFa typeof attributes are present
- OpenGraph and Twitter card meta tags are declared
Why This Matters
Structured data is the price of entry for Google rich results — review stars, FAQ accordions, product cards, recipe boxes. Invalid JSON-LD silently disqualifies a page; you only find out by losing the rich snippet.
How to Fix Issues
- 1.Validate JSON-LD with Google's Rich Results Test for any failing block
- 2.Pick the most specific @type that fits (Article over WebPage)
- 3.Stack multiple schemas (Article + BreadcrumbList + FAQPage) rather than one mega-schema
- 4.Ship OpenGraph + Twitter cards even for non-social pages — both Slack and LinkedIn use them
Structured data is a machine-readable summary of what a page is about, embedded in the page itself. It does not change your ranking, but it decides whether your result can show review stars, an FAQ accordion, a product price, an event date or a recipe card — and those change the click rate at a position you already hold. Enter a URL above and the check reports every structured data block found and whether it parses.
Invalid markup fails silently
A JSON-LD block with a trailing comma, a missing brace or a truncated string does not raise an error anywhere you would see it. The page renders, the block sits in the source looking correct, and the rich result simply never appears. Teams often conclude their content was not selected when the actual cause is a parse error introduced by a template variable that was empty for that one page.
Type matters more than volume
Adding every schema type you can think of does not help. What helps is declaring the type that matches what the page actually is, with the properties that type genuinely requires, and having those properties match what a visitor can see. Markup that claims a review score the page does not display, or an event that is not on the page, is the fastest route to losing rich results entirely — that is the enforcement mechanism, and it applies at the site level rather than the page level.
Where the blocks come from
On most sites structured data is generated by more than one source: a theme, an SEO plugin, a page builder and sometimes hand-written code. They rarely coordinate. Two Organization blocks with different names, two Article blocks with different dates, or an FAQPage on a page with no visible questions all originate this way. Seeing every block on the page at once is usually what identifies which system is producing the wrong one.
Using the result
Confirm the primary type is right for the page. Confirm the identifying properties — name, headline, image, date, price, author — are present and match the visible content. Remove duplicated blocks rather than editing both. Then check a handful of pages per template rather than just one, because the failures come from data being missing on specific records, not from the template being wrong everywhere.
Methodology
We fetch the public HTML (capped at 600KB to control parser cost) and extract every <script type="application/ld+json"> block, every itemscope+itemtype attribute pair (Microdata), and every typeof= attribute (RDFa). JSON-LD blocks are JSON.parse()-ed; failures are reported with the parser error and a snippet for debugging. We separately count OpenGraph and Twitter card meta tags because they affect social previews even though they are not strictly structured data. The 0–100 score rewards valid blocks, penalises parse failures, and adds bonuses for OpenGraph + Twitter coverage.
Frequently Asked Questions
This tool also answers
How do I test structured data on a page?
Paste the URL above. The tool extracts every JSON-LD, Microdata and RDFa block from the live HTML, confirms each parses, and lists the declared @type values so you can see exactly what a search engine would read.
Why are my rich results not showing?
Valid markup earns eligibility, not a guarantee. The usual blockers are a missing required property, structured data that describes content not visible on the page, or markup injected by JavaScript that the crawler never executed.
Related Free Tools
Meta Tags
Extract and validate meta tags from any URL — title, description, Open Graph, Twitter Cards, and more.
Free SEO Audit
Run a complete free SEO audit in under 60 seconds. Covers Core Web Vitals, on-page SEO, security, indexability, broken links, and mobile-friendliness — with deep-dive links to fix every issue.
OG Comparison
Compare Open Graph and Twitter Card metadata between any two URLs. See og:image previews, sizes, titles, descriptions, and canonical mismatches side-by-side.
HTTP Status Code Reference
Understanding HTTP status codes helps you diagnose issues found by this tool: