隐藏页面
将文档页面从侧边栏导航中隐藏,同时仍可通过直接 URL、站内搜索或 AI 助手访问,适用于内部参考、AI 上下文等特殊场景。
隐藏页面不会出现在站点的导航中,但任何知道该 URL 的人仍然可以访问它们。比如,如果你创建了一个像 guides/hidden-page.mdx 这样的隐藏页面,访问者依然可以通过 docs.yoursite.com/guides/hidden-page 打开它。
当你希望用户能够访问某些内容,或将其作为 AI 工具的上下文引用,但又不希望这些内容出现在导航中时,可以使用隐藏页面。
隐藏页面并非私密页面。任何知道 URL 的人都可以查看它们,外部分享的链接依然有效。隐藏页面只会将其从渲染的导航中移除。
如果你的内容需要严格的访问控制,必须配置认证。要将页面限制为特定用户组访问,请设置基于用户组的访问控制。
参见隐藏页面示例。
某些导航元素,如侧边栏、下拉菜单和选项卡,在隐藏页面上可能会显示为空或导致布局发生变化。
要隐藏页面,请在页面的 frontmatter 中设置 hidden: true,或将其从 docs.json 的 navigation 中移除。
在页面的 frontmatter 中添加 hidden: true,可以将该页面从渲染的导航中移除,同时仍然将其包含在 docs.json 配置中。
---
title: "My hidden page"
hidden: true
---要使页面重新可见,请完全移除 hidden 字段。设置 hidden: false 对导航的效果相同,但对于位于隐藏分组或标签页内的页面,请避免这样做:这些页面因其父项未被渲染而保留在导航之外,而 hidden: false 会将它们重新纳入搜索、站点地图和 AI 上下文中。
默认情况下,hidden: true 会将页面从搜索引擎索引编入、站点地图和 AI 上下文中排除。
如需仍然包含该页面,请在 docs.json 中设置 seo.indexing: "all"。有关详细信息,请参阅搜索、SEO 和 AI 索引编入。
注意:noindex: true 仅影响索引编入,不会将页面从导航中隐藏。有关更多信息,请参阅禁用索引编入。
如果你没有在 docs.json 的 navigation 中包含某个页面,该页面就会被隐藏。这种方式非常适合那些你根本不希望出现在导航中的页面。
若要隐藏一组页面,请在你的 docs.json 文件中将该页面分组的 hidden 属性设为 true:
"groups": [
{
"group": "快速开始",
"hidden": true,
"pages": [
"index",
"quickstart"
]
},
{
"group": "Guides",
"pages": [
"guides/hidden-page.mdx",
"guides/hidden-groups.mdx"
]
}
]在此示例中,Getting started 组保持隐藏,并且 Guides 组保持可见。
要隐藏某个标签页,请在 docs.json 文件中为该标签页添加 hidden 属性:
"tabs": [
{
"tab": "首页",
"hidden": true,
"pages": [
"index",
"quickstart"
]
}
]版本、锚点、下拉菜单、语言和产品同样支持 hidden 属性。在这些元素之一上设置 hidden: true,会将其从渲染后的导航中移除,并将其下的所有页面从站内搜索、站点地图、搜索引擎索引编入和 AI 上下文中排除。
"versions": [
{
"version": "v1",
"hidden": true,
"groups": [...]
},
{
"version": "v2",
"groups": [...]
}
]如果你在唯一的版本上,或在包含全部页面的版本上设置 hidden: true,站内搜索索引将变为空,任何搜索都不会返回结果。与标签页和分组不同,版本不支持 searchable: true。要将隐藏的版本恢复到搜索和索引中,请从该版本中移除 hidden: true,或在 docs.json 中设置 seo.indexing: "all"。参见修复站内搜索无结果的问题。
默认情况下,隐藏页面不会被纳入搜索引擎的索引、文档站点的内部搜索,也不会作为 AI 助手的上下文使用。你可以通过两种方式将隐藏内容纳入搜索和索引。
下表汇总了每种属性对页面可见性和索引编入的影响:
| 属性 | 侧边栏导航 | 站内搜索 | 站点地图 | 搜索引擎索引编入 | AI 助手上下文 | llms.txt |
|---|---|---|---|---|---|---|
hidden: true | 隐藏 | 排除 | 排除 | 排除 | 排除 | 排除 |
页面未列入 docs.json | 隐藏 | 排除 | 排除 | 仅从站点地图排除 | 排除 | 排除 |
noindex: true (页面 frontmatter) | 可见 | 排除 | 排除 | 排除 | 排除 | 排除 |
searchable: false (页面 frontmatter) | 可见 | 排除 | 包含 | 包含 | 排除 | 包含 |
searchable: true (在隐藏的标签页或分组上) | 隐藏 | 包含 | 包含 | 包含 | 包含 | 包含 |
seo.indexing: "all" (在 docs.json 中) | 隐藏 | 包含 | 包含 | 包含 | 包含 | 包含 |
隐藏页面的两种方式在搜索引擎方面存在差异。hidden: true 会向页面添加 noindex meta 标签,从而告知爬虫不要为其编入索引。仅将页面从 docs.json 导航中排除只会使其不出现在 sitemap.xml 中,因此如果爬虫从其他位置发现该 URL,仍可能对该页面编入索引。当你需要使用该 meta 标签时,请在页面的 frontmatter 中添加 hidden: true 或 noindex: true。
llms.txt 列同样适用于 llms-full.txt。相关文件的详细信息请参见 llms.txt。
若要将站点上所有隐藏页面都纳入搜索、站点地图和 AI 上下文中,请在你的 docs.json 中添加 seo 属性:
"seo": {
"indexing": "all"
}若只想包含某个隐藏标签页或分组下的页面,请在 docs.json 中对应的标签页或分组上设置 searchable: true。当你为了控制导航布局而隐藏标签页或分组,但仍希望其下的子页面可被发现时,请使用此选项。
"tabs": [
{
"tab": "Storage",
"hidden": true,
"searchable": true,
"groups": [
{
"group": "Buckets",
"pages": ["products/storage/buckets/create-bucket"]
}
]
}
]设置 searchable: true 后,子页面仍会保留在以下位置:
- 文档站点搜索
sitemap.xml- AI 助手上下文
- MCP 服务器搜索结果
- 搜索引擎索引(不会应用
noindexmeta 标签)
但标签页或分组本身仍会在渲染后的导航中保持隐藏。
页面自身的 hidden: true frontmatter 始终具有最高优先级。若要重新排除某个子分组,请在其上设置 hidden: true 且不设置 searchable: true。
在页面 frontmatter 层级,只有 searchable: false 会产生效果。使用它可以让外部搜索引擎仍然可以索引该页面,同时将其从站内搜索和 AI 助手 context 中排除。带有 searchable: false 的页面仍会出现在你的 llms.txt 和 llms-full.txt 文件中。示例请参阅将页面从搜索中排除。
页面级 searchable 不会覆盖同一页面上的 hidden: true。若要使隐藏页面可被发现,请不要设置 searchable,并将其移至带有 searchable: true 的隐藏标签页或分组下,或在 docs.json 中设置 seo.indexing: "all"。
hidden 和 noindex 之间的关系是单向的:
hidden: true→ 会自动应用noindex:frontmatter 中带有hidden: true的页面会自动从搜索引擎、站点地图和 AI context 中排除在外。noindex: true→ 不会应用hidden:带有noindex: true的页面在导航中仍然可见。它们不会出现在站点搜索、站点地图、搜索引擎索引或 AI context 中。
如果想让某个页面从搜索引擎中排除,但仍在导航中可见,请在它的 frontmatter 中添加 noindex: true。如果想让页面同时从导航和搜索引擎中隐藏,请使用 hidden: true。如果只想将页面从站点内搜索和 AI 助手 context 中排除,但仍允许外部搜索引擎对其进行索引,请改用 searchable: false。