Sitemap and robots.txt
sitemap.xmlis generated with git-derived<lastmod>dates. Hidden andnoindexpages are excluded unlessseo.indexing: "all"is set indocs.json.robots.txtallows everything and points at the sitemap.- A repository
sitemap.xmlorrobots.txtreplaces the generated one.
Meta tags and canonical URLs
- Set site-wide tags with
seo.metatagsindocs.json; well-known keys (description,og:*,twitter:*,canonical) act as overrides rather than duplicates. - Override per page with frontmatter:
canonical,og:title,og:description,og:image. noindex: truefrontmatter emits a robotsnoindextag for a page.
Open Graph images
Every page gets a social card automatically:- A site-wide 1200×630 card is rendered at build time from your name, colors, and logo.
- Each page additionally gets its own card with the page title and description, rendered on demand and cached at the edge.
- A frontmatter
og:image(or a site-wideseo.metatags["og:image"]) overrides the generated cards. Per-page cards fall back to the site card when the title or description uses characters outside the Latin ranges.
.svg, .png, .jpg in the repository) appear on the cards; remote logo URLs are not fetched.
Structured data
Pages emit JSON-LD (WebSite, TechArticle/WebPage, BreadcrumbList). Add an Organization node with seo.organization in docs.json.
Last updated
metadata.timestamp: true in docs.json shows a git-derived “Last updated” date on every page; per-page timestamp frontmatter overrides it in either direction.
RSS
Changelog-style pages built from<Update> blocks can publish a feed: set rss: true in the page frontmatter and the feed appears at <page-url>/rss.xml. Date-like label values (2026-08-12, or March 5, 2026) become publish dates, and a per-entry rss={{ title, description }} prop overrides that feed item. There is no site-wide feed.