Skip to content

Structured data

Wygard records the structured-data types a page exposes — across JSON-LD, Microdata, and RDFa — and alerts you when that set changes.

Scope Tier Default Alert
Per URL Basic Off — opt-in per URL 🟠 Heads-up

Why it matters

Structured data (schema.org markup) is what earns your rich results — recipe cards, breadcrumb trails, product prices, review stars, FAQ accordions. None of it shows up in the rendered page, so when a template refactor, a plugin update, or a CMS migration drops a Recipe block or breaks the JSON-LD, the page still looks perfect to a human visitor while the rich result quietly disappears from the SERP.

The default severity is Heads-up because losing markup is worth a review but rarely an instant traffic cliff. The test is off by default — turn it on for the URLs whose rich results actually matter to you.

What Wygard checks

On every run, the crawler:

  1. Fetches the monitored URL.
  2. Scans the source for structured data in all three markup formats: JSON-LD (<script type="application/ld+json">), Microdata (itemscope / itemtype), and RDFa (vocab / typeof).
  3. Records the schema type and the format it was found in — e.g. Recipe in JSON-LD, BreadcrumbList in Microdata.
  4. Compares the set of types found against the stored desired value.
<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "Recipe", ... }
</script>

The first crawl reads every type on the page and stores it as the baseline:

Type Format Status
BreadcrumbList JSON-LD ok
Organization JSON-LD ok
Recipe Microdata ok

If a URL has no structured data at all, the test is set to does not exist — so you're alerted if markup later appears unexpectedly.

Match methods

Structured data supports several match methods — is exactly, is not exactly, containing, not containing, exist, and does not exist. Use is exactly to lock the full set of types, or containing to simply assert that one specific type (say, Product) is always present.

Common alerts

  • Structured-data type missing — a type that was in the baseline (e.g. Recipe) is no longer found in any format.
  • Structured data no longer matches the rule — the types found on the page don't match what you defined.
  • New type appeared — markup was added that isn't part of the baseline (worth a look when you didn't deploy it on purpose).

Responding to an alert

  1. Open the alert and review the diff — Wygard shows the baseline set of types versus what it found this run.
  2. Decide whether the change was intended (you added or removed a schema block on purpose) or accidental (a template regression, a plugin that stopped rendering the markup).
  3. If intended, click Set found value as desired to adopt the new set as the baseline.
  4. If accidental, fix the source — restore the markup or roll back the change — and the next crawl turns the test green.

Pair it with Meta robots

Structured data only earns rich results on pages Google can actually index. The Meta robots test catches the other half of the equation — a stray noindex that would strip a page from search no matter how clean its markup is.