Skip to content
ThemesIonic — home

Schema Markup Validator

What this checks, and what it does not

It reads every application/ld+json block on the page, confirms the JSON parses, and lists the types declared — including types nested inside an @graph.

It does not decide whether Google will award a rich result. That is Google's judgement, made by its own Rich Results Test and by policy that changes without notice. Valid markup is a requirement, not a promise, and any tool claiming otherwise is guessing.

Why markup fails to parse

Almost always because something rewrote it. A minifier that strips whitespace inside a JSON block, a plugin injecting a second block with a stray comma, or a template inserting an unescaped quote from a post title. The markup was correct when the plugin wrote it and broken by the time it reached the page — which is exactly why reading the served page beats reading the settings screen.

Types worth having, and types worth skipping

An ordinary article needs very little: Article or BlogPosting, BreadcrumbList, and the site-level WebSite and Organization nodes. FAQPage is worth adding only where a real question and answer exist on the page.

What does not help is stacking types onto a page that does not represent them. Marking a guide as a Product because product results look attractive is a manual-action risk, not a shortcut. The rule is simple: the markup describes what the page already is.

Where the markup comes from

On most WordPress sites it is generated by the SEO plugin, sometimes with a second helping from the theme. Two plugins each emitting their own Organization node is the usual cause of duplicate types in the list — see the best WordPress SEO plugins for how they overlap, and the SEO checklist for where structured data sits among things that matter more.