KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

06 · 内容与内链:收录之后怎么变好 — keel 龙骨

本章目标:让每个页面有清晰主题、被内链支撑、并按节奏更新。 验收标准:站点没有"孤儿页面",每个内容页至少有 3 条内链指入,且更新能体现在 sitemap 的 lastmod。

本章目标:让每个页面有清晰主题、被内链支撑、并按节奏更新。
验收标准:站点没有"孤儿页面",每个内容页至少有 3 条内链指入,且更新能体现在 sitemap 的 lastmod。

前提:这一章生效的前提是前五章已经做完。未收录时优化内容,等于在没人看的房间里重新摆家具。


一、一个页面一个主题

搜索引擎理解页面的基本单位是「这个页面在讲什么」。判断标准很简单:

这个页面的 title 能不能用一句话说清它独有的内容?

如果三个页面的 title 都能套同一句话,它们就该合并。

内容型站点的常见结构(本站采用)

首页(WebSite)
 └─ 板块页 /tracks/<track>/          → 讲这个板块解决什么问题
     └─ 课程页 /courses/<course>/    → 讲这门课的产出与章节结构
         └─ 章节页 /courses/<course>/lessons/<n>/   → 讲一个具体问题

每一层都有自己的 title 与 description,不是上层的复制。这样既避免重复内容,也让爬虫通过结构理解层级关系(配合第 02 章的 BreadcrumbList)。

正文的可抓取性细节

⚠️ 一个真实踩过的坑:把内容放在需要登录才能访问的区域,搜索引擎永远看不到。本站的做法是把公开内容与付费内容分开构建(split-private-content),公开部分的 sitemap 只含公开 URL,私密章节不进 sitemap 也不预渲染。


二、内链:最重要的可控因素

外链你控制不了,内链完全在你手里。 内链同时解决三件事:让爬虫发现页面、传递权重、告诉搜索引擎页面的层级关系。

三条规则

1. 不要有孤儿页面
任何进了 sitemap 的页面,都必须能从站点内部点进去。检查方法:

# 从首页出发做一次简单爬取,收集内链,与 sitemap 比对
curl -s https://www.xxxxxx.cn/learning/ \
  | grep -oE 'href="/learning/[^"]*"' | sed 's/href="//;s/"//' | sort -u > /tmp/linked.txt

curl -s https://www.xxxxxx.cn/learning/sitemap.xml \
  | grep -o '<loc>[^<]*</loc>' | sed 's/<[^>]*>//g' | sort -u > /tmp/sitemap.txt

# 在 sitemap 里但首页链不到的(首层发现不了,需要更深爬取或补内链)
comm -13 /tmp/linked.txt /tmp/sitemap.txt | head

上面只爬了首页一层,深层页面靠列表页与章节导航逐级可达即可。真正要防的是完全没有任何入口的页面。

2. 用描述性锚文本

<!-- ❌ -->
<a href="/learning/courses/tools/">点击这里</a>
<!-- ✅ -->
<a href="/learning/courses/tools/">Tool Calling:工具注册与幂等执行</a>

锚文本是搜索引擎理解目标页面内容的强信号。"点击这里"是零信息。

3. 关键页面多入口
重要的内容页应该出现在:所属列表页 + 相关章节的"延伸阅读" + 首页/板块页的推荐位。入口越多,被抓频率越高。

相关链接的实现

本站的做法是在内容源里维护「前置关系」:

{
  "id": "tool-calling",
  "prerequisites": ["agent-harness"]
}

构建时把它渲染成双向链接(前置 → 本章,本章 → 后继)。好处是内容与关系同源,不会出现在 A 页加了链接、B 页忘了的漂移。


三、更新节奏与 lastmod

搜索引擎偏好"活着"的站点。两个可操作点:

1. 更新要真实体现在 lastmod

# 内容变更后重新生成 sitemap,确认对应 URL 的 lastmod 变了
curl -s https://www.xxxxxx.cn/learning/sitemap.xml | grep -A1 'lessons/1' | grep lastmod

虚假的 lastmod(每次构建全量刷新)会让这个字段失去意义,爬虫会更频繁地白跑。只更新真正变了的条目。

2. 保持稳定的更新频率

不需要日更。对内容型站点,每周 1~2 次有意义的内容更新远好于每天改一个错别字。爬虫会学习站点的更新节奏并相应调整抓取频率——长期不更新会被降频,恢复需要时间。


四、质量信号:E-E-A-T 的落地理解

Google 的质量评估框架强调 Experience / Expertise / Authoritativeness / Trustworthiness。对个人站点,可操作的部分其实很朴素:

原则 具体做法
署名与归属 有作者信息页,说明你是谁、为什么写这个
可验证性 结论给出依据(代码、日志、命令输出),而不是断言
第一手经验 写你真正做过的事,包含失败与取舍——这是最难被替代的部分
站点层面的可信 有 HTTPS、有联系方式/关于页、无隐藏内容、无诱导点击
时效声明 技术内容标注适用版本与时间("nginx 1.24 下…")

反面清单(会实实在在扣分):


五、面向 AI 摘要的写作(新变量)

AI 回答越来越成为内容的入口。被 AI 引用的前提通常是:内容能被独立摘出一段回答某个问题。

可操作的三点:

  1. 每节有小标题且是问题式表述("为什么爬虫抓不到正文?"比"抓取原理"更易被摘取)
  2. 关键结论前置:段落首句给出答案,后面再展开论证
  3. 结构化表达:表格、清单、代码块,比大段散文更容易被解析

这三点与传统 SEO 并不冲突——它们本质上都是"让内容更容易被机器理解"。


六、本章验收

# 1. 孤儿页面检查(首页可发现性)
comm -13 /tmp/linked.txt /tmp/sitemap.txt | wc -l

# 2. 抽查内链是否可访问
curl -s https://www.xxxxxx.cn/learning/courses/tools/ \
  | grep -oE 'href="/learning/[^"]*"' | sed 's/href="//;s/"//' | sort -u \
  | while read -r p; do printf "%s " "$(curl -s -o /dev/null -w '%{http_code}' "https://www.xxxxxx.cn$p")"; echo "$p"; done \
  | grep -v '^200' || echo "全部 200"

# 3. lastmod 是否反映真实更新
curl -s https://www.xxxxxx.cn/learning/sitemap.xml | grep -c '<lastmod>'

下一章处理最后一个影响排名的可控因素:性能。

进入 keel 阅读