Schema Markup Validator
Free structured data validator: enter a URL or paste code and we extract every JSON-LD, Microdata and RDFa item, report JSON errors with line numbers, check types and properties against the schema.org vocabulary (release 30.1) and test the required and recommended fields for Google rich results — with fixes ready to copy.
Or paste code: JSON-LD or HTML
Key facts
- Price
- Free
- Sign-up
- Not required
- Processing
- On our server: we download the page's HTML (JavaScript is not executed) or parse the code you paste
- Input
- A public URL (redirects are followed) or pasted JSON-LD / HTML up to 512 KB
- Limits
- 12 page fetches and 20 code checks per minute per IP; no daily cap; 20-second page timeout, first 5 MB of HTML checked; URL results are cached for 10 minutes
- Output
- Error and warning summary, JSON errors with line and column plus a repaired block, a tree of every item, schema.org vocabulary checks (release 30.1), @id references and duplicates, Google required and recommended fields for 11 types, fix snippets
- Last updated
Alternatives
Other tools for the same job, and what each one does well:
- Schema Markup Validator (validator.schema.org) — The official schema.org validator: checks any vocabulary type from a URL or a code snippet, without Google-specific rich result rules.
- Google Rich Results Test — Google's own tool: shows which rich results a page or code can produce, tests as Google's smartphone or desktop crawler (JavaScript included) and previews the result.
- Google Search Console — rich result reports — Site-wide reports for each markup type: valid items, errors and warnings after Google crawls the site; they show a sample of items, not a full list.
When to choose this tool: When you want the schema.org vocabulary and Google's fields in one report, the exact location of a JSON error with corrected code, and duplicates spotted (say, two different Organization nodes from a plugin and a theme) — or need the interface in Russian, Ukrainian or Polish. For markup injected by JavaScript, use the Rich Results Test.
Descriptions checked against each tool's own site in October 2026.
Schema markup validator for JSON-LD, Microdata and RDFa
The validator finds every structured data item on a page or in pasted code — JSON-LD, Microdata and RDFa — and checks it in three layers. First syntax: if the JSON is broken, you get the line, column and reason (trailing comma, curly quotes, a line break inside a value) plus a repaired block. Then the schema.org vocabulary: unknown types and properties with a "did you mean" hint, properties used on the wrong type, superseded terms, invalid enumeration values, dates and durations that aren't ISO 8601, dangling @id references and duplicate entities. Finally Google's rules: required and recommended fields for articles, products, reviews, breadcrumbs, organizations, events, recipes, videos, software apps and job postings.
How to Use
- Enter a page URL or paste JSON-LD / HTML into the code box
- Start with errors: JSON syntax and Google required fields
- Copy the fixes, update the page and validate again
FAQ
What the validator checks
Structured data is a machine-readable description of a page in the schema.org vocabulary: a product with a price, an article with an author, a business with an address. Search engines use it to understand the page and to build rich results. The validator checks your markup in three layers:
- Syntax. One stray character and search engines skip the whole JSON-LD block. We show the line and column, explain the cause and, where it is safe, repair it: drop trailing commas and comments, replace curly quotes with straight ones, escape line breaks inside values, and wrap several back-to-back objects in an array.
- The schema.org vocabulary. Every type and property is checked against the current vocabulary release: unknown terms (with a hint when it's a typo or the wrong case —
datepublishedinstead ofdatePublished), properties used on a type they don't belong to, superseded terms, enumeration values (InStock,EventScheduled), and ISO 8601 dates and durations. - Google's rules. For articles, products, reviews, breadcrumbs, organizations, local businesses, events, recipes, videos, software apps and job postings we check the required and recommended fields from Google Search Central documentation. A missing required field is an error — that item can't get the rich result. A missing recommended field is a warning.
The validator also unpacks @graph, resolves @id references and finds duplicates — for example, two different Organization nodes printed by an SEO plugin and by the theme.
Common errors and how to fix them
| What you see | How to fix it |
|---|---|
Trailing comma before } or ] | Delete the comma after the last property. It usually appears when a field is removed from a template. |
| Curly quotes “ ” | The code was copied from Word or a visual editor. Paste JSON-LD in HTML mode or into a code field. |
| Property doesn't exist in schema.org | Check spelling and case: properties start lowercase (description), types start uppercase (Product). |
| "This is a property, not a type" | A property name ended up in @type or itemtype. Use a type: Article, Product, Organization… |
| Value is not in the enumeration | "availability": "in stock" → "https://schema.org/InStock". |
| Price with a currency sign or comma | "price": "$1,299.00" → "price": "1299.00", "priceCurrency": "USD". |
| Date isn't ISO 8601 | 10/13/2026 → 2026-10-13 or 2026-10-13T09:00:00-05:00. |
| Duration isn't ISO 8601 | "cookTime": "30 min" → "PT30M"; an hour and a half is "PT1H30M". |
| @id reference goes nowhere | Describe an object with that @id on the page, or fix the reference. |
| Two nodes for one entity with different data | Keep one, give it an @id and reference it everywhere else. |
Google's required fields by type
Per Google Search Central documentation (checked October 2026). The validator lists the full set of recommended fields for each item.
| Type | Required | Key recommended |
|---|---|---|
| Article, NewsArticle, BlogPosting | no required fields | headline, image, datePublished, dateModified, author with name |
| Product (product snippet) | name plus one of offers, review, aggregateRating; price in the Offer | priceCurrency, availability; merchant listings also need image and an Offer |
| Review / AggregateRating | itemReviewed with name, author and reviewRating.ratingValue (review); ratingValue and ratingCount or reviewCount (rating) | datePublished, bestRating, worstRating |
| BreadcrumbList | itemListElement: ListItem with position, name and item (item may be omitted on the last one) | — |
| Organization | no required fields | name, url, logo, contact details, address |
| LocalBusiness | name, address | telephone, url, geo, openingHoursSpecification, priceRange |
| Event | name, startDate, location with address | endDate, eventStatus, image, offers, organizer, performer |
| Recipe | name, image | recipeIngredient, recipeInstructions, times, recipeYield, aggregateRating |
| VideoObject | name, thumbnailUrl, uploadDate | contentUrl or embedUrl, description, duration |
| SoftwareApplication | name, offers.price, aggregateRating or review | applicationCategory, operatingSystem |
| JobPosting | title, description, datePosted, hiringOrganization, jobLocation with addressCountry (or a remote job) | validThrough, employmentType, baseSalary |
What Google no longer shows
- FAQ — limited to well-known government and health sites from September 2023, dropped entirely on 7 May 2026; the documentation was removed in June 2026.
- How-to — removed on desktop and mobile in September 2023.
- Sitelinks search box (WebSite + SearchAction) — retired in November 2024.
- Breadcrumbs — not shown in mobile results since January 2025; still shown on desktop.
- Course info, Estimated salary, Learning video, Special announcement, Vehicle listing — documentation removed in September 2025; practice problem in January 2026. Dataset markup is now used only by Dataset Search.
This markup does no harm and remains valid schema.org, so the validator labels it as information, not as an error.
@graph and @id: one entity, one description
When a page has several objects, collect them in a @graph and link them with @id instead of repeating the organization in every block:
{
"@context": "https://schema.org",
"@graph": [
{"@type": "Organization", "@id": "https://example.com/#org", "name": "Example", "url": "https://example.com/", "logo": "https://example.com/logo.png"},
{"@type": "WebSite", "@id": "https://example.com/#website", "url": "https://example.com/", "publisher": {"@id": "https://example.com/#org"}},
{"@type": "Article", "headline": "…", "datePublished": "2026-10-13", "publisher": {"@id": "https://example.com/#org"}}
]
}
The validator shows where each reference points. A # reference to an object missing from the page is a warning; a reference to another page is a note, because search engines may not resolve it.
Reviews of yourself
Google shows rating stars for LocalBusiness and Organization only on sites that collect reviews about other businesses. If a site marks up ratings of its own business, Google treats them as self-serving and shows no stars. The validator warns about this and says so plainly when the organization's url matches the site being checked.
Limitations
- We read the HTML as the server sends it and don't run JavaScript. Google can read JSON-LD injected by scripts, so for that kind of markup use the Rich Results Test or paste the rendered HTML from your browser's developer tools here.
- We don't compare markup with the visible page: if the price or rating in JSON-LD differs from what visitors see, that breaks Google's guidelines, but it can't be caught automatically.
- Valid markup makes a page eligible for a rich result; Google doesn't guarantee it will show one.
Need markup from scratch? Use the Schema Generator. For meta tags and Open Graph, see the meta tag checker and the OG Debugger.
Improve search rankings
SEO problems may be costing you traffic. Cascade link building will improve site visibility in search.