Skip to content

Structured data

What Reed derives per page, and what you supply yourself.

Two independent mechanisms put schema.org JSON-LD on your pages.

json
{
"jsonLd": [
{ "@context": "https://schema.org", "@type": "Organization", "name": "Acme" }
]
}

An array of JSON objects, copied verbatim onto every page. Reed does not validate the shape beyond it being JSON — this is your data, passed through.

Site-level only. There is no per-page frontmatter equivalent.

structuredDatabooleandefault: true

Site-wide switch for automatic per-page emission.

When on, each page gets an article object plus a BreadcrumbList. The article type is decided by three rules, in order:

  1. Generated API pages get no article

    An endpoint page is a reference surface, not an article, so none is emitted.

  2. type: changelog gets Article

    A page whose frontmatter sets type: changelog is emitted as Article, with datePublished derived from its most recent dated section.

  3. Everything else gets TechArticle

    The default for documentation pages.

title and description come from the page’s frontmatter, which is one more reason to write a description on every page.

The BreadcrumbList is always exactly the page’s own single ListItem — it is not a navigation trail reconstructed from your tab and group structure.

Turning structuredData off does not remove your jsonLd; they are separate outputs from separate inputs. A site can have both, either, or neither.

Turn the derived emission off when you want to control the article markup yourself — for example when your pages are already described by a richer object you supply through jsonLd. Two competing article objects on one page is worse than either alone.

Structured data is emitted into the built HTML, so grep the output rather than guessing:

sh
grep -o '"@type":"[^"]*"' dist/index.html | sort -u

Whether a search engine acts on it is a separate question from whether it is present, and only the second one is Reed’s to answer.