{"id":"src__drLiOlZu6XUDKwzYfjRn","slug":"fern-changelog","name":"Changelog","type":"feed","url":"https://buildwithfern.com/learn/docs/changelog","orgId":"org_VEhfomv6IeidtdLNDn_EM","productId":null,"productSlug":null,"org":{"id":"org_VEhfomv6IeidtdLNDn_EM","slug":"fern","name":"Fern"},"isPrimary":true,"isHidden":false,"discovery":"curated","metadata":"{\"feedUrl\":\"https://buildwithfern.com/learn/docs/changelog.rss\",\"feedType\":\"unknown\",\"feedDiscoveredAt\":\"2026-06-04T12:58:21.950Z\",\"noFeedFound\":false}","notice":null,"kind":null,"stars":null,"starsFetchedAt":null,"releaseCount":89,"releasesLast30Days":3,"avgReleasesPerWeek":1.9,"latestVersion":null,"latestDate":"2026-05-28T00:00:00.000Z","changelogUrl":null,"hasChangelogFile":false,"lastFetchedAt":"2026-06-04T13:44:22.426Z","lastPolledAt":"2026-06-04T13:05:46.314Z","trackingSince":"2024-01-24T00:00:00.000Z","releases":[{"id":"rel_9yN4MLIUw0jSV5MHrdu2j","version":null,"type":"feature","title":"May 28, 2026","summary":"## Scope search by product or version\n\nYou can now control how search results are ranked and filtered for sites with multiple products or versions usi...","titleGenerated":null,"titleShort":null,"content":"## Scope search by product or version\n\nYou can now control how search results are ranked and filtered for sites with multiple products or versions using the new `settings.search` object in `docs.yml`.\n\n- `prioritize-current-product` boosts results from the current product higher in the ranking without hiding other products.\n- `default-filter-by-current-product` auto-selects the current product as a facet filter so only current-product results appear by default.\n\nThese options can be used independently or together.","publishedAt":"2026-05-28T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.367Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/5/28","media":[],"coverageCount":0},{"id":"rel_7Fd7OcI-6eBiBV9-TohWt","version":null,"type":"feature","title":"May 19, 2026","summary":"## Markdown rendering for API components\n\nInteractive API components now render as fenced code blocks and structured content in your site's Markdown o...","titleGenerated":null,"titleShort":null,"content":"## Markdown rendering for API components\n\nInteractive API components now render as fenced code blocks and structured content in your site's Markdown output. AI agents consuming your docs via `.md` URLs, `llms.txt`, or `llms-full.txt` receive the full request and response examples without parsing HTML, reducing content disparity between the rendered page and its Markdown representation.\n\nThis applies to the following components:\n\n- [`<EndpointRequestSnippet>`](/learn/docs/writing-content/components/request-snippet)\n- [`<EndpointResponseSnippet>`](/learn/docs/writing-content/components/response-snippet)\n- [`<EndpointSchemaSnippet>`](/learn/docs/writing-content/components/endpoint-schema-snippet)\n- [`<RunnableEndpoint>`](/learn/docs/writing-content/components/runnable-endpoint)\n- [`<WebhookPayloadSnippet>`](/learn/docs/writing-content/components/webhook-payload-snippet)\n- [`<Schema>`](/learn/docs/writing-content/components/schema)\n- [`<SchemaSnippet>`](/learn/docs/writing-content/components/schema-snippet)","publishedAt":"2026-05-19T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.367Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/5/19","media":[],"coverageCount":0},{"id":"rel_2NwW4TzCYaTuyFRrFNXTd","version":null,"type":"feature","title":"May 14, 2026","summary":"## CLI link checker\n\nYou can now check for broken links on your live documentation site directly from the Fern CLI with `fern docs link check`. The co...","titleGenerated":null,"titleShort":null,"content":"## CLI link checker\n\nYou can now check for broken links on your live documentation site directly from the Fern CLI with `fern docs link check`. The command scrapes every page on your published site, checks all internal and external links, and reports broken (404) and blocked (403) URLs along with the source pages where they appear.\n\n```bash\nfern docs link check --url https://buildwithfern.com/learn\nfern docs link check --url https://elevenlabs.io/docs\n```\n\nThis complements the existing [`broken-links` rule](/learn/docs/configuration/site-level-settings#check-configuration) in `fern check`, which validates internal links against your local YAML navigation tree. Use `fern docs link check` after publishing to catch live 404s and broken external URLs that local validation can't detect.","publishedAt":"2026-05-14T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.367Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/5/14","media":[],"coverageCount":0},{"id":"rel_L-god97dA0XrxVU7qnRe6","version":null,"type":"feature","title":"May 4, 2026","summary":"## Custom robots.txt\n\nYou can now serve your own [`robots.txt`](/learn/docs/seo/robots-txt) at the root of your documentation site by pointing `agents...","titleGenerated":null,"titleShort":null,"content":"## Custom robots.txt\n\nYou can now serve your own [`robots.txt`](/learn/docs/seo/robots-txt) at the root of your documentation site by pointing `agents.robots-txt` at a file in your repo. Use this to opt in or out of specific AI crawlers like `GPTBot` or `ClaudeBot`, gate sensitive sections from indexing, or signal training and search preferences with the [Cloudflare Content Signals Policy](https://blog.cloudflare.com/content-signals-policy/). Your file is served verbatim at `/robots.txt`, and Fern appends a managed block disallowing internal API routes after your content.\n\n```yaml\nagents:\n  robots-txt: ./robots.txt\n```\n\n## Multi-source docs\n\nMulti-source docs lets each team publish independently to a shared custom domain — for example, [docs.nvidia.com](https://docs.nvidia.com) spans sub-paths like `/nvcf`, `/brev`, and `/aiperf`, each owned by a different product team and repository.\n\nSet `multi-source: true` on the instance and reference a [global theme](/learn/docs/customization/global-themes) for consistent branding across repositories.\n\n```yaml\nglobal-theme: my-org-theme\n\ninstances:\n  - url: example.docs.buildwithfern.com/product-a\n    custom-domain: docs.example.com/product-a\n    multi-source: true\n```","publishedAt":"2026-05-04T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.755Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/5/4","media":[],"coverageCount":0},{"id":"rel_ZlquJWxuCwkrZGTIdtMXz","version":null,"type":"feature","title":"May 1, 2026","summary":"## API catalog discovery\n\nAI agents, MCP clients, and API catalog crawlers can now discover your APIs automatically. Every Fern Docs site exposes a st...","titleGenerated":null,"titleShort":null,"content":"## API catalog discovery\n\nAI agents, MCP clients, and API catalog crawlers can now discover your APIs automatically. Every Fern Docs site exposes a standards-based ([RFC 9727](https://www.rfc-editor.org/rfc/rfc9727)) `/.well-known/api-catalog` endpoint generated from your visible API Reference navigation.\n\n## Custom URL actions on the Prompt component\n\nYou can now point `<Prompt>` actions at any AI tool, not just Cursor, Claude, and ChatGPT. Send readers to Perplexity, your own internal AI assistant, or any other URL.\n\n```jsx\n<Prompt\n  title=\"Generate a TypeScript SDK\"\n  actions={[\n    { label: \"Open in Perplexity\", url: \"https://www.perplexity.ai/search?q={prompt}\", icon: \"magnifying-glass\" },\n    \"cursor\"\n  ]}\n>\nGenerate a TypeScript SDK from my OpenAPI spec. Follow the [TypeScript SDK quickstart](https://buildwithfern.com/learn/sdks/generators/typescript/quickstart.md).\n</Prompt>\n```","publishedAt":"2026-05-01T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.778Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/5/1","media":[],"coverageCount":0},{"id":"rel_jTi2lxRiu8Hz4q8yKcYuK","version":null,"type":"feature","title":"April 29, 2026","summary":"## Redesigned dynamic OG images\n\nDynamic OG images have a new layout with fine-grained control over the logo variant, text and background colors, and ...","titleGenerated":null,"titleShort":null,"content":"## Redesigned dynamic OG images\n\nDynamic OG images have a new layout with fine-grained control over the logo variant, text and background colors, and which elements appear (section, description, URL, gradient).\n\n```yaml\nmetadata:\n  og:dynamic: true\n  og:dynamic:background-image: ./images/og-background.png\n  og:dynamic:text-color: \"#1a1a1a\"\n  og:dynamic:background-color: \"#ffffff\"\n  og:dynamic:logo-color: dark\n  og:dynamic:show-logo: true\n  og:dynamic:show-section: true\n  og:dynamic:show-description: true\n  og:dynamic:show-url: true\n  og:dynamic:show-gradient: true\n```","publishedAt":"2026-04-29T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.367Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/29","media":[],"coverageCount":0},{"id":"rel_8A4EmRNNmkUpyedprx9jK","version":null,"type":"feature","title":"April 27, 2026","summary":"## Prompt component\n\nThe `<Prompt>` component displays an AI prompt card with a title, icon, copy button, and optional \"Open in\" action buttons. Add i...","titleGenerated":null,"titleShort":null,"content":"## Prompt component\n\nThe `<Prompt>` component displays an AI prompt card with a title, icon, copy button, and optional \"Open in\" action buttons. Add it to any page so readers can copy instructions or open them directly in Cursor, Claude, or ChatGPT.\n\nUse it in tutorials, quickstarts, migration guides, or any page where you want readers to hand off a task to an AI assistant — for example, scaffolding a project, generating an SDK, or applying a code change.\n\n```jsx\n<Prompt\n  title=\"Create a docs site\"\n  icon=\"rocket\"\n  actions={[\"cursor\", \"claude\", \"chatgpt\"]}\n>\nYou are a **docs setup assistant**. Help the user create and publish a new docs site.\n\nFollow the [Quickstart guide](https://buildwithfern.com/learn/docs/getting-started/quickstart) step by step.\n</Prompt>\n```\n\n## Global themes\n\nDefine your documentation branding in a single control repository and share it across multiple sites. Use the `fern docs theme` CLI commands to export, upload, and manage themes, then reference a theme by name in any child repository's `docs.yml` with the `global-theme` property.","publishedAt":"2026-04-27T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.778Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/27","media":[],"coverageCount":0},{"id":"rel__lzwjt0Sr4s9qlC7XJSOh","version":null,"type":"feature","title":"April 24, 2026","summary":"## \"Connect to Claude Code\" page action\n\nFern Docs sites with [Ask Fern](/learn/docs/ai-features/ask-fern/overview) enabled now display a \"Connect to ...","titleGenerated":null,"titleShort":null,"content":"## \"Connect to Claude Code\" page action\n\nFern Docs sites with [Ask Fern](/learn/docs/ai-features/ask-fern/overview) enabled now display a \"Connect to Claude Code\" button alongside existing page actions. Clicking the button copies a `claude mcp add` command. Readers can paste it into their terminal to register your site's [MCP server](/learn/docs/ai-features/mcp-server) with Claude Code.\n\nThe action is enabled by default and can be toggled off with `page-actions.options.claude-code: false` in `docs.yml`.","publishedAt":"2026-04-24T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.367Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/24","media":[],"coverageCount":0},{"id":"rel_8IYLnvJWvafHmjaACd7aa","version":null,"type":"feature","title":"April 23, 2026","summary":"## Clean up GitHub Actions preview deployments on merge\n\nThe [GitHub Actions preview workflow](/learn/docs/preview-publish/preview-changes#automate-wi...","titleGenerated":null,"titleShort":null,"content":"## Clean up GitHub Actions preview deployments on merge\n\nThe [GitHub Actions preview workflow](/learn/docs/preview-publish/preview-changes#automate-with-github-actions) now has an optional companion `cleanup-preview.yml` workflow that deletes a pull request's preview deployment once the PR merges, so stale previews don't linger.\n\nTo adopt this workflow, add `.github/workflows/cleanup-preview.yml` alongside your existing preview workflow.","publishedAt":"2026-04-23T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.494Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/23","media":[],"coverageCount":0},{"id":"rel_gzOdRSI16BCcs6gAkIas6","version":null,"type":"feature","title":"April 22, 2026","summary":"## Clean up GitLab preview deployments on merge\n\nThe updated [GitLab CI/CD pipeline](/learn/docs/developer-tools/git-lab#add-the-cicd-pipeline) now in...","titleGenerated":null,"titleShort":null,"content":"## Clean up GitLab preview deployments on merge\n\nThe updated [GitLab CI/CD pipeline](/learn/docs/developer-tools/git-lab#add-the-cicd-pipeline) now includes a `cleanup_preview` stage that deletes a merge request's preview deployment once the MR merges into the default branch, so stale previews don't linger.\n\nTo adopt this workflow, replace your `.gitlab-ci.yml` file with the updated version.","publishedAt":"2026-04-22T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.494Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/22","media":[],"coverageCount":0},{"id":"rel_7wG-P0TCyg8_FTMTEUh6t","version":null,"type":"feature","title":"April 21, 2026","summary":"## Target the logo from custom scripts\n\n`<Fern.Logo />` now renders with a `data-fern-logo` attribute so custom scripts can target the logo with `docu...","titleGenerated":null,"titleShort":null,"content":"## Target the logo from custom scripts\n\n`<Fern.Logo />` now renders with a `data-fern-logo` attribute so custom scripts can target the logo with `document.querySelector('#fern-header [data-fern-logo]')`. Use this to rewrite the logo's `href` on certain pages or modify other behavior.","publishedAt":"2026-04-21T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.494Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/21","media":[],"coverageCount":0},{"id":"rel_tLihjZFTOS2o-DU_SfUdo","version":null,"type":"feature","title":"April 20, 2026","summary":"## Mobile table of contents bar\n\nPages using the [`guide` and `overview` layouts](/learn/docs/configuration/page-level-settings#layout) can now displa...","titleGenerated":null,"titleShort":null,"content":"## Mobile table of contents bar\n\nPages using the [`guide` and `overview` layouts](/learn/docs/configuration/page-level-settings#layout) can now display a sticky table of contents bar below the header on mobile and tablet viewports. The bar shows a scroll progress indicator and the current heading, and expands to the full table of contents when tapped.\n\nEnable it by adding `mobile-toc: true` under `layout` in `docs.yml`:\n\n```yaml\nlayout:\n  mobile-toc: true\n```","publishedAt":"2026-04-20T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.494Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/20","media":[],"coverageCount":0},{"id":"rel_yv0AhuQI-5DVI9koin7Y4","version":null,"type":"feature","title":"April 14, 2026","summary":"## AI search model update\n\nAsk Fern now uses [Claude 4.6 Sonnet](https://www.anthropic.com/news/claude-sonnet-4-6) and [Claude 4.5 Haiku](https://www....","titleGenerated":null,"titleShort":null,"content":"## AI search model update\n\nAsk Fern now uses [Claude 4.6 Sonnet](https://www.anthropic.com/news/claude-sonnet-4-6) and [Claude 4.5 Haiku](https://www.anthropic.com/news/claude-haiku-4-5).\n\n## Link to API Reference sections with `api:` syntax\n\nThe `api:` link syntax now supports linking to the root of an API Reference section. Use `api:apiName` to create a link that resolves to the landing page of a specific API Reference at build time. This is useful when your project has multiple APIs.\n\n```mdx\nExplore the [Plant Store API](api:plant-store) reference.\n```","publishedAt":"2026-04-14T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.494Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/14","media":[],"coverageCount":0},{"id":"rel_pzwFz5lyzvuas0q3b_vAz","version":null,"type":"feature","title":"April 11, 2026","summary":"## AsyncAPI spec endpoints\n\nFern docs sites serve your raw AsyncAPI 2.6.0 specification at `/asyncapi.json` and `/asyncapi.yaml` for sites with WebSoc...","titleGenerated":null,"titleShort":null,"content":"## AsyncAPI spec endpoints\n\nFern docs sites serve your raw AsyncAPI 2.6.0 specification at `/asyncapi.json` and `/asyncapi.yaml` for sites with WebSocket channels. Download it for client generation, contract testing, or importing into AsyncAPI-compatible tools. The spec is also linked from your site's `llms.txt`, so AI coding assistants can discover and use it automatically.","publishedAt":"2026-04-11T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.514Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/11","media":[],"coverageCount":0},{"id":"rel_o3SyvwUjStkIIH3YYSSIT","version":null,"type":"feature","title":"April 10, 2026","summary":"## Custom `llms.txt` and `llms-full.txt` files\n\nProvide your own `llms.txt` and `llms-full.txt` files instead of using the auto-generated versions. Ad...","titleGenerated":null,"titleShort":null,"content":"## Custom `llms.txt` and `llms-full.txt` files\n\nProvide your own `llms.txt` and `llms-full.txt` files instead of using the auto-generated versions. Add paths to your files under the `agents` key in `docs.yml`:\n\n```yaml\nagents:\n  llms-txt: ./path/to/llms.txt\n  llms-full-txt: ./path/to/llms-full.txt\n```\n\nCustom files are served at the root-level `/llms.txt` and `/llms-full.txt` endpoints. Nested paths continue to use auto-generated output.\n\nRequires Fern CLI version `4.67.0` or later.","publishedAt":"2026-04-10T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.514Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/10","media":[],"coverageCount":0},{"id":"rel_0hssRCud93TpICRur_Z9o","version":null,"type":"feature","title":"April 9, 2026","summary":"## Default per-page directive for AI agents\n\nEvery page served to AI agents now includes a default directive that tells agents how to navigate your do...","titleGenerated":null,"titleShort":null,"content":"## Default per-page directive for AI agents\n\nEvery page served to AI agents now includes a default directive that tells agents how to navigate your documentation programmatically — pointing them to `.md` URLs, `llms.txt`, and `llms-full.txt`. The directive is automatically generated using your site's domain and basepath, so no configuration is needed.\n\n```text\nFor clean Markdown of any page, append .md to the page URL. For a complete documentation index, see https://docs.example.com/llms.txt. For full documentation content, see https://docs.example.com/llms-full.txt.\n```\n\nYou can still override the default with a custom directive or disable it entirely.\n\n## Standalone search widget\n\nEmbed Ask Fern's AI-powered search on any React site using the [`@fern-api/search-widget`](https://www.npmjs.com/package/@fern-api/search-widget) package. The widget renders a button that opens a search modal connected to your documentation content. It requires React 19; all other dependencies are bundled.","publishedAt":"2026-04-09T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.778Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/9","media":[],"coverageCount":0},{"id":"rel_iliDQStcrfXYcDzzMVdzG","version":null,"type":"feature","title":"April 2, 2026","summary":"## Per-page directives in llms.txt\n\nYou can add a directive that's automatically prepended to every page when it's served to AI agents — both individu...","titleGenerated":null,"titleShort":null,"content":"## Per-page directives in llms.txt\n\nYou can add a directive that's automatically prepended to every page when it's served to AI agents — both individual Markdown page URLs and each page section within `llms-full.txt`. The directive is only visible to agents requesting Markdown; human-facing documentation is unaffected.\n\n```yaml\nagents:\n  page-directive: \"For a complete page index, fetch https://docs.example.com/llms.txt\"\n```\n\n## Missing redirects check rule\n\nThe `missing-redirects` rule for `fern check` detects pages that were removed or moved without a redirect. It compares your current docs navigation against the previously published state and warns when a previously published URL would return a 404.\n\n```bash\n[warning] Page \"products/api-def/openapi/extensions/default.mdx\" was removed. The previously published URL \"/learn/api-definitions/openapi/extensions/default-values\" will return 404 without a redirect. Consider adding a redirect in docs.yml to preserve existing links.\n```\n\nConfigure its severity in `docs.yml`:\n\n```yaml\ncheck:\n  rules:\n    missing-redirects: error\n```\n\n## Library docs generator\n\nGenerate MDX documentation pages from your Python or C++ library source code and include them in your Fern Docs site. Configure your libraries in `docs.yml`, run `fern docs md generate`, and the generated pages appear as navigation sections alongside your other documentation.","publishedAt":"2026-04-02T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.778Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/4/2","media":[],"coverageCount":0},{"id":"rel_eRxcQfxQ9VBR_Toxbj3it","version":null,"type":"feature","title":"March 31, 2026","summary":"## Configure `fern check` rule severity\n\nYou can now configure the severity of validation rules run by `fern check` directly in your `docs.yml` file u...","titleGenerated":null,"titleShort":null,"content":"## Configure `fern check` rule severity\n\nYou can now configure the severity of validation rules run by `fern check` directly in your `docs.yml` file using the `check.rules` property. Set individual rules to `\"warn\"` (non-blocking) or `\"error\"` (blocking) to control which checks fail your build.\n\n```yaml\ncheck:\n  rules:\n    broken-links: error\n    example-validation: warn\n```\n\nThe `--broken-links` and `--strict-broken-links` CLI flags are now deprecated in favor of this configuration.\n\n## AI search upgrade\n\nAsk Fern now runs on Claude 4.6 Sonnet for faster, more accurate answers.\n\n## Context7 integration\n\nHost a [Context7](https://context7.com/) verification file on your Fern docs site. Add `integrations.context7` to your `docs.yml` pointing to your `context7.json` file, and Fern serves it at `/context7.json` on your domain.\n\n```yaml\nintegrations:\n  context7: ./path/to/context7.json\n```\n\nRequires Fern CLI version `4.52.0` or later.","publishedAt":"2026-03-31T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.778Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/3/31","media":[],"coverageCount":0},{"id":"rel_cW3W5jS4Dlz0Jv_6RSWPz","version":null,"type":"feature","title":"March 30, 2026","summary":"## Tab alignment and placement options\n\nYou can now finetune how your tabs look and behave using `theme.tabs` in `docs.yml`. Choose between the defaul...","titleGenerated":null,"titleShort":null,"content":"## Tab alignment and placement options\n\nYou can now finetune how your tabs look and behave using `theme.tabs` in `docs.yml`. Choose between the default underline or bubble style, place tabs in the header or sidebar, and center-align header tabs from a single configuration block.\n\n```yaml\ntheme:\n  tabs:\n    style: bubble\n    alignment: center\n    placement: header\n```\n\nThe existing string shorthand (e.g., `theme.tabs: bubble`) continues to work for simple style changes.","publishedAt":"2026-03-30T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.514Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/3/30","media":[],"coverageCount":0},{"id":"rel_gcDqRcNIBx3hJdj3dzh63","version":null,"type":"feature","title":"March 27, 2026","summary":"## Sitemap timestamps\n\nYour sitemap entries now include a `<lastmod>` timestamp that's invisible to readers and used exclusively by search engines to ...","titleGenerated":null,"titleShort":null,"content":"## Sitemap timestamps\n\nYour 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).","publishedAt":"2026-03-27T00:00:00.000Z","fetchedAt":"2026-06-04T12:58:38.514Z","url":"https://buildwithfern.com/learn/docs/changelog/2026/3/27","media":[],"coverageCount":0}],"pagination":{"nextCursor":"2026-03-27T00:00:00.000Z|2026-06-04T12:58:38.514Z|rel_gcDqRcNIBx3hJdj3dzh63","limit":20},"summaries":{"rolling":null,"monthly":[]}}