To validate schema markup, run the page or the JSON-LD snippet through a schema validator that checks two things: that the code parses correctly, and that it includes the properties Google needs for rich results. The QCK Schema Markup Validator pulls every JSON-LD block from a URL or pasted snippet and reports syntax errors, missing required properties and missing recommended ones.
What schema markup validation checks
Schema markup is structured data, usually written as JSON-LD inside a <script type="application/ld+json"> tag, that describes the page's content using the schema.org vocabulary. Validation happens at three levels:
| Level | Question | Example failure |
|---|---|---|
| Syntax | Is it valid JSON? | Missing comma, trailing comma, unescaped quote |
| Vocabulary | Are the types and properties real schema.org terms? | Misspelled type such as Prodcut, or a property on the wrong type |
| Rich result requirements | Does it include what Google requires for a given rich result? | Product without a name, or a review snippet without a rating value |
Google offers two official tools that map to these levels. The Schema Markup Validator at validator.schema.org checks general schema.org validity; it replaced Google's old Structured Data Testing Tool in 2021. The Rich Results Test checks eligibility for Google's rich result features specifically. A page can pass the first and fail the second.
Why schema validation matters
Invalid markup is worse than no markup in one respect: you did the work and get nothing for it. A single syntax error usually invalidates the whole JSON-LD block, so a product page can lose its price and availability details in results because of one stray character.
Valid markup makes a page eligible for rich results such as product snippets with price and ratings, breadcrumbs, and article details. Eligible does not mean guaranteed: Google decides whether to show rich results case by case. Structured data also gives search engines and AI systems an unambiguous statement of facts like product name, brand, price and organization details, which supports how your brand is understood across search and AI answers.
How to use the QCK schema validator
- Open the Schema Markup Validator.
- Paste a page URL to extract every JSON-LD block on the live page, or paste a snippet to test code before you publish it.
- Run the validation.
- Check the syntax result for each block first. Fix any parse errors before anything else.
- Review the detected types (for example Product, Organization, BreadcrumbList) and confirm they are what you expect.
- Read the property checks: missing required properties block rich result eligibility, while missing recommended ones limit what can be shown.
- Fix the markup in your theme, app or CMS and validate again.
Then confirm with Google's Rich Results Test on the live URL, and monitor the enhancement reports in Search Console over time.
How to read the results and fix common errors
Syntax errors
- Trailing commas: JSON does not allow a comma after the last item in an object or array.
- Unescaped quotes: product descriptions containing double quotes, such as sizes in inches, break the string. Escape them or strip them from the markup.
- Smart quotes: copying JSON-LD from a word processor can replace straight quotes with curly ones, which are invalid.
- Template output: a Liquid or PHP variable that outputs empty or HTML-formatted text can break the structure.
Missing properties
Each rich result type has its own requirements in Google's documentation. Product snippets, for example, need the product name plus a review, aggregate rating or offer. Merchant listings need offer details such as price and currency. Add the missing fields from your real product data rather than hardcoding values.
Duplicate or conflicting markup
Themes and apps often each output their own Product or Organization markup. Two Product blocks with different prices confuse parsers. Pick one source and remove the other.
Markup that does not match the page
Google's guidelines require structured data to describe content that is visible to users. Ratings that do not appear on the page, or prices that differ from the displayed price, can lead to rich results being withheld or a manual action.
Tips and mistakes to avoid
- Prefer JSON-LD. Google supports JSON-LD, Microdata and RDFa, and recommends JSON-LD because it is easiest to maintain.
- Validate templates, not just pages. Test a product with and without reviews, in stock and out of stock, with and without a sale price.
- Revalidate after app installs and theme updates. That is when duplicate markup appears.
- Do not mark up what is not there. If you need new markup, use the schema markup guide and generator to build it from real page content.
- Know which rich results still exist. FAQ and HowTo rich results were restricted or removed in 2023. See the FAQ schema guide.
Structured data across a large catalog is easiest to get right at the template level. Our e-commerce SEO and technical SEO teams audit and rebuild schema for Shopify and custom stacks.