800 篇文章,你模糊知道站内链接很重要,但完全不知道补哪 20 条最值。这篇把这片雾变成一份排序好的 CSV:源文已经有权重、目标在话题上且入链不足、又能找到自然的锚点。AI 替你跨文阅读,你点头确认 diff。在真实的内容站上,目标页在 Search Console 里的曝光一般 2-4 周内开始抬,原本孤儿的页面在 60 天内开始拿到点击。
一句话总结
- 把每篇文章导成 CSV:slug、标题、前 200 字、标签、当前入链数(一段约 30 行的脚本扫一遍内容目录就够)。
- 把 CSV 喂给 1M 上下文模型(Claude Opus 4.7、Sonnet 4.6 或 Gemini 3.1 Pro),让它提 50 条桥接候选:源入链 3 条以上、目标入链 2 条以下,每条带一行理由、建议锚词、1-5 信心分。
- 按信心分留前 20,只靠标签重叠的理由全砍,逐条人工核对插入段落,一次性发 PR。
- 每批新发 20 篇以上之后重跑一次。在内容站上,桥接是最便宜的 SEO 赢面。
孤儿页和入链不足的页为什么在漏流量
Google 主要靠指向页面的链接来发现和排名一个页面。零站内入链的页面就是孤儿:爬虫只能通过 sitemap 或外链摸到它,抓取优先级垫底。入链很少的页面攒不到多少 PageRank,几乎排不上有竞争的词。解法不是多写页,而是把你已有的权重导向真正缺的页。
当前 SEO 实践里有两个数字撑起整套流程。第一,单页总链接数尽量压在 150 以内(含导航和页脚),因为 Google 会把权重摊到每一条出链上,链接堆太多,每条传出去的信号就更薄。第二,重要页尽量保持在离首页三次点击以内。桥接链接就是在不重做导航的前提下,把一个埋得很深、入链不足的页拉到离表面更近。
起点可以免费自查:Google Search Console 的 链接(Links) 报告里有「站内被链接最多的页面(Top linked pages)」一栏。排在最底部、或者只有一两条链接的页,就是你的孤儿页和入链不足的目标。把它导出,再和全站 slug 清单一比,就能找到连这份报告都没列出来的缺口。
这篇适合谁看
200+ 篇规模的内容站站长、每月做一轮链接梳理的独立 SEO、接手没有内链纪律的老站的编辑。100 篇以下别上工具,那个量级肉眼看话题图确实更快。
衡量「主题契合度」的两条路
AI 有两种做法,最强的流程是两者结合。
| 方法 | 怎么做 | 优势 | 短板 |
|---|---|---|---|
| 长上下文 LLM | 把整份 CSV 塞进一个 prompt,让模型在标题和首段上推理 | 能判意图、能写自然锚词 | 超过约 40 万 token 后召回下降;大站很贵 |
| 嵌入 + 余弦相似度 | 给每篇做嵌入,两两算相似度再排序 | 便宜、能扩到上千页、确定性强 | 会冒出「语义近但语境错」的配对;不产出锚词 |
实用配方:如果 CSV 能稳稳压在约 30 万 token 以内(大致是 1000 篇的标题加首段),一次长上下文 pass 最省事。超过这个量,先把所有页做嵌入,留相似度最高的配对,再只把这些候选配对交给 LLM 判契合度、起锚词。嵌入便宜地缩小范围,LLM 做嵌入做不了的判断。
选模型(截至 2026 年 6 月):Claude Opus 4.7、Sonnet 4.6 和 Gemini 3.1 Pro 都带 1M token 上下文窗口,一次就能吞下一个中型站。独立的长上下文测试显示,窗口越满,检索准确率越往下掉,所以别以为一个 90 万 token 的 prompt 会被读得和 20 万 token 的一样仔细。还要注意 Gemini 3.1 Pro 的 API 价格在输入超过 20 万 token 后会跳档(输入大致翻倍),所以一次 60 万 token 的 CSV pass 比标价看着要贵。几百篇的规模上,三个模型随便挑,都便宜。
开始前准备
- 导出全站文章清单:slug、标题、主关键词、标签、当前入链数。一段读 content collection 的脚本几分钟出结果。
- 给「桥接」定个口径。下面的默认规则:源文已经有 3+ 入链(有权重可传),目标 2 条或更少入链(需要被抬)。
- 备一个 1M 上下文模型。800 行标题加首段很容易 8 万 token 起步,你不会想把它切块。
- 写一份「不要链接的目标」清单:法律页、sitemap、过期新闻、感谢页。AI 默认会往里塞。
具体步骤
- 生成 CSV。 列:slug、标题、H1、前 200 字、主关键词、标签、当前入链数。前 200 字是 AI 判断主题契合度的关键上下文,光有标题和标签不够。
- 算入链数。 扫一遍 markdown,按 slug 数内链出现次数。一段下面这样的脚本就够。
- 写 prompt。 把整份 CSV 贴进去,规则讲清楚:提 50 条桥接候选,源 inlinks >= 3、目标 inlinks <= 2。每条要一行点出话题连接的理由、建议锚文本(3-6 字)、1-5 信心分。
- 按信心分筛前 20。 只靠标签匹配做理由的全砍。标签重叠而没有话题重叠,链出来很虚,读着像硬插的。
- 逐条人工核插入点。 打开源文,确认模型指的那一段真存在,把建议锚词放回语境里读一遍。读出声不顺就重写锚词或直接弃掉。
- 一次性发 PR。 一个源文一个 commit,diff 好审。别上批量正则插,会打断句子流,半年后你也没法替它辩护。
- 度量。 4 周后看 Search Console 里目标页的曝光。桥接先抬曝光,再抬点击。
一段最小的入链统计脚本
这段 Node 脚本扫内容目录,数有多少文件链到每个 slug,写出入链列。链接匹配规则按你的路由改。
import { readFileSync, readdirSync, writeFileSync } from "node:fs";
import { join } from "node:path";
const dir = "src/content/articles/zh";
const files = readdirSync(dir, { recursive: true }).filter((f) => f.endsWith(".mdx"));
const counts = {};
for (const file of files) {
const body = readFileSync(join(dir, file), "utf8");
// 匹配正文里 /zh/articles/<slug>/ 形式的链接
for (const m of body.matchAll(/\/zh\/articles\/([a-z0-9-]+)\//g)) {
counts[m[1]] = (counts[m[1]] || 0) + 1;
}
}
const rows = files.map((f) => {
const slug = f.replace(/\.mdx$/, "").split("/").pop();
return `${slug},${counts[slug] || 0}`;
});
writeFileSync("inlinks.csv", "slug,inlinks\n" + rows.join("\n"));
把这份 inlinks.csv 和你的标题、前 200 字导出表 join 起来,就是 AI pass 的完整输入。
桥接 prompt
贴完 CSV,接着写:
你是站内链接编辑。从这份 CSV 里提 50 条桥接链接。合格的桥接从
inlinks >= 3的源文指向inlinks <= 2的目标,且两者有真实的话题重叠(不只是共享标签)。每条输出:源 slug、目标 slug、建议锚文本(3-6 字,整批之间要有变化)、一行点出具体共享话题的理由、1-5 信心分。绝不往这份黑名单里链:[你的不要链接 slug]。只靠共享标签连起来的配对一律剔除。
合并前的质量检查
- 每条桥接的理由都点出具体的话题连接,而不是「相关主题」。理由含糊就是建议虚。
- 锚文本整批之间有变化。20 条里 15 条都是目标文标题原文,说明模型在偷懒,加一条多样化约束重跑。
- 没有「薄页(不到 800 字)指向 pillar」的桥接。权重靠厚度传,薄源传出来也薄。
- 你加的链接不会把任何源页推过 150 条总链接。一段最多两条上下文桥接是硬上限。
- 抽 3 段源文读出声:链接读着自然,还是硬插的?
把它做成可复用的月度梳理
- 把 prompt、入链统计脚本、目标黑名单存成项目文档。每次上新之后重跑,不用重想规则。
- 留一份「链接欠债」清单:跑了两轮还在 2 入链以下的目标页。它们通常不是缺链接,是页本身需要重写。
- 每轮把 AI 否决的候选留档。规律会自己浮现(「这个模型老往 FAQ 页提链接」),下轮就变成黑名单规则。
容易踩的坑
- 靠标签重叠而不是话题重叠提链接。 标签只是代理,模型得判断正文,不是只看元数据。
- 一批里锚文本全一样。 模板感会被 Google 看出来,信号也被稀释。
- 一个源段塞 5 条桥接。 一段最多两条,再多就像链接饵。
- 不写理由字段。 没理由你区分不了强建议和填充,半年后也无法替这条链接辩护。
- 从薄页提链接。 链接传的是按比例的权重,薄源传出来也薄。
- 盲信一个 90 万 token 的 prompt。 长上下文召回会随窗口变满而下降,要核对模型有没有真的用到埋在 CSV 中段的页。
FAQ
- 每月几条桥接合适? 20 条高质量胜过 100 条弱链接。质量复利,数量稀释每条链接能传的权重。
- 桥接是不是都该从老页指新页? 大多数是。老页攒了权重,新页缺抬升。反向只在新页本身是 pillar、该被老页倒灌时才合理。
- 锚词多长最好? 3-6 个有描述性的字。单字太弱,整句太像 spam,也很少读着自然。
- 用嵌入还是长上下文 LLM? 1000 篇以内,一次长上下文 pass 更省事。超过就先做嵌入缩小候选集,再让 LLM 判契合度、写锚词。
- AI 判主题契合度靠谱吗? 它语义近似擅长、意图匹配弱,所以那一行理由就是你的护栏。模型提,你否。
- 多久能看到效果? 目标页曝光一般 2-4 周抬,排名 4-8 周跟上,点击在排名稳定之后。
相关阅读
标签: #SEO #internal-links #教程