Skip to content

SitemapNode

One URL-worthy published node. Membership is decided server-side: presentation nodes with a real published path only, so redirects, payload-less structural nodes, and unpublished nodes never appear here at all.

optional lastmod?: string | null

When this page’s content last actually changed, ISO-8601 UTC — the <lastmod> source.

Not a publish timestamp: a republish that changes nothing leaves it alone, which is what makes it safe to advertise. It is the later of the page’s own change date and that of the Component bound directly to it; a Component nested one level deeper does not move it, so the value can be older than the truth but never newer. null when no change date is known (content last published by an older server) — emit no <lastmod> at all rather than inventing one.


localeSlots: SitemapLocalePath[]

The path this node materializes in each non-default locale slot the site has — including slots where that path is identical to path, which is the common case for a page under no localized ancestor.

This says nothing about translation. A slot appears because the site materializes it, and a path differs from the default one because this node or an ancestor carries a localized slug — neither of which means the page’s content has been translated. Nothing in Content records that, so no endpoint can report it. hreflang annotates which URLs exist; whether to advertise them is the consumer’s decision, expressed by passing localeUrl to buildSitemapXml or not.


nodeId: string


path: string

Site-relative, in the default locale slot — and in the site’s URL space, so prefixed under a pathPrefix site with prefixDefaultLocale. Never null — a node with no default path is omitted rather than listed.


optional url?: string

The absolute address of the default-locale version, present under a localeHost site. buildSitemapXml prefers it over origin + path whenever it is present — one origin cannot express a site whose locales live on different hosts.