Editorial metadata
Author, dates and provenance behind the content.
Why an agent cares
Provenance is what lets an agent decide whether to trust and cite a page, and JSON-LD is the only unambiguous place to state it. This is Lumar's editorial-trust profile, not Google rich-result validity: Google states Article has no required properties.
Adoption
Web baseline. Standard equipment on the web. Its absence is the exception rather than its presence. For this one in particular, the JSON-LD syntax is everywhere; the article types that carry provenance are niche.
Direction of travel: ► flat, as at .
JSON-LD is on 41% of pages but Article-type markup on roughly 0.18% (Web Almanac 2024), and no vendor has confirmed that author markup feeds AI citations.
What we check
editorialMetadataPresent is true, so a site that has not adopted this is not assessed on it and appears in no report. 4 of these 4 can fail it. In a Lumar crawl these land on the page's own row.| Check | Severity | Raises | On whose authority |
|---|---|---|---|
editorialMissingAuthor | medium | usability | Lumar readiness profile |
editorialMissingPublisher | medium | usability | Lumar readiness profile |
editorialMissingDatePublished | medium | usability | Lumar readiness profile |
editorialInvalidDate | medium | usability | Schema.org profile |
Examples
Both of these are fixtures the test suite runs through the real collector, not snippets written for a document: the first is a shape we score as valid, the second is one we flag.
<!-- editorialMetadataPresent + correct: a NewsArticle in an @graph whose author and publisher are
@id references into the graph (Yoast style) — the extractor resolves them to the Person /
Organization nodes (each with a name), and both dates are valid ISO 8601. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{ "@type": "WebPage", "@id": "https://example.com/trust/correct.html#webpage", "url": "https://example.com/trust/correct.html" },
{
"@type": "NewsArticle",
"@id": "https://example.com/trust/correct.html#article",
"headline": "How agent-readiness works",
"author": { "@id": "https://example.com/#/schema/person/ada" },
"publisher": { "@id": "https://example.com/#organization" },
"datePublished": "2026-06-01T09:00:00Z",
"dateModified": "2026-06-15T12:00:00Z"
},
{ "@type": "Person", "@id": "https://example.com/#/schema/person/ada", "name": "Ada Lovelace", "url": "https://example.com/authors/ada" },
{
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Example",
"logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" }
}
]
}
</script><!-- editorialMetadataPresent: yes (a NewsArticle is declared).
editorialMissingAuthor + editorialMissingPublisher: the Article names neither.
editorialInvalidDate: datePublished is present but not ISO 8601 ("yesterday"). -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "How agent-readiness works",
"datePublished": "yesterday"
}
</script>Specifications
| Document | Revision | Kind |
|---|---|---|
| Schema.org author | v30.0 | specification |
| Google Search: Article structured data (states no required properties) | living | vendor profile |
Last re-read against the published documents: .