Repository navigation
feat(seo): a sitemap index with named, paginated sections; lastmod and locales per prerendered page - #765
Conversation
…ation; prerender() says a page's lastmod and the locales it is listed in
seo.sitemap.sections + pageSize make /sitemap.xml a <sitemapindex> of
/sitemaps/<name>-<n>.xml (unmatched pages under `pages`), served by the web
role and written by the static export from the one answer; with no sections
the output is byte-identical (hash pinned in sitemap-sections.test.ts).
prerender() may answer { params, lastmod?, locales? } beside a string or a
params object: lastmod is the page's <lastmod> (W3C Datetime, UTC; no zone is
X_SITEMAP_ENTRY_INVALID, the future is clamped to now), locales lists and
cross-links the page in those locales only. The build still renders every
routed locale.
Fixed on the way: a page whose meta is noindex in one locale was listed and
hreflang-linked in it (meta is now read per routed locale); a URL
seo.robots.disallow blocks was listed; a sitemap file past 50 MB was not split.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Warning Review limit reachedThe included review limit has been reached and this organization has disabled usage-based review continuation. Wait for reviews to reset or ask a billing admin to change After included review limits.
Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing. Next included review available in 32 minutes. View limit details
Comment |
An app with a database-driven blog, landing pages and two locales had one flat
<urlset>, no<lastmod>on any dynamic page, and English entries for pages that are indexable only in the default locale.seo.sitemap.sections: [{ name, match }]andpageSizeturn/sitemap.xmlinto an index of/sitemaps/<name>-<n>.xml; unmatched routes go topages. With no sections the output is byte-identical to 27.8.1 (pinned by sha256).prerender()may return{ params, lastmod, locales }beside plain params.lastmodis written as a W3C datetime (a future date is clamped to now; a time without a zone isX_SITEMAP_ENTRY_INVALID);localeslists and hreflang-links the page only where it is indexable.seo.robots.disallowwere listed; only the 50,000-URL cap was enforced, not 50 MB.Docs: wiki SEO, Configuration, Routes-And-Render-Modes (a false claim about
updatedAtcorrected), Error-Codes.🤖 Generated with Claude Code