搜索引擎优化
Docsbook 会为你构建文档中可供机器读取的部分。它托管的每个页面都是服务器渲染的 HTML,其中包含已解析的 <title>、清理后的元描述、一个规范 URL、一个仅包含你实际翻译过的语言的 hreflang 集合、带有生成图像的 OpenGraph 和 X 卡片、一个 JSON-LD 图谱,以及站点地图中的一条记录,而 robots.txt 会指向该站点地图。你编写 Markdown;页面头部内容则由此生成。
本节介绍搜索结果——Google 和 Bing 会抓取、编入索引并进行排名的内容。另有两个相邻部分涵盖其他机器可访问的界面,且与本节不重叠: AEO 是结果上方的答案框,而 GEO 是被 AI 助手引用,而不是参与排名。
对你而言的代价#
三件事,其中一件并非可选。
- 开启 SEO 开关。 在管理面板的 设置 ▸ SEO & GEO 中,启用
SEO开关。它在新项目中默认关闭,关闭期间每个页面都会以noindex, nofollow提供——标记全部由系统生成,而且所有内容都表示“不要将我编入索引”。这是 Docsbook 网站未出现在 Google 中最常见的单一原因。所有计划均免费。 - 写一个清晰的
# H1,以及一段能够回答页面问题的开场段落。 除非你覆盖它们,否则它们会成为标题和描述。 - 没有其他内容。 规范 URL、站点地图、
robots.txt、卡片、JSON-LD 和 语言集群均由系统管理,并且没有可供配置的界面。
若要覆盖某个页面的生成行,请将其放入 frontmatter:
---
title: "Configure a webhook"
description: "Register a Docsbook webhook, choose its events, and verify the first delivery."
---若要让某个页面不被编入索引,同时仍保持发布状态并可读:
---
noindex: true
---robots: noindex、noindex: yes 和 noindex: 1 也同样接受。将其用于那些消耗抓取预算却从未带来点击的页面——例如 90,000 个字符的变更日志、内部工作笔记或未完成的占位页面。对于这类情况,网站级开关并不是正确的工具:关闭它会隐藏所有内容。
这些信号,以及每个信号的决定位置#
| 信号 | Docsbook 的处理方式 | 位置 |
|---|---|---|
<title> |
前置元数据 title → 正文 H1 → 文件名;工作区名称恰好追加一次 |
工作原理 |
<meta description> |
前置元数据 description → 开头段落,去除标记后限制为 160 个字符 |
工作原理 |
| 规范 URL | 自定义域名 → 产品路径 → 顶级域名短路径 → 所有者子域名;绝不会使用会发生重定向的 URL | 工作原理 |
hreflang |
仅包含此页面确实已翻译成的语言区域,以及 x-default |
工作原理 |
| OpenGraph / X 卡片 | summary_large_image,每个页面配有一张生成的 1200×630 图片 |
工作原理 |
| Robots 指令 | 预览 → 站点开关 → 页面 noindex,按此优先级处理 |
工作原理 |
sitemap.xml |
每个页面加上真实翻译,lastmod 来源提交 |
工作原理 |
| JSON-LD | 每个页面包含 Organization + TechArticle + BreadcrumbList |
工作原理 |
| 发现与重新抓取 | 站点地图、robots.txt、IndexNow 推送、缓存计时器 |
索引 |
| Google 排名 | 将 Search Console 数据读取到管理面板,每个套餐均免费提供 | 索引 |
为什么这是正确的做法(证据)#
| Docsbook 的做法 | 为什么这对爬虫有效 | 来源 |
|---|---|---|
| 提供完整的服务器渲染 HTML | Google 会在队列中渲染 JavaScript,页面“可能会停留……几秒钟,但也可能需要更长时间”,而且“并非所有机器人都能运行 JavaScript” | JavaScript SEO 基础知识 |
| 为每个页面提供独立的标题和描述 | Google 的标题链接来源首先包括“<title> 元素中的内容”;并且“网站每个页面上相同或相似的描述没有帮助” |
标题链接、摘要 |
| 将规范网址指向返回 200 的 URL | rel="canonical" 是“指定 URL 应成为规范网址的强烈信号”——只有目标地址能够解析时,Google 才能遵循这一信号 |
整合重复 URL |
仅在 hreflang 中列出实际存在的翻译 |
“如果页面 X 链接到页面 Y,页面 Y 必须链接回页面 X。如果不是这样……这些注释可能会被忽略” | 本地化版本 |
为 lastmod 使用实际的提交日期 |
Google 使用 <lastmod>,“如果它始终且经可验证地……准确” |
构建站点地图 |
仅当页面包含相应内容时才输出 FAQPage / HowTo |
“不要添加有关用户不可见信息的结构化数据,即使该信息是准确的” | 结构化数据简介 |
| 在每个页面上将侧边栏渲染为 HTML 链接 | 抓取预算会花费在可访问的内容上;“如果其中许多 URL 是重复的……这会浪费 Google 在你的网站上进行抓取的大量时间” | 抓取预算 |
| 页面移动时返回 308 | 临时重定向会使失效 URL 仍然作为规范网址 | 整合重复 URL |
Docsbook 不会声称的内容#
- 这些都不会让页面获得排名。 上述每种机制都会让页面变得 可抓取、明确无歧义并且正确呈现。Google 的页面体验 FAQ 对“是否存在单一的‘页面体验信号’……?”的回答是“不存在单一 信号”,而对于页面体验对排名有多重要,回答是“Google 搜索始终致力于展示最相关的内容,即使页面体验不佳也是如此”(页面体验)。 标记是底线,而不是杠杆。
- 结构化数据被记录为资格信号,而非排名信号。 Google 自己的介绍谈论的是富媒体搜索结果,没有提及排名。
priority和changefreq在站点地图中对 Google 没有任何作用。“Google 会忽略<priority>和<changefreq>值。” Docsbook 为那些确实会读取这些值的 搜索引擎生成它们。- 抓取预算可能不是你的问题。 Google 的抓取预算指南面向“拥有(100 万个以上唯一页面)且内容变化
较为频繁(每周一次)的超大型网站”,以及“拥有(1 万个以上唯一
页面)且内容变化非常快(每天更新)的中型或更大型网站”——同时还说明,这些“只是帮助你对网站进行分类的大致估计,并非
精确阈值。”在大型变更日志上执行
noindex仍然值得;但把一个 拥有 60 个页面的文档网站当作抓取预算紧急事件,则没有必要。 - 不存在倍增效应。 流量取决于你的主题、竞争对手以及你的 域名。任何向你承诺某个百分比的平台,报出的都是其他人的网站数据。
限制#
- 全站开关默认处于关闭状态,且作用于整个工作区。在每页的
noindex标志之上,没有“将此部分编入索引,而不是那一部分”的控制项。 - 在自定义域名上,SEO 开关和每页的
noindex不会生效 — 页面会无条件以index, follow提供 — 并且没有hreflang集群、没有BreadcrumbList、没有站点地图、没有页面移动重定向,也没有 GEO 页面级信号。规范 URL、标题、描述、卡片以及TechArticle节点在此处均正确。请参阅 工作原理。 - Search Console 中的排名仅涵盖 Docsbook 托管的主机。 位于您自己域名上的站点不属于 Docsbook 读取的资源。请参阅 索引。
- 在 Docsbook 之外进行重命名不会留下重定向。 通过 Docsbook 进行的移动会自动写入重定向;而
git mv不会。
检查清单#
- 设置 ▸ SEO & GEO 中的
SEO开关已开启。 - 每个页面都有一个明确的
# H1,或一个 frontmattertitle。 - 开头段落用一到两句话回答页面所提出的问题。
- 每个页面都可以从侧边栏访问;不存在孤立页面。
- 不应参与排名的页面包含
noindex: true。 - 对于多语言文档,已启用翻译功能 以便每种语言都拥有自己的可建立索引的 URL。
相关#
- Docsbook 如何构建页面的 head — 解析顺序。
- 索引 — 发现、重新抓取和 Search Console。
- AEO — 答案引擎和富媒体搜索结果
- GEO — AI 助手引用
- llms.txt
- AI 翻译
- 搜索选项 — 读者到达后使用的站内搜索。