Structured data does not rank a page; it disqualifies confusion. One broken type or mismatched date and the page's meaning becomes whatever a machine guesses. Ten minutes per template with three tools keeps the markup honest.

The three-tool audit

  1. Parse: copy the <script type="application/ld+json"> block out of view-source into any JSON validator. One trailing comma kills the whole block, silently.
  2. Match: read the page as a stranger would and confirm every claim in the markup (date, author, headline, image) against the visible content.
  3. Validate: paste the URL into the Rich Results Test and note the enrichments it actually offers, not the full vocabulary it could theoretically parse.

The defects that keep coming up

  • datePublished disagrees with the visible date: one got edited, the other did not.
  • The image URL points at a staging domain, or an image entirely different from the cover the page shows.
  • Copy-pasted markup where every article claims to be every type of content.

This site's build JSON-parses its own structured data on every export (scripts/check-export.mjs) and fails the build on a parse break. A test the machine runs survives the author's boredom; one run by hand does not.