Skip to content

docs: document sitemap timestamps for SEO metadata page#4608

Open
devin-ai-integration[bot] wants to merge 6 commits intomainfrom
devin/1774647679-document-sitemap-lastmod
Open

docs: document sitemap timestamps for SEO metadata page#4608
devin-ai-integration[bot] wants to merge 6 commits intomainfrom
devin/1774647679-document-sitemap-lastmod

Conversation

@devin-ai-integration
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration bot commented Mar 27, 2026

Summary

Documents the new sitemap timestamp feature (from fern-platform#8571) on the SEO metadata page.

Changes:

  • Adds a new Sitemap section to metadata.mdx explaining that Fern automatically includes content-change timestamps in sitemap.xml, following Google's sitemap best practices. No configuration required.
  • Clarifies how sitemap timestamps differ from the last-updated frontmatter field (invisible SEO signal vs. visible page footer date).
  • Adds <llms-only> implementation details covering the two-table design, SHA-256 content hashing, normalization logic, and how the sitemap route consumes slug data — written without internal function/class names.
  • Adds a changelog entry for 2026-03-27.
  • Updates the page's frontmatter description to mention sitemap timestamps.

Updates since last revision

  • Referenced Google's sitemap best practices as the motivation for timestamps.
  • Removed explicit <lastmod> mentions from user-facing content; describes the sitemap approach in general terms.
  • Cleaned up <llms-only> implementation details to remove internal function names — now explains the mechanics without referencing specific code identifiers.
  • Added a paragraph distinguishing sitemap timestamps from the last-updated frontmatter field, with a link to the page-level settings docs.

Review & Testing Checklist for Human

  • Verify the last-updated link resolves correctly — this is a new cross-page link and the anchor must exist on the target page
  • Confirm the distinction between sitemap timestamps (automatic, invisible, for search engines) and last-updated (manual frontmatter, visible footer) is accurate
  • Verify the #sitemap anchor link in the changelog "Read the docs" button resolves correctly on the preview
  • Check that the <llms-only> block is hidden from human readers on the rendered page but present in .md / llms.txt output

Test plan: Open the SEO metadata preview page and verify the Sitemap section renders correctly at the bottom, including the last-updated link. Then check the changelog preview and click the "Read the docs" button to confirm it navigates to the #sitemap anchor. Optionally, append .md to the metadata page URL to confirm the <llms-only> content appears in the Markdown output.

Notes

  • Vale passes clean on all new content. Pre-existing Vale issues on the page (lines 84, 96, 100) were not touched.

Link to Devin session: https://app.devin.ai/sessions/cde478bf74b4497baeeb0172498bc392

Co-Authored-By: bot_apk <apk@cognition.ai>
@devin-ai-integration devin-ai-integration bot requested a review from devalog as a code owner March 27, 2026 21:43
@devin-ai-integration
Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@fern-api
Copy link
Copy Markdown
Contributor

fern-api bot commented Mar 27, 2026

Requested by: devin
Slack thread: View conversation

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 27, 2026

…, clean up implementation details

Co-Authored-By: bot_apk <apk@cognition.ai>
@devin-ai-integration devin-ai-integration bot changed the title docs: document sitemap lastmod timestamps docs: document sitemap timestamps for SEO metadata page Mar 27, 2026

On each publish, the system:
1. Resolves each page to its URL slug from the navigation tree.
2. Computes a SHA-256 hash of each page's normalized markdown content.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[FernStyles.Acronyms] 'SHA' has no definition.


Normalization strips whitespace, copyright symbols, and capitalization before hashing to avoid false-positive change detection from trivial formatting differences.

The sitemap route fetches stored slug data, builds a URL-to-timestamp lookup, and adds the timestamp to each sitemap XML entry. If no data exists for a domain yet, the sitemap omits timestamps gracefully rather than failing.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[FernStyles.Adverbs] Remove 'gracefully' if it's not important to the meaning of the statement.

The sitemap route fetches stored slug data, builds a URL-to-timestamp lookup, and adds the timestamp to each sitemap XML entry. If no data exists for a domain yet, the sitemap omits timestamps gracefully rather than failing.
</llms-only>

## Customize your SEO
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[FernStyles.Headings] 'Customize your SEO' should use sentence-style capitalization.


## Sitemap timestamps

Your sitemap entries now include a `<lastmod>` timestamp that's invisible to readers and used exclusively by search engines to prioritize crawling recently updated pages. Timestamps update only when a page's content actually changes — trivial formatting differences like whitespace or capitalization are ignored. This follows [Google's sitemap best practices](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[FernStyles.Current] Avoid time-relative terms like 'now' that become outdated

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant