SEO Skill

Schema markup validator

Paste JSON-LD or a page's HTML and check its syntax, types and required properties for common search features.

Validate JSON-LD markup

Paste a JSON-LD object, a script element, or HTML containing JSON-LD. You can also open a local file.

Your markup stays in this browser tab. The validator checks up to 500,000 characters.

Read the validation result

The result lists every typed object it found, then the issues in three levels. Fix them in that order.

LevelWhat it means
ErrorThe markup cannot be read, or a type is missing a property it needs. A search feature will not use it.
WarningA recommended property is missing. The markup works, but it gives less detail.
AdviceA rule worth knowing for that type, such as who can get FAQ or review stars.

A type the validator does not have a profile for is listed on its own. Its JSON is still checked, but the validator does not claim to know every property in the full Schema.org vocabulary.

How the check works

The first pass parses the JSON and checks each object for an @context of Schema.org and an @type. The second pass compares each typed object with the required and recommended properties for fourteen common types, including Article, Product, Event, Recipe, LocalBusiness, JobPosting, VideoObject and BreadcrumbList.

Everything runs in this browser tab. The markup is not uploaded, and no URL inside it is requested.

Why structured data matters for search

A page says what it is in words. Structured data says it again in a form a machine cannot misread: this is a recipe, it takes 40 minutes, it has 212 reviews averaging 4.6. Google uses that to understand the page and to decide whether it can show extras such as review stars, prices, event dates or a video thumbnail.

Those extras change how a result looks, which can change how many people click it. They do not move the page up the results. Google also expects the markup to describe what a visitor can see on the page. Markup for content that is hidden or untrue can cost the page its rich results.

Fix common schema markup errors

  • Invalid JSON. A trailing comma, a missing brace or curly quotes pasted from a word processor. The error gives the line.
  • No context or type. Each top-level object needs "@context": "https://schema.org" and an @type, or nothing else in it can be read.
  • Missing required property. An article with no image or a product with no offer, review or rating. Add the property if the page shows it. If it does not, leave the type out.
  • Wrong value shape. An author given as a plain string where a Person object with a name works better, or a date that is not in ISO 8601 form such as 2026-10-21.
  • Template values left empty. A CMS that prints "price": "" when a field is blank. Fix the template, not one page.

Use the official tests as well

Google's Rich Results Test reads a live URL after rendering it and shows which Google features it is eligible for. Schema.org's validator checks the whole vocabulary, including Microdata and RDFa. This page is quicker for pasted code and drafts, and it never sends them anywhere. Need a fresh block? The schema markup generator builds one from a form.

Check structured data across your site with your agent

One page at a time is fine for a draft. For a whole site, the seo crawl command fetches your pages on your own machine and reports the ones with no structured data at all and the ones with JSON-LD that does not parse. Your agent can then open the template that prints it and fix the cause. Ask:

Crawl example.com and list the pages with broken JSON-LD, grouped by template

The crawl runs from the CLI. Install it and run setup:

npm i -g seo && seo start

Or add the hosted MCP server for Search Console work in your agent:

Run it in a terminal, then sign in with Google.

Or run it on your machine

Installs the CLI, signs you in and adds the skill to your agents. Site crawls and Bing data run this way, on your own machine. A crawl fetches many pages, and Bing blocks our hosted server.

Schema validator questions