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
- 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.
- Match: read the page as a stranger would and confirm every claim in the markup (date, author, headline, image) against the visible content.
- 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.
