Schema Markup Validator
Check the structured data on any page: which schema.org types it declares, whether the JSON is valid and which properties are missing for rich results.
Free · needs a free account · reads public data only
See your results in one click. Sign in with Google, then run any of the 150 free tools.
Continue with Google
A schema markup validator checks the structured data on a web page and tells you whether search engines can read it. Our tool finds every JSON-LD block on the page you enter, including items grouped in an @graph, flags any block that is not valid JSON, lists each schema.org type it declares and checks common types for the core properties Google looks for. It also counts any microdata it finds. Use it after adding schema to a template, installing an SEO plugin or launching a new site.
How to use the Schema validator
- 1 Sign in and open the validatorLog in to your free account and open the Schema Markup Validator from the tools list.
- 2 Enter a specific pagePaste the full address of the page to test, such as a product, article or contact page. Different templates usually carry different schema, so test one of each.
- 3 Check the JSON is validLook first for any block reported as not valid JSON. Google ignores a broken block completely, so this is always the first fix.
- 4 Review each type and its missing propertiesRead the list of types found and add any properties reported as missing for the types you want rich results for.
- 5 Confirm with GoogleRun the page through the Google Rich Results Test, then watch the enhancement reports in Search Console over the following weeks.
What structured data does
Structured data is code that describes the page in a format search engines understand: this is a product with this price, an article by this author, a business at this address. It makes pages eligible for rich results such as review stars, FAQs, breadcrumbs and product details.
What this checker looks at
Every JSON-LD block on the page, including @graph collections. Invalid JSON is flagged, each item's @type is listed, and common types are checked for the properties Google requires before showing a rich result.
What a schema markup validator checks
Schema markup is structured data written in the schema.org vocabulary. It labels the facts on a page, such as a product name, price, author, address or event date, so that machines do not have to guess. It can be written as JSON-LD in a script tag, as microdata attributes in the HTML, or as RDFa. Google supports all three but recommends JSON-LD because it is separate from the visible HTML and easier to maintain.
Our schema markup validator reads every script with the type application/ld+json. A block can contain one item, a list of items or an @graph collection, and the tool unpacks each of these. For every top-level item it takes the first @type and, if that type is one of the common ones we check, looks for its core properties. Microdata is counted and reported but not checked property by property, and RDFa is not detected.
- Organization and WebSite: name and url.
- LocalBusiness: name and address.
- Article, BlogPosting and NewsArticle: headline, author, datePublished and image.
- Product: name, plus offers, review or aggregateRating.
- FAQPage: mainEntity. BreadcrumbList: itemListElement.
- Event, Recipe, Review, SoftwareApplication, VideoObject and JobPosting: their key properties.
Why structured data matters for Google and AI search
Structured data is what makes a page eligible for rich results: product prices and stock, review stars on products, breadcrumbs instead of a raw URL, event dates, recipe details and job listings in Google for Jobs. These results take up more space and usually earn more clicks. Markup alone does not guarantee them, but without it most are impossible.
Clear structured data also helps search engines and AI systems understand who you are and what a page is about. Organization or LocalBusiness markup ties your name, website, logo, address and social profiles together as one entity, which reduces the chance of being confused with a business of the same name. It is not a shortcut to AI citations, but it removes ambiguity at no cost.
How to read the structured data test results
If the page has no JSON-LD and no microdata, the check shows a warning suggesting a type to start with. A block that cannot be parsed is a fail, with the error message from the JSON parser, such as a syntax error, to help you find the problem. Each valid item is then reported as complete, with its number of properties, or as missing required properties, with the names listed.
Types outside our list, such as a LocalBusiness subtype like Dentist or Plumber, are still listed with their property count but are not checked against a list, so check those carefully in the Google Rich Results Test. Microdata appears as an information line, and the final line reminds you to confirm the page with Google, because only Google's own test shows exactly which rich results it will consider.
The checks look at top-level items, meaning the items directly in a block or in its @graph. Nested objects, such as the author inside an Article or the offer inside a Product, count towards their parent rather than being checked on their own. If an item has more than one @type, the first one decides which properties are checked. When a property is reported as missing but you can see it in your markup, check its spelling and capitalisation: schema.org names are case sensitive, so datepublished or Headline will not be recognised, and an empty value counts as missing.
How to fix schema errors step by step
For invalid JSON, copy the block into a text editor and look for the usual culprits: a comma after the last item in a list or object, curly quotes pasted from a word processor, an unescaped double quote inside a value, or a missing closing bracket. Fix it in the place it is generated, not just on one page, or the error will return.
For missing properties, add them with real values from the page. In WordPress, Yoast SEO and Rank Math generate Article, Organization, WebSite, BreadcrumbList and WebPage markup automatically; complete the site representation or local SEO settings so the organisation name, logo and address are filled in, and use Rank Math's Schema tab or a Yoast add-on for products and other types. WooCommerce adds Product markup from the product data, so fill in price, stock and images.
Shopify themes include Product and Organization markup, which you can extend with a JSON-LD snippet in the theme code or an app. Wix generates structured data for many page types and lets you add custom markup in each page's SEO settings, under Advanced SEO. Squarespace adds basic markup automatically; for anything extra, add a JSON-LD block through code injection on the page or the site header.
Rich result rules every schema checker user should know
Google only shows rich results when the markup describes content that visitors can actually see on the page. Marking up reviews that are not on the page, prices that differ from the visible price or FAQs hidden from users breaks its structured data policies and can lead to a manual action.
Some rich results have narrowed over time. FAQ rich results are now shown only for well-known, authoritative government and health websites, and HowTo rich results have been removed. Review stars are not shown for reviews a business publishes about itself on its own site through LocalBusiness or Organization markup. Google has also retired several less-used rich result types, so check its search gallery for the current list before investing time in a new type.
Structured data best practice for small businesses
Start with the types that suit your site: Organization or LocalBusiness on the homepage, BreadcrumbList across the site, Article on blog posts, and Product on shop pages. Use the most specific LocalBusiness subtype that fits, such as Plumber, Dentist or Restaurant, and include opening hours and a phone number in the UK format your customers use.
Keep markup in one place where possible, ideally one plugin or one template, so you do not end up with two conflicting Organization items. Remember that our validator, like most crawlers, reads the HTML your server sends; markup added later by JavaScript, for example through a tag manager, may not appear. Run a schema markup validator whenever you change theme or plugin, and keep an eye on the Search Console enhancement reports for new errors.
Examples you can copy
LocalBusiness markup for a UK trade business
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Example Plumbing Ltd",
"url": "https://www.example.co.uk/",
"logo": "https://www.example.co.uk/images/logo.png",
"telephone": "+44 20 7946 0000",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 High Street",
"addressLocality": "Croydon",
"postalCode": "CR0 1AA",
"addressCountry": "GB"
},
"openingHours": "Mo-Fr 08:00-18:00"
}
</script>
Product markup with a price in pounds sterling
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Handmade Oak Chopping Board",
"image": "https://www.example.co.uk/images/oak-board.jpg",
"description": "Solid English oak chopping board, 40 x 25 cm, finished with food-safe oil.",
"sku": "OAK-40",
"offers": {
"@type": "Offer",
"price": "45.00",
"priceCurrency": "GBP",
"availability": "https://schema.org/InStock",
"url": "https://www.example.co.uk/shop/oak-chopping-board/"
}
}
</script>
Article markup for a blog post
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How to Bleed a Radiator in Five Minutes",
"image": "https://www.example.co.uk/images/bleed-radiator.jpg",
"datePublished": "2026-09-14T09:00:00+01:00",
"dateModified": "2026-10-01T10:30:00+01:00",
"author": {
"@type": "Person",
"name": "Sam Taylor",
"url": "https://www.example.co.uk/about/sam-taylor/"
}
}
</script>
Common mistakes to avoid
A trailing comma in the JSON
A comma after the last property makes the whole block invalid, and Google ignores all of it. Remove the comma and run the validator again.
Marking up content that is not on the page
Structured data must match what visitors see. Review ratings, prices or FAQs that exist only in the markup break Google's policies.
Two plugins outputting the same schema
An SEO plugin and a theme or schema plugin can each add Organization or Product markup, giving Google conflicting data. Switch one of them off.
Using the wrong currency or price format
Write prices as plain numbers such as 45.00 with priceCurrency GBP, not £45 in the price field.
Expecting FAQ stars on a business site
FAQ rich results are now limited to authoritative government and health sites. FAQ markup is still valid, but do not expect it to change how your result looks.
Hard-coding dates that never update
A dateModified that never changes, or always shows today, misleads users and search engines. Let your CMS fill dates from the real publish and update times.
Frequently asked questions
Not directly. It helps Google understand the page and can win rich results, which usually improve click-through rate.
JSON-LD. Google recommends it, and it lives in one script block instead of being spread through your HTML, so it is far easier to maintain.
Valid markup makes a page eligible, not guaranteed. Google also considers content quality and policies, and some rich results (such as FAQ) are now shown only for certain sites.
Either the head or the body works. Google reads JSON-LD wherever it appears in the HTML, so most sites put it in the head for tidiness.
Yes. You can use separate blocks for Organization, BreadcrumbList and Article, or combine them in one @graph. Our validator checks each block and each item separately.
Google can read JSON-LD injected with JavaScript once it renders the page, but it is less reliable and other crawlers may not see it. Server-side markup is the safer choice, and it is what our validator reads.
Google needs to recrawl and reprocess the page, which can take days or weeks. Request indexing in Search Console to speed up the recrawl, but there is no guaranteed timescale.
Google says there is no special markup needed to appear in AI Overviews. Structured data still helps it understand your page and business, which supports visibility in general.
Use LocalBusiness or, better, the most specific subtype that fits, such as Plumber, Dentist, Restaurant or AccountingService, with your name, address, phone number and opening hours.
Learn more
- How to Get Into Google AI Overviews and AI Mode How to get your content into Google AI Overviews and AI Mode: what Google actually requires, how to structure pages, snippet controls and how to measure it.
- Structured Data for Small Businesses: What Still Works in 2026 Which schema markup still earns rich results in 2026: Organization, LocalBusiness and Article examples, plus what happened to FAQ and HowTo rich results.
- Google Universal Cart Is Live: What Online Stores Should Do Now Google Universal Cart launched in US Search, AI Mode and Gemini on October 15, 2026. What it means for online stores, Shopify checkout settings and UCP.
- Supplement Claims Review Workflow: Checking Product Pages Before They Go Live A supplement claims review workflow for product pages: an approved claims library, automated pre-checks by market, and sign-off by a qualified person.
- WebMCP Rollout: AI Shopping Agents Get Tools on 100,000 Online Stores Commerce.com and Cloudflare enabled WebMCP on nearly 100,000 store domains on October 21, 2026, giving AI agents shopping tools. What store owners should know.
Free website audit
See how your site scores, free
Speed, SEO, DNS, email (SPF/DKIM/DMARC) and security in one scan, with a prioritised fix list.