Skip to content
WebsiteValidator
All posts
Structured Data· updated 22 July 20267 min read

Structured data that actually earns rich results

Valid JSON-LD is not the same as eligible JSON-LD. The gap is usually required properties, mismatched content, or markup describing something the page does not show.

By · Arcetis

Structured data is the rare SEO investment with a directly observable payoff: your result gets stars, or a price, or an FAQ dropdown, or it does not. That makes it unusually easy to get wrong quietly — the markup validates, the rich result never appears, and nothing tells you why.

Valid is not the same as eligible

A validator confirms your JSON-LD parses and matches the vocabulary. Eligibility for a rich result is a stricter, separate bar: every required property present, values in the expected format, and — the one most people miss — the marked-up content visible on the page to an ordinary visitor.

FAQ markup describing questions a user cannot see on the page is a documented manual-action risk. So is Review markup for reviews that appear nowhere. The rule is simple: markup describes the page, it does not augment it.

Parse and expand, do not string-match

Plenty of tools check for structured data by searching the HTML for a type name. That misses anything using an aliased term or a custom vocabulary prefix, and it produces false positives on any page that happens to mention the word. Expanding the JSON-LD against its @context resolves every term to a fully-qualified IRI first:

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Acme",
  "url": "https://acme.example/",
  "logo": "https://acme.example/logo.png",
  "sameAs": [
    "https://www.linkedin.com/company/acme",
    "https://x.com/acme"
  ]
}

sameAs is doing more work than it looks like

sameAs is how a search engine reconciles your brand with its profiles elsewhere into a single entity. Getting it wrong is worse than omitting it — pointing at the wrong profile actively confuses entity resolution.

A practical order of work

  1. 1Organization and WebSite on every page. These establish the entity behind the site and cost nothing to maintain.
  2. 2BreadcrumbList, which replaces the bare URL in results with a readable hierarchy path.
  3. 3The one type that matches what the page actually is — Article, Product, LocalBusiness, Event. One accurate type beats five speculative ones.
  4. 4Only then the optional enrichments: aggregateRating, offers, speakable.

Our Structured Data checker expands your JSON-LD to real schema.org IRIs and reports which entity types and properties are present — as detection rather than as failures, because a page is not defective for lacking markup that does not describe it.

Audit your site in 40 seconds

986 deterministic rules across eleven modules. Every finding comes with evidence, a citation and a fix preview.

Run a free scan

No signup. No credit card. Nothing stored but the result.