Free tool · no signup · instant result
Schema Markup Validator — Check Your JSON-LD Structured Data
Paste any page URL. This schema validator extracts every JSON-LD block, rebuilds the entity graph and reports what is broken — missing required properties, authors written as plain strings, entities duplicated instead of linked, mistyped @type values — with the exact fix for each.
Reads the server-rendered HTML of one page. Nothing is stored. JSON-LD only — markup injected by client-side JavaScript or a tag manager is not visible to this check.
What this schema validator checks
The tool reads one page and grades the structured data on it. It cannot verify that what the markup claims is true, and it never predicts a rich result or an AI citation — those are decisions made elsewhere.
- Every
application/ld+jsonblock, and whether each parses - Required properties per schema.org type
- Recommended properties, reported separately
- Publisher identity — Organization, LocalBusiness or Person
sameAsentity corroboration links@idaddressability and silent duplicate entities- Authors and publishers given as strings instead of entities
- Mistyped or unrecognised
@typevalues - BreadcrumbList completeness
- Relative URLs in
url,@id,logo,image,sameAs - Which present types still produce a Google rich result
- Whether the markup matches the visible page (a human has to judge that)
- Schema injected by JavaScript or GTM (server-rendered HTML only)
- Microdata and RDFa (detected, not validated)
- Whether a rich result will appear (Google decides per query)
- Whether AI engines use your markup (no vendor publishes this)
- Site-wide coverage (one page per run — see the full audit)
How the score is calculated
Ten weighted checks. A page with no parseable JSON-LD caps at 10, and any structural failure caps below 50, so a passing number never hides a broken graph. Advisory notes — retired rich-result types, recommended properties — carry no weight.
| Points | Check | What has to be true |
|---|---|---|
| 18 | JSON-LD present and parses | At least one application/ld+json block that is valid JSON. A block that fails to parse counts for nothing. |
| 12 | Publisher identity | An Organization, LocalBusiness or Person entity carrying name, url and logo. |
| 12 | sameAs entity links | External profiles that corroborate who the entity is — two or more for full credit. |
| 12 | Page-level entity | A type describing what this page is about. Generic container types earn partial credit. |
| 12 | Required properties | Every recognised entity carries what its own type requires. |
| 10 | Authors as entities | author and publisher are typed objects or @id references, never bare strings. |
| 8 | @id addressability | Reusable entities have stable identifiers and are not silently duplicated. |
| 6 | BreadcrumbList | Present, with position, name and item on every level. |
| 6 | Recognised @type values | No mistyped types — a typo silently voids the entity it sits on. |
| 4 | Absolute URLs | url, @id, logo, image and sameAs include scheme and host. |
What structured data actually does — and what it does not
Structured data describes a page in a form a machine can read without inferring anything. It states who published the page, who wrote it, what it is about and how it relates to other things, in a vocabulary — schema.org — that consumers already understand. Google uses it to understand pages and to make them eligible for rich results, and is explicit that valid markup does not guarantee a rich result and that structured data is not itself a ranking factor. No major AI search vendor has published structured data as a retrieval or citation input, so any claim that schema earns AI citations is unverified. What can be said honestly is narrower and still worth having: correct markup removes ambiguity about identity and authorship for every consumer that chooses to read it, and it costs nothing to get right.
Structured data types that no longer produce rich results
Most advice about schema markup is older than the features it recommends. Two widely deployed types no longer create anything in Google Search — the markup stays valid, and removing it is optional, but expecting a search feature from it is not realistic.
| Type | Status | Still worth keeping? |
|---|---|---|
| FAQPage | Rich result removed from Google Search on 7 May 2026; documentation retired 15 June 2026 | Harmless and still valid schema.org. It exposes clean question-and-answer pairs to any parser, so it stays useful as machine-readable content — just not as a search feature. |
| HowTo | Removed from mobile and desktop in 2023; no rich result on any surface | Same position: valid markup, no search feature. |
This validator reports both as notes and does not count them against your score. Types that do still produce rich results — Article, Breadcrumb, Product, Review, Event, JobPosting, LocalBusiness, Organization, Recipe, Video and others — are listed in your result when present.
Common schema markup errors and how to fix them
Ordered roughly by how often they turn up on real sites. The first three account for most broken entity graphs.
- The author is a plain string. author: "Jane Roe" names someone without identifying them — a string cannot carry a URL, a sameAs list or an identifier. Fix: Use a nested Person object with url and sameAs, or an @id reference to a Person entity defined once.
- A trailing comma breaks the whole block. One invalid character makes the JSON unparseable, and a block that does not parse is ignored in full. Every entity inside it is lost silently. Fix: Validate the block as plain JSON on every deploy. Templating engines add trailing commas when a loop ends early.
- The same Organization is declared on every page with no @id. Without a shared identifier the same company reads as a new, unrelated object on each URL rather than one entity mentioned many times. Fix: Declare it once with @id such as https://example.com/#organization and reference that @id everywhere else.
- A mistyped @type. "Blogposting" or "FAQpage" are not schema.org types. Type names are case-sensitive, and a typo voids the entity without any visible error. Fix: Check each @type against schema.org. This validator flags anything it does not recognise.
- Relative URLs inside the markup. Structured data is consumed away from the page, so "/logo.png" has nothing to resolve against. Fix: Use absolute URLs with scheme and host for url, @id, logo, image and sameAs.
- Markup that contradicts the visible page. A rating, price or review count in the markup that does not appear on the page is a policy violation, not a shortcut. It risks a manual action. Fix: Only mark up what a visitor can see on the page.
- Schema injected by a tag manager. Markup added by client-side JavaScript is absent from the server-rendered HTML that many parsers read, so it may never be seen. Fix: Render structured data server-side. If you cannot, verify separately in a tool that executes JavaScript.
- sameAs pointing at pages you do not control. sameAs is meant to link the entity to profiles that are demonstrably the same entity. Random citations weaken rather than strengthen the signal. Fix: List only official profiles: your own accounts, and authoritative databases where the entry is genuinely yours.
JSON-LD templates you can copy
Five starting points, all structurally valid. Replace the values with your own — never leave placeholder data in production — then re-run the validator above to confirm the block parses and links correctly.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Example Company",
"url": "https://example.com/",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png",
"caption": "Example Company"
},
"description": "One sentence stating what the company does and for whom.",
"foundingDate": "2019-03-01",
"sameAs": [
"https://www.linkedin.com/company/example",
"https://github.com/example",
"https://www.crunchbase.com/organization/example"
]
} {
"@context": "https://schema.org",
"@type": "Article",
"headline": "The article title, under 110 characters",
"description": "One or two sentences summarising the article.",
"datePublished": "2026-07-22",
"dateModified": "2026-07-22",
"image": "https://example.com/images/article.jpg",
"author": {
"@type": "Person",
"name": "Jane Roe",
"url": "https://example.com/team/jane-roe/",
"jobTitle": "Head of Research",
"sameAs": ["https://www.linkedin.com/in/janeroe"]
},
"publisher": { "@id": "https://example.com/#organization" },
"mainEntityOfPage": "https://example.com/blog/the-article/"
} {
"@context": "https://schema.org",
"@type": "Product",
"name": "Example Product",
"image": ["https://example.com/images/product.jpg"],
"description": "What the product is and who it is for.",
"sku": "EX-1001",
"brand": { "@type": "Brand", "name": "Example" },
"offers": {
"@type": "Offer",
"url": "https://example.com/products/example/",
"price": "149.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"priceValidUntil": "2026-12-31"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "127"
}
} {
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/" },
{ "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://example.com/blog/" },
{ "@type": "ListItem", "position": 3, "name": "This article" }
]
} {
"@context": "https://schema.org",
"@type": "LocalBusiness",
"@id": "https://example.com/#business",
"name": "Example Studio",
"url": "https://example.com/",
"telephone": "+380441234567",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 Khreshchatyk St",
"addressLocality": "Kyiv",
"postalCode": "01001",
"addressCountry": "UA"
},
"geo": { "@type": "GeoCoordinates", "latitude": 50.4501, "longitude": 30.5234 },
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "09:00", "closes": "18:00"
}],
"sameAs": ["https://www.facebook.com/example", "https://www.instagram.com/example"]
} Does valid schema guarantee rich results or AI citations?
No, on both counts. Google states that structured data makes a page eligible for a rich result and that eligibility is not a guarantee — display depends on the query and on Google's own judgement. For AI answer engines the position is weaker still: no vendor has published structured data as a retrieval or citation input. A perfect score here means your entity graph is complete and internally consistent. That is worth having on its own terms, and it is not a visibility mechanism. The gap between correct markup and actually being cited is what the AI Visibility Audit measures and what AEO and GEO work on.
Schema markup validator — FAQ
What is a schema markup validator?
A schema markup validator fetches a page, extracts its JSON-LD structured data and checks it against schema.org type definitions — whether required properties are present, whether entities are linked rather than duplicated, and whether values are the right shape. This one also scores completeness 0-100 and gives the fix for each finding. It validates markup, not the truth of what the markup claims.
What is JSON-LD?
JSON-LD is a JSON-based format for embedding structured data in a page, placed inside a script tag with type "application/ld+json". It is the format Google recommends, because it sits in one block separate from the visible HTML rather than being woven through the markup like microdata or RDFa.
How is this different from Google’s Rich Results Test?
Google’s Rich Results Test answers one question: is this page eligible for a Google rich result. This validator answers a broader one: is the entity graph complete and internally consistent — publisher identity, sameAs links, @id addressability, authors as real entities. Those matter for machine-readability whether or not a rich result exists. Use both; they check different things.
Does schema markup improve rankings?
Google has stated that structured data is not a ranking factor in itself. What it does is make the page unambiguous to a parser and make it eligible for rich results, which can change how the listing looks and how often it is clicked. Treat any claim of a direct ranking boost from schema as unsupported.
Does schema markup guarantee rich results?
No. Google is explicit that valid structured data makes a page eligible for a rich result but does not guarantee one. Whether a rich result appears depends on the query, the page’s quality and Google’s own judgement. Eligibility is the part you control; display is not.
Do FAQPage rich results still appear in Google?
No. Google removed the FAQ rich result from Search on 7 May 2026 and retired the documentation on 15 June 2026. FAQPage remains valid schema.org, leaving the markup in place causes no problem, and it still exposes clean question-answer pairs to any parser — but it will not produce a search feature. This validator reports it as a note, not a defect.
Is HowTo structured data still useful?
HowTo no longer produces a rich result on any Google surface — it was removed from mobile and desktop in 2023. The type is still valid schema.org and still describes a procedure in machine-readable form, so it is not an error to keep, but expect no search feature from it.
What is sameAs used for?
sameAs links your entity to external pages that describe the same entity — an official LinkedIn company page, a GitHub organisation, a Crunchbase or Wikidata entry. It is the property that turns a name and a URL into something a parser can corroborate against sources it already knows. It is the single most useful property for entity disambiguation.
What does @id do in JSON-LD?
@id gives an entity a stable identifier so it can be referenced instead of repeated. Declare your Organization once with "@id": "https://example.com/#organization", then write "publisher": {"@id": "https://example.com/#organization"} everywhere else. Without it, the same company described on 200 pages can read as 200 separate objects.
Should the author be a string or an object?
An object. A string names an author; an object identifies one. Person with name, url, jobTitle and sameAs can be resolved to a real, checkable individual, which is what an expertise signal requires. A bare string carries nothing beyond the characters in it.
How many JSON-LD blocks should a page have?
There is no limit, and multiple blocks are valid. What matters is that entities across them are linked by @id rather than repeated in slightly different forms. Many sites use one block per concern — Organization, WebSite, the page entity, breadcrumbs — which is fine as long as the @id references tie them together.
Does this validator see schema added by Google Tag Manager?
No. It reads the server-rendered HTML, so structured data injected later by client-side JavaScript or a tag manager is invisible to it — as it is to any parser that does not execute JavaScript. If you inject markup that way, verify it separately in a tool that renders the page.
Does this check microdata and RDFa?
It detects them and tells you they are present, but it validates JSON-LD only. JSON-LD is the format Google recommends and the one that is practical to check reliably. Mixing formats on one page is allowed but harder to keep consistent.
Can invalid schema markup hurt a site?
Invalid markup is usually ignored rather than penalised — a block that does not parse simply counts for nothing. What can cause harm is markup that misrepresents the page: ratings, prices or reviews that a visitor cannot see are a structured data policy violation and can attract a manual action.
Do AI search engines read structured data?
No major AI search vendor has published structured data as a retrieval or citation input, so any specific claim about it is unverified. What can be said honestly: structured data states who published a page, who wrote it and what it is about in an unambiguous machine-readable form, which removes guesswork for any consumer that chooses to read it. That is a reason to get it right — not evidence of a citation lift.
Schema is one of 47 checks.
The full AI Visibility Audit scores your crawler access, llms.txt, entity signals and live AI citations alongside your structured data — a 0–100 report emailed in under a minute.
Run the free AI Visibility Audit