Scorecard version released 2026-04-06

← Scorecard v0.2.0

JSON-LD declares dateModified

dateModified lets agents tell when content has actually changed, which is what makes incremental re-ingestion possible. Without it, every refresh of an agent's index has to treat the page as new.

page Structured data impl 1.0.0 html.json-ld.date-modified

How the check decides

The check parses every JSON-LD block on the page, walks every node (including arrays and @graph children), and looks for a dateModified field whose value parses as a schema.org Date (YYYY-MM-DD) or DateTime (date + time + timezone designator). The timezone designator may use either the extended form (+00:00) or the basic form (+0000); both are valid ISO 8601. Returns N/A if no JSON-LD exists. Fails if JSON-LD exists but no node declares dateModified, or if every value present is not a valid date string. Calendar-impossible values like 2026-02-30 are rejected.

How to implement it

Include dateModified in your top-level JSON-LD object, populated from the source file’s last-modified time or your CMS, formatted as ISO 8601 (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).

Pass

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "dateModified": "2026-04-01T12:34:56Z"
}
</script>

Fail

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "TechArticle"
}
</script>
<!-- present but unparseable -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "dateModified": "yesterday"
}
</script>