Repository navigation
The sitemap had not changed since the v1.7.1 deploy on 7 September. Six days
later the live file still listed 4 of 6 posts and 12 of 17 tags — the two
newest HazShield parts and five tag pages were absent, so search engines were
being told with complete confidence that pages which exist do not.
app/sitemap.js exported revalidate = 3600 and the build manifest recorded
it, but neither the hourly window nor an explicit revalidatePath("/sitemap.xml")
moved it; the revalidate endpoint returned revalidated: true while the file
stayed frozen. Next documents sitemap.js as "a special Route Handler that is
cached by default", and that default outranks the revalidate window.
The sitemap is now an ordinary Route Handler at app/sitemap.xml/route.js —
the shape blog/rss.xml/route.js has used all along, which stayed current
throughout the same period. The URL, robots.txt and lib/site.js are
unchanged; nothing else knows the difference.
Verified against a local production build: 36 URLs (was 29), all 6 posts, all
17 tags, valid XML with no duplicates, cached between requests, and the
lastmod moves when the admin's save pushes a revalidate — which is precisely
what the old file would not do.
Known issues
- Verified on
npm run start, not behind Vercel's CDN. This repository has
shown that difference to matter before. Confirm against the live file after
promoting. - A release is not live until it is promoted by hand in Vercel; pushes land as
Preview deployments. - Part 4 ("A window into the plant") still has no tags, so it contributes no
tag pages and no internal links.