What does probeo check in structured data?

Probeo reads every JSON-LD block on a page and checks it in order: that it parses, that it declares schema.org, that it names a type, and that it carries the properties that type requires. A block that fails any of these is still in the page source. Search engines simply stop reading it, and nothing on the page looks broken.

What probeo checks

  • Add required propertyEach schema.org type requires specific properties. Missing required properties cause validation failures and stop the page from earning rich results in search.
  • ArraysJSON-LD must be structured as either a valid object or array at the root level. Incorrect structure prevents parsing and interpretation of structured data.
  • ContextThe @context property maps JSON-LD properties to a schema vocabulary. A missing or wrong @context stops search engines from interpreting your structured data.
  • Context validationWhen @context points anywhere but schema.org, search engines cannot read your structured data. For SEO, the vocabulary reference must resolve to schema.org.
  • Nested objectsErrors in nested JSON-LD objects affect how structured data is read. How to fix a nested object without breaking the schema of the parent object it belongs to.
  • Recommended propertyA JSON-LD object can be valid and still leave out what makes it useful, such as a product's offers or an article's image. How to add them.
  • Suspicious patternsThemes and plugins often generate JSON-LD with nonsensical type combinations. They pass validation, but earn no rich results and signal low-quality markup.
  • Syntax errorsJSON-LD blocks with syntax errors fail to parse, so search engines cannot read the structured data in them. How to find these errors, and how to fix each one.
  • TypeThe @type property says what kind of thing a JSON-LD block describes. A missing or wrong @type stops search engines from understanding what the markup means.
  • Value formatsA JSON-LD date written as "March 2, 2026", a relative image URL or a price of "$19.99" is present but unreadable. The formats that work.

How probeo checks it

Every <script type="application/ld+json"> block in the page’s HTML is checked. Where a block holds a @graph, each node in it is checked on its own and inherits the block’s @context.

  • Parsing. A block that is empty or isn’t valid JSON is an error. Nothing after this can be checked.
  • @context. A missing @context is an error. One that doesn’t reference schema.org is a warning.
  • @type. A missing @type is an error. A type that looks like a plugin’s or a theme’s own invention, or one probeo doesn’t recognize, is a warning.
  • Required properties. Each known type has properties it can’t do without. A missing one is an error.
  • Recommended properties. A missing recommended property is a warning.
  • Nested objects. Where a property expects a particular type, such as an Offer inside a Product, a different type is a warning. Each ListItem in a BreadcrumbList needs a name and an item.
  • Values. URL fields must hold URLs. Date fields must hold ISO 8601 dates, such as 2024-01-15.

A block with no errors is valid. Warnings are recorded but don’t make it invalid.

The types probeo knows

Article, BlogPosting, NewsArticle, Product, Offer, Organization, LocalBusiness, Store, PostalAddress, Person, WebSite, WebPage, AboutPage, ContactPage, FAQPage, Question, Answer, BreadcrumbList, ListItem, HowTo, HowToStep, Event, Review, AggregateRating, VideoObject, ImageObject, JobPosting, Recipe, SoftwareApplication, Course and Service.

A valid schema.org type outside this list is reported as unknown, as a warning, so it can be confirmed rather than assumed.

What this does not cover

Probeo checks JSON-LD only. Microdata and RDFa in the page’s markup aren’t read. It checks each block against schema.org’s structure, not against whether Google will show a rich result for it. Use Google’s Rich Results Test for that, on the pages probeo has already found to be valid.

Common questions

Why is a page with broken JSON-LD not visibly broken?

The browser doesn’t render JSON-LD, so a block that fails to parse changes nothing a visitor sees. Search engines skip the whole block, and the page loses what it was meant to say about itself.

Is a warning worth fixing?

Usually. A missing recommended property or an unrecognized type won’t invalidate the block, but it limits what a search engine can do with it. Errors come first.

How is this different from Google’s Rich Results Test?

The Rich Results Test checks one URL, on demand, against Google’s own eligibility rules. Probeo checks every page it manages, each time it rechecks them, against schema.org’s structure.

Which product this is part of

Structured data is part of Site Clarity.