隐藏页面
无需删除页面,即可通过 frontmatter、docs.json 或 SEO 控件将其从侧边栏和搜索结果中隐藏。
有些页面不适合出现在公共侧边栏中:草稿、内部手册、仍需链接但已弃用的指南。隐藏页面仍可通过直接 URL 访问,但会从导航、搜索、站点地图以及提供给 LLM 的 AI 上下文中消失。
隐藏单个页面
将 hidden: true 添加到页面的 frontmatter 中:
---
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。
在搜索中保留隐藏页面
如果希望隐藏标签页或组不出现在侧边栏中,但仍为站内搜索、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: false 与 hidden: true 的作用相反。hidden 会将页面从导航和索引入口中移除;search: false 不会改变这些设置,只会阻止页面被检索。不要将它与导航级别的 searchable 混淆,后者会将隐藏页面重新加入搜索。
页面有多少内容会被建立索引
搜索不会将页面作为一个整体建立索引,而是按章节逐一建立索引——每个标题都会成为自己的搜索条目,因此搜索“速率限制”的读者会直接跳转到该标题,而不是长页面顶部。
对此有两个限制,并且都会自动生效:
| 限制 | 值 | 超出后的行为 |
|---|---|---|
| 每页条目数 | 50 | 按页面顺序为章节建立索引。第 50 个条目使用后,其余章节都会被排除在搜索之外。 |
| 每个章节的文本量 | 前 300 个字符 | 章节更深处的文字不会参与匹配。 |
页面本身会占用 50 个名额中的一个,因此最多会有 49 个章节被建立索引。
设置此上限是因为搜索会将每个条目与索引中的其他内容进行权衡。一个页面生成数百个条目,会挤压其他页面在结果中的空间——自动生成的变更日志可能单独占据索引的一半,并将真正相关的页面推到首屏之外。
超过上限的页面仍会完整渲染。只有后面的章节不再可被找到,而且页面上不会提示读者这一点。
如果页面包含超过约 50 个标题,请将其拆分成多个页面——这样导航也会更好;或者,如果页面是机器生成的,且没有人会手动搜索它,请添加 search: false,将整个页面排除在索引之外。
若要让搜索正确评估某个术语,请使用页面标题(权重最高),其次是标题,再其次是描述。正文权重最低,每个章节仅计算前 300 个字符。
seo.metatags.keywords 不会用于站内搜索。它会生成 HTML <meta name="keywords"> 标签,而 Google 已明确表示不会使用该标签进行排名。无法为页面附加额外的搜索词——请将希望匹配的词放入标题、章节标题或描述中。
项目级控制
两个标志都位于 docs.json 的 seo 下:
| 标志 | 默认值 | 作用 |
|---|---|---|
seo.indexing | "navigable" | 只有列在导航中的页面才会出现在生成文件中。设置为 "all" 可包含仓库中的每个 MDX 文件。 |
seo.indexHiddenPages | false | 设置为 true 可将 hidden: true 页面包含在站点地图、llms.txt 和搜索中,并移除自动添加的 noindex 标签。 |
示例:
{
"seo": {
"indexing": "all"
}
}
快速参考
| 场景 | Frontmatter | docs.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 的人都可以阅读这些页面。如需真正的访问控制,请参阅密码保护。
