Question
Schema Markup Testing and Validation Tools
Short answer
Testing structured data takes three tools, each answering a different question: Google's Rich Results Test (does Google detect valid items for a rich result type on this page?), the Schema Markup Validator (is the markup valid schema.org?), and Search Console's rich result reports (is it valid across all the pages Google has indexed?). Before any of them, check that the type still produces a rich result: Google no longer shows FAQ or HowTo rich results, according to its Search Central updates, so valid markup of those types earns nothing in Google Search. And passing every test doesn't guarantee a rich result; Google's own documentation says it "does not guarantee that features that consume structured data will show up in search results."
Sources
- 1developers.google.com
- 2developers.google.com
- 3support.google.com
- 4validator.schema.org
- 5developers.google.com
- 6developers.google.com
Ask next
Which Tool Answers Which Question
| Tool | Question | Tests |
|---|---|---|
| Rich Results Test | Does Google find valid items for its rich result types? | A live URL or a code snippet, rendered |
| Schema Markup Validator | Is this valid schema.org markup? | A URL or a code snippet |
| Search Console rich result reports | Which indexed pages have valid, warning or invalid items? | Pages Google has crawled and indexed |
| URL Inspection | What did Google see on this URL? | One indexed or live URL |
Google’s documentation is the reference for what each rich result type requires; the search gallery lists the types it supports.
Rich Results Test
The Rich Results Test accepts a full URL or a code snippet, and lets you test as a smartphone or desktop user agent, smartphone being the default. It “shows which rich result types were found on the page, as well as any errors or suggestions for your structured data.” Its URL status tells you where you stand:
| Status | What to do |
|---|---|
| Valid items detected | Check the values match the visible page |
| Valid items with warnings | Add recommended properties where the data exists |
| Some items invalid | Fix the invalid items first |
| No items detected | Check the markup is in the rendered page |
| URL cannot be crawled | Check robots.txt, <!–INLINECODE0–> and server access |
| Syntax errors detected | Fix the JSON-LD before anything else |
Two details from Google’s help: the test uses the rendered source, so markup added by JavaScript is tested as Google renders it; and it “ignores comments within JSON-LD blocks”, which the JSON-LD standard doesn’t support, so remove comments before publishing.
Schema Markup Validator
The Schema Markup Validator checks markup against the schema.org vocabulary. Use it for types and properties Google doesn’t use for rich results, such as markup you add for other consumers, and to catch vocabulary mistakes. It doesn’t tell you about Google rich result eligibility; that’s the Rich Results Test’s job.
Search Console Reports
After deployment, Google’s rich result status reports show valid and invalid items across indexed pages. Google’s product snippet guidance gives the routine: after deploying structured data for the first time, look for issues in the relevant report, then “Fix the invalid items”, inspect a live URL to check the issue persists, and request validation. After new templates or code changes, watch for increases in invalid items. Details of the reports are in the Google Search Console guide.
A Testing Workflow
- Confirm the type is still supported in Google’s search gallery and documentation.
- Read the type’s required and recommended properties in Google’s documentation.
- Check the JSON-LD parses, then run the Schema Markup Validator for vocabulary errors.
- Run the Rich Results Test on a staging URL or code snippet, as smartphone.
- Compare the values with the visible page, item by item.
- Deploy, then test the live URL and check URL Inspection.
- Watch the Search Console report for the type over the following weeks, and validate fixes there.
Errors That Testing Finds, and Some It Doesn’t
Missing required properties. Requirements differ by type. For product snippets, Google’s product snippet documentation requires name plus one of review, aggregateRating or offers: “You must include one of the following properties”. If you include offers, the offer needs price or priceSpecification.price, and Google notes the price value “can be a JSON string or number”.
Review rules. Google’s review snippet documentation says “Don’t aggregate reviews or ratings from other websites”, and that when the entity being reviewed controls the reviews about itself, pages using LocalBusiness or any other Organization markup “are ineligible for star review feature.” A test tool can report this markup as valid; the rule is a policy, so check it yourself.
Content mismatch. Values that don’t match what’s visible on the page, such as a price or rating that differs, pass syntax checks. Compare them by hand or with extracted data.
Wrong nesting. A review or offer that isn’t attached to the item it describes. The test’s item tree shows the nesting.
Markup missing after render. If the Rich Results Test finds nothing but the source has markup, check JavaScript errors and how the markup is injected; see JavaScript SEO.
Testing at Scale
- Test by template: one or two URLs per template, since the template produces the markup.
- Extract with a crawler: a crawler can pull JSON-LD from every page for checking; see Screaming Frog SEO Spider.
- Use Search Console for the indexed picture, since it reports on the pages Google has crawled and indexed.
- Retest after releases, CMS updates and plugin changes, which can change the markup without anyone editing it.
Markup basics are in structured data fundamentals, and specific types in product schema and rich results for e-commerce, LocalBusiness schema and review and AggregateRating schema.
When a Search Console report still lists an error you have fixed, test the live URL before touching the markup again: if the live test passes, the report is showing the version Google last indexed, so request validation and let Google recrawl.
Link profile
Links to 7 guides
- Google Search Console: Complete Guide
- JavaScript SEO: Rendering Issues and Solutions
- Screaming Frog SEO Spider: Technical Audit Tool
- Structured Data Fundamentals: JSON-LD, Microdata, and RDFa
- Product Schema and Rich Results for E-commerce
- LocalBusiness Schema: Complete Implementation Guide
- Review and AggregateRating Schema
Linked from 15 guides
- Video Schema: Video Content Markup
- Screaming Frog SEO Spider: Technical Audit Tool
- Recipe Schema: Food Content Optimization
- Product Schema and Rich Results for E-commerce
- Organization and Person Schema: Building Entity Identity
- LocalBusiness Schema: Complete Implementation Guide
- JobPosting Schema: Job Listing Markup for Google for Jobs
- HowTo Schema: Step-by-Step Content Markup
- Free SEO Tools: Building a Budget-Friendly Toolkit
- FAQ Schema: Markup and Rich Results
- E-commerce Technical SEO: Platform-Specific Considerations
- Course Schema: Educational Content Markup for Search Visibility
- BreadcrumbList Schema: Navigation Markup
- Article Schema: Implementation for Blogs and News Sites
- A/B Testing for SEO: Split Testing Methodology
Cites 6 sources
- Search Central updates developers.google.com
- search gallery developers.google.com
- Rich Results Test support.google.com
- Schema Markup Validator validator.schema.org
- product snippet documentation developers.google.com
- review snippet documentation developers.google.com