Jamdesk Documentation logo

隐藏页面

在不删除页面的情况下,将其从侧边栏和搜索结果中隐藏。使用 frontmatter、docs.json 或 seo 控件管理可见性。

部分页面不应出现在公开侧边栏中:草稿、内部手册、你仍需链接但已弃用的指南。隐藏页面仍可通过直接 URL 访问,但会从导航、搜索、站点地图以及输入给 LLM 的 AI 上下文中消失。

隐藏单个页面

在页面的 frontmatter 中添加 hidden: true:

---
title: Internal handbook
hidden: true
---

页面仍会在其 URL 下渲染。Jamdesk 会:

  • 将其从侧边栏中移除
  • 添加 <meta name="robots" content="noindex, follow">,使搜索引擎跳过该页面
  • 将其从 sitemap.xml、llms.txt、llms-full.txt 以及站内搜索中排除

隐藏整个组或标签页

在 docs.json 中为分组或标签页设置 "hidden": true:

{
  "navigation": {
    "tabs": [
      {
        "tab": "Public",
        "groups": [{ "group": "Guides", "pages": ["intro", "quickstart"] }]
      },
      {
        "tab": "Internal",
        "hidden": true,
        "groups": [{ "group": "Runbooks", "pages": ["oncall", "postmortems"] }]
      }
    ]
  }
}

隐藏节点下的每个页面都会继承该规则。同样的标志也适用于 tabs、groups、anchors、dropdowns、products、languages 和 versions。

在搜索中保留隐藏页面

添加 "searchable": true,可使隐藏的标签页或分组仍被站内搜索、AI 回答和站点地图索引:

{
  "tab": "Internal",
  "hidden": true,
  "searchable": true,
  "groups": [{ "group": "Runbooks", "pages": ["oncall"] }]
}

子页面上 frontmatter 中的 hidden: true 仍然优先生效。searchable 只会重新开放那些自身未选择退出的后代页面。

仅将页面排除在搜索之外

如果某页面应保留在侧边栏中并可被索引,但不希望出现在站内搜索或 AI 回答中,请在该页面的 frontmatter 中添加 search: false:

---
title: Legacy v1 endpoints
search: false
---

该页面在导航、站点地图、llms.txt 和 RSS 订阅源中仍保留其位置。搜索引擎仍会索引它。它只会离开查找类入口:站内搜索、AI 聊天回答以及 MCP 服务器。

search: false 与 hidden: true 的作用恰好相反。hidden 会将页面从导航和索引入口中移除。search: false 则不影响这些,只是阻止该页面被检索。请不要将它与导航级别的 searchable 混淆,后者会让隐藏页面重新纳入搜索。

页面有多少内容会被建立索引

搜索并不会将页面作为一个整体进行索引,而是逐节索引。每个标题都会成为一个独立的搜索条目。搜索"Rate limits"会直接定位到该标题,而不是长页面的顶部。

有两项限制会自动生效:

限制数值超出后的处理
每页条目数50各节按页面顺序索引。第 50 节之后的内容不会被纳入搜索。
每节文本前 300 个字符节内更深处的文字无法被匹配。

页面本身占用其中一个名额,因此实际可索引 49 个节。

设置此上限是因为搜索会将每个条目与索引中的其他内容进行权衡。单个页面生成数百个条目会挤占其他页面的结果位置。自动生成的更新日志可能占满半个索引,使相关页面被挤出第一屏。

超出上限的页面依然会完整渲染。只是其后面的各节不再可被搜索到,而且页面上没有任何提示告知读者这一点。

对于包含超过约 50 个标题的页面,请将其拆分为多个页面。这同时也能改善导航。对于没有人手动搜索的机器生成页面,请改为添加 search: false,使整个页面都不进入索引。

请将关键词放在搜索权重最高的位置:页面标题(权重最高),其次是标题,然后是描述。正文权重最低,且每节只有前 300 个字符会被计入。

seo.metatags.keywords 不会影响站内搜索。它只会输出 HTML 的 <meta name="keywords"> 标签。Google 已表明其排名时会忽略该标签。你无法为页面附加额外的搜索词。请将希望被匹配的词放在标题、标题文字或描述中。

项目级控制

这些标志位于 docs.json 的 seo 下:

标志默认值作用
seo.indexing"navigable"工件中仅包含导航中列出的页面。设为 "all" 可包含代码仓库中的每个 MDX 文件。
seo.indexHiddenPagesfalse设为 true 可将 hidden: true 的页面纳入站点地图、llms.txt 和搜索,并去掉自动添加的 noindex 标签。

示例:

{
  "seo": {
    "indexing": "all"
  }
}

快速参考

场景Frontmatterdocs.json侧边栏可见直接 URL在站点地图中
普通页面-已列出是是是
通过 frontmatter 隐藏hidden: true已列出否是否
不在导航中(孤立页面)-未列出否是否
隐藏分组-分组上设置 hidden: true否是否
隐藏但可搜索的分组-hidden: true, searchable: true否是是
仅排除在搜索之外search: false已列出是是是
项目选择索引所有内容-任意同上是是

何时使用各项设置

  • 草稿与预览: 在单个页面的 frontmatter 中设置 hidden: true
  • 小团队的内部板块: 隐藏分组或标签页
  • 应公开但不宣传的合规文档: 带有 searchable: true 的隐藏分组
  • 仅用于 AI 基础的全仓库索引: seo.indexing: "all"
  • 已被取代、但仍希望可链接并被索引、却不希望被搜索或 AI 推荐的页面: frontmatter 中设置 search: false

隐藏页面不等同于访问控制。任何拥有 URL 的人都可以阅读它们。如需访问控制,请参阅密码保护。