Jamdesk Documentation logo

隐藏页面

无需删除页面,即可通过 frontmatter、docs.json 或 SEO 控件将其从侧边栏和搜索结果中隐藏。

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

隐藏单个页面

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

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

有人访问页面 URL 时,页面仍会正常渲染,但 Jamdesk 会:

  • 将其从侧边栏中移除
  • 添加 <meta name="robots" content="noindex, follow">,让搜索引擎跳过该页面
  • 将其从 sitemap.xmlllms.txtllms-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"] }]
      }
    ]
  }
}

隐藏节点下的每个页面都会继承此规则。同一个标志也适用于 tabsgroupsanchorsdropdownsproductslanguagesversions

在搜索中保留隐藏页面

如果希望隐藏标签页或组不出现在侧边栏中,但仍为站内搜索、AI 回答和站点地图建立索引,请添加 "searchable": true

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

子页面上的 frontmatter hidden: true 仍具有更高优先级。searchable 只会重新启用那些自身未选择退出的后代页面。

仅将页面排除在搜索之外

有时,页面应继续显示在侧边栏中并保持可索引,但不应在用户搜索或提问时出现。将 search: false 添加到其 frontmatter 中:

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

页面仍会保留在导航、站点地图、llms.txt 和 RSS feed 中,搜索引擎也仍会为其建立索引。它被移除的是查找入口:站内搜索、AI 聊天回答和 MCP 服务器。

search: falsehidden: true 的作用相反。hidden 会将页面从导航和索引入口中移除;search: false 不会改变这些设置,只会阻止页面被检索。不要将它与导航级别的 searchable 混淆,后者会将隐藏页面重新加入搜索。

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

搜索不会将页面作为一个整体建立索引,而是按章节逐一建立索引——每个标题都会成为自己的搜索条目,因此搜索“速率限制”的读者会直接跳转到该标题,而不是长页面顶部。

对此有两个限制,并且都会自动生效:

限制超出后的行为
每页条目数50按页面顺序为章节建立索引。第 50 个条目使用后,其余章节都会被排除在搜索之外。
每个章节的文本量前 300 个字符章节更深处的文字不会参与匹配。

页面本身会占用 50 个名额中的一个,因此最多会有 49 个章节被建立索引。

设置此上限是因为搜索会将每个条目与索引中的其他内容进行权衡。一个页面生成数百个条目,会挤压其他页面在结果中的空间——自动生成的变更日志可能单独占据索引的一半,并将真正相关的页面推到首屏之外。

超过上限的页面仍会完整渲染。只有后面的章节不再可被找到,而且页面上不会提示读者这一点。

如果页面包含超过约 50 个标题,请将其拆分成多个页面——这样导航也会更好;或者,如果页面是机器生成的,且没有人会手动搜索它,请添加 search: false,将整个页面排除在索引之外。

若要让搜索正确评估某个术语,请使用页面标题(权重最高),其次是标题,再其次是描述。正文权重最低,每个章节仅计算前 300 个字符。

seo.metatags.keywords 不会用于站内搜索。它会生成 HTML <meta name="keywords"> 标签,而 Google 已明确表示不会使用该标签进行排名。无法为页面附加额外的搜索词——请将希望匹配的词放入标题、章节标题或描述中。

项目级控制

两个标志都位于 docs.jsonseo 下:

标志默认值作用
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 的人都可以阅读这些页面。如需真正的访问控制,请参阅密码保护