What is schema markup and why does it need checking?
Schema markup is structured data you add to your page — usually as a JSON-LD script block — that tells Google exactly what your content means. Without it, Google has to guess. With valid schema, Google can show rich results: FAQ dropdowns, star ratings, product prices, breadcrumbs, and event dates directly in search results.
The problem is that schema errors are silent. A missing brace, a deprecated property, or a required field left empty looks fine to a human reading the code — but Google ignores the entire schema block. A schema markup checker catches these issues before they cost you rich result eligibility.
Free schema markup checker — SEO-Snap
Instantly validates all JSON-LD on your page against schema.org specs, checks rich result eligibility, and flags missing required fields. Check your schema markup free →
What a schema markup checker validates
A good schema checker does more than confirm your JSON is valid syntax. It validates against the actual schema.org specification:
JSON-LD syntax
Valid JSON structure — balanced braces, escaped quotes, no trailing commas. Syntax errors break everything silently.
@context and @type
Confirms schema.org is used as context and @type matches an actual schema.org type (case-sensitive).
Required properties
Each schema type has required fields (e.g. Product needs name and offers). Missing required fields block rich results entirely.
Recommended properties
Recommended fields like image, description, and aggregateRating are not required but improve rich result appearance and eligibility.
Value format
Dates must be ISO 8601, prices must be numeric strings, URLs must be absolute. Wrong formats fail silently.
Content match
Schema data must match visible page content. Google rejects schema for content users cannot see on the page.
Rich result eligibility
Whether your schema qualifies for specific rich results (FAQ accordion, product rich result, breadcrumbs, etc.).
Schema types and the rich results they unlock
| Schema type | Rich result |
|---|---|
| FAQPage | FAQ accordion in search results |
| Product | Star ratings, price, availability |
| Article | Article rich result, date in snippet |
| BreadcrumbList | Breadcrumb path below page title |
| LocalBusiness | Address, hours, phone in Knowledge Panel |
| HowTo | Step-by-step guide in search results |
| Review | Star rating snippet |
| Event | Event date, location in search results |
How to check your schema markup (step by step)
- 1
Open the schema markup checker
Go to seo-snap.com/tools/schema-markup-validator. No account needed.
- 2
Enter your page URL
Paste the exact URL of the page you want to check. The checker fetches the live page so it sees the same schema Google does — including dynamically generated JSON-LD.
- 3
Review detected schema types
The checker shows every schema block found on the page, the type (@type) detected, and whether it's valid. Invalid blocks are highlighted in red.
- 4
Fix errors in priority order
Address errors that block rich results first (missing required fields, syntax errors). Then fix warnings (deprecated properties, recommended fields missing).
- 5
Re-check after changes
Run the check again after deploying fixes. Google typically picks up schema changes within 1–2 weeks of recrawling the page.
The 6 most common schema markup errors
Missing required property
CriticalExample: Product schema without offers.price
Add all required fields for the schema type. Use Google's Rich Results documentation to see which properties are required vs. recommended.
Schema doesn't match page content
CriticalExample: Rating of 4.9 stars in schema but no visible reviews on page
Schema must reflect content visible to users. Google will not show rich results if schema data differs from what's on the page.
Malformed JSON-LD syntax
CriticalExample: Missing closing brace, unescaped quote inside string
Run your JSON-LD through a JSON validator first (jsonlint.com), then check schema validity. A syntax error silently breaks all schema on the page.
Incorrect @type value
HighExample: "@type": "Products" instead of "Product"
Type values are case-sensitive and must match schema.org exactly. Use the schema.org type directory to verify spelling.
Deprecated property used
MediumExample: Using "price" directly instead of "offers.price" for Product
Check schema.org changelog. Some properties moved to nested objects in recent updates. Use a schema checker to catch these automatically.
Multiple conflicting schemas
MediumExample: Two different Product schemas with different prices on the same page
Each entity should have one schema block. Use @graph array if you need multiple schemas on a single page.
JSON-LD example: FAQPage (copy-paste ready)
FAQPage schema is one of the easiest rich results to get — and one of the most impactful. Add this to your page <head>:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is your return policy?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We offer 30-day returns on all orders..."
}
},
{
"@type": "Question",
"name": "How long does shipping take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Standard shipping takes 3-5 business days..."
}
}
]
}
</script>Frequently asked questions
What is a schema markup checker?▾
What schema markup errors are most common?▾
How do I check my schema markup for free?▾
Does schema markup directly affect Google rankings?▾
What's the difference between JSON-LD, Microdata, and RDFa?▾
Check your schema markup free
Validates JSON-LD · checks rich result eligibility · flags missing required fields
Check schema markup free →