Skip to content

fix(sitemap): don't drop lastmod for an epoch (0) timestamp#12212

Open
durvesh1992 wants to merge 1 commit into
facebook:mainfrom
durvesh1992:fix/sitemap-lastmod-epoch
Open

fix(sitemap): don't drop lastmod for an epoch (0) timestamp#12212
durvesh1992 wants to merge 1 commit into
facebook:mainfrom
durvesh1992:fix/sitemap-lastmod-epoch

Conversation

@durvesh1992

Copy link
Copy Markdown

Motivation

createSitemapItem decides a route's <lastmod> from route.metadata.lastUpdatedAt (a numeric timestamp, e.g. derived from front matter last_update: {date: ...}). Two checks use truthiness on that number:

// getRouteLastUpdatedAt
if (route.metadata?.lastUpdatedAt) { ... }            // 0 is falsy → skipped
// getRouteLastmod
return lastUpdatedAt ? formatLastmod(...) : null;      // 0 → null

So a legitimate timestamp of 0 (1970-01-01T00:00:00Z) is treated as "no value" and the <lastmod> is silently omitted. The adjacent === null early-return already shows the intent to distinguish absent from present — the truthiness checks defeat that for 0.

Fix

Use != null in both places so 0 is preserved (while still treating null/undefined as absent).

Test plan

pnpm vitest run packages/docusaurus-plugin-sitemap

Added a regression test (lastUpdatedAt: 0lastmod: '1970-01-01') that fails before this change and passes after. Full sitemap package: 53 tests pass.

getRouteLastUpdatedAt/getRouteLastmod used truthiness checks on the
numeric lastUpdatedAt, so a legitimate timestamp of 0 (1970-01-01, e.g.
from front matter last_update: {date: 1970-01-01}) was treated as 'no
value' and the <lastmod> entry was silently omitted. The adjacent
=== null guard already shows the intent to distinguish absent from
present. Use != null so 0 is preserved.

Adds a regression test (fails before / passes after).
@meta-cla meta-cla Bot added the CLA Signed Signed Facebook CLA label Jun 29, 2026
@netlify

netlify Bot commented Jun 29, 2026

Copy link
Copy Markdown

[V2]

Built without sensitive environment variables

Name Link
🔨 Latest commit 15ac020
🔍 Latest deploy log https://app.netlify.com/projects/docusaurus-2/deploys/6a42f75471e7ac000835085b
😎 Deploy Preview https://deploy-preview-12212--docusaurus-2.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed Signed Facebook CLA

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant