你的首页向 200 个内部 URL 出链:50 条在 mega-nav、60 条在「最新文章」、40 条在「按话题精选」、30 条在 tag cloud、20 条在 footer。每个分类、每个 tag、每篇近文章都离首页一键。页面看起来很全面。但你真正想让它排名的那些页面表现很差——因为首页的权重被摊到了 200 个目的地上,而不是集中在真正重要的那十几个上。
最快的修法: 先数清首页的内部出链数(用 Step 1 的 curl 一行命令),然后砍到大约 30 个刻意挑选的目的地,把完整的分类、tag、文章列表挪到专门的 index 页(/categories/、/tags/、/articles/)。这些 index 页会吸收首页的权重再分发下去,所以没有任何页面会变得不可抓取——它们只是不再直接和首页的信号抢资源。
这不是一条带魔法数字的硬规则。它是一次「集中」操作:把一份有限的信号,刻意地指向你想要的地方。
老实说,这个模型是什么
到 2026 年,PageRank 依然支撑着 Google 在站内传递权重的方式,尽管公开的工具条数值早在 2016 年就消失了。驱动这次修复的心智模型是:
- 一个页面会沿着每条 followed 出链传出一部分权重。粗略地说,出链越多,每条分到的越少。
- 每跳一步都有损耗。经典 PageRank 的 damping factor 是
0.85,也就是每远离源页一步,大约 15% 的权重蒸发掉。离强势首页四五跳的页面,继承到的权重很少。 - 首页通常是站内最强的页面,因为大多数外部 backlink 都落在它身上。它指向什么,什么就能拿到明显的提升;它不指向的,只能靠更弱的内部页面来托底。
为了避免你过度工程,两条诚实的提醒:
- 它不是字面意义上的平均分。「200 条 = 每条 0.5%,30 条 = 每条 3.3%」是个有用的初步近似,不是 Google 真正的算法。现代排名会把它和相关性、链接位置、链接质量揉在一起。用这个比例来判断方向(链接越少,每条越多),而不是当成精确预测。
nofollow无法做这种 sculpting。 自 Google 2009 年的改动起,内部链接上的nofollow不会把那份权重重新分给你别的链接——那份权重直接丢掉。别想靠到处加rel="nofollow"来修稀释。真正的杠杆是:哪些链接存在、你的点击深度、以及给薄页面加noindex/canonical。
常见原因
按命中率从高到低排列。
1. mega-nav 包含每个分类和 tag
顶部导航下拉里塞了全部 12 个分类、80 个 tag、还有「Browse all」。视觉上很 impressive,但对 SEO 来说,首页现在「链向了一切」。
如何判断: 看首页源码,数 <a href="/category/..."> 和 <a href="/tag/...">。如果光导航就超过 50 条,mega-nav 就是你最大的单一来源。
2. 「最新文章」widget 显示太多
<RecentArticles count={12} />——12 个,因为设计要 3x4 网格。每个都是一条首页出链,而且大多数几周内就被挤出网格,你指向它们的权重就白费了。
如何判断: latest widget 显示超过 6 篇——每篇都是一条 link。
3. 重复 widget:Featured + Popular + Recent + By topic
首页有 4 个「发现文章」widget,各显示 8-12 篇,重叠严重。首页通过 4 套不同机制抵达「browse articles」,在同一小撮文章上把出链权重翻了好几倍。
如何判断: 数链向文章的独立 widget。超过 2 个就是在重复出链权重。
4. footer 列出每篇文章或每个 tag
「为了 SEO」,每页 footer(包括首页)列了 50 个 tag 或 30 条文章 link。footer 是全站通用的,所以一个 50-tag 的 footer 会乘到全站每个页面上——这是大多数内容站上最大的隐形稀释源。
如何判断: 看 footer 源码。里面超过 10 条文章/tag 出链,footer 就是那个隐形的过度出链者。
5. 首页指向 page 2-10 的分页
首页显示「Page 1、2、3、…、10」分页。每个分页 URL 都是首页的一条出链,可分页归档页很少值得排名,也很少应该吸走首页的权重。
如何判断: 首页上对爬虫可见的分页控件(在 HTML 里渲染好的,不是加载后由 JavaScript 拼出来的)。把这些 URL 算作出链稀释。
6. 首页 sidebar 里的 widget
sidebar 里有「本周热门」(8 条 link)、「trending tags」(15 个 tag)、newsletter 签到(无 link)、以及「最近评论」(链到文章 + 评论 thread URL)。每一项都是稀释,而且评论 thread URL 通常价值很低。
如何判断: 首页布局里有突出的 sidebar 带 link widget。数一数里面有什么。
你属于哪一类?
| 源码里的症状 | 最可能的原因 | 跳到 |
|---|---|---|
导航里有 50+ 条 /category/ 或 /tag/ link | mega-nav(#1) | Step 3 第 1 行 |
| 近文章网格显示 8-12 篇 | latest widget(#2) | Step 3 第 2 行 |
| 同一批文章出现在 3-4 个 widget 里 | 重复 widget(#3) | Step 3 第 3 行 |
| footer 里有 tag cloud 或文章列表 | footer 过度出链(#4) | Step 6 |
首页 HTML 里有 ?page=2 / /page/2/ link | 分页(#5) | Step 3 第 5 行 |
| 首页有链接密集的 sidebar | sidebar(#6) | Step 3 第 6 行 |
最短修复路径
按收益从高到低。前 3 步砍 link 数,Step 4 安排溢出。
Step 1:数当前首页的内部出链数
# 抓首页 HTML,提取内部 href,去掉首页自身的 link,再去重
curl -s https://yoursite.com | \
grep -oE 'href="(/[^"]+)"' | \
grep -v '^href="/"$' | \
sort -u | wc -l
把这个数字当成「集中度」信号,而不是及格线:约 60 条刻意 link 以下,紧凑健康;100-200 说明首页权重摊得很薄;200+ 是严重过度出链。(顺带一提:Google 多年前就废除了老的「少于 100 条链接」指南——爬虫现在能处理上千条。这个上限关乎的是权重集中,不是能不能被抓取。)
如果你的首页是客户端渲染的,curl 只会拿到一个空壳。那就改用 Chrome DevTools 数:在 Console 里跑 document.querySelectorAll('a[href^="/"]').length,或者用 Google Search Console 的 URL Inspection 工具看渲染后的 HTML。
Step 2:挑出约 30 个最重要的目的地
围绕一个问题来优化首页:「我们最想让 Google 排名的是什么?」选:
- 8-10 条导航 link(顶级分类、About、Contact)
- 6-8 篇精选文章(你最高价值的内容)
- 4-6 个 pillar 页面(每个话题集群的 canonical「start here」页)
- 4-6 个 footer 必需项(privacy、terms、sitemap、RSS、contact)
这就是约 25-30 条刻意出链。其余都是溢出,该放到 index 页上,而不是首页。
Step 3:狠手砍
按来源逐一砍:
| 源 | 动作 |
|---|---|
| Mega-nav | 减到 6-8 个顶级分类;tag 下拉改成一条链到 tag index 的 link |
| Latest widget | 从 12 减到 4-6 |
| 重复 widget | 保留 featured、popular、recent 之一,其余砍掉 |
| Footer tag cloud | 从首页 footer 移除(保留在 /tags/) |
| 分页 | 首页上就有的话,换成一条链到「all articles」的 link |
| Sidebar | 从首页移除;sidebar 留给文章页 |
别为了「藏起」那些你还留在布局里的链接而去加 rel="nofollow"——截至 2026 年 6 月,那只会把权重漏掉,而不会转移走。要么把链接从首页删掉,要么挪到 index 页。
Step 4:把溢出挪到专门的 index 页
完整分类列表去 /categories/,所有 tag 去 /tags/,所有文章去 /articles/。每个 index 页从首页只链一次,所以它继承首页权重,再往下分发。没有页面会变成孤岛——它只是往下挪了一跳。
首页 → /categories/ → 12 个分类页 → 每个约 30 篇文章
首页 → /tags/ → 80 个 tag 页
首页 → /articles/ → 全部文章(分页)
这是一条刻意的两层流。记住每跳约 15% 的损耗:把你的核心页面(pillar、头部文章)留在离首页 1-2 跳的位置,只让低优先级的归档页坐到更深处。
Step 5:核查再平衡
砍完后重数:
curl -s https://yoursite.com | grep -oE 'href="(/[^"]+)"' | sort -u | wc -l
# 目标:~30
然后确认权重真的挪过去了:
- 爬一遍站点(Screaming Frog、Sitebulb,或免费的
screaming-frog --headless模式),看你 featured/pillar 页的站内入链数——砍完后应该上升。 - 在 Google Search Console 里打开 Links → Internal links,确认接下来 2-4 周里你的 pillar 页在列表中上移。
- 在 Performance 报告里盯这些 pillar URL 的展现量/排名位置;集中的效果会表现为渐进式增长,而不是一夜暴涨。
Step 6:footer + sidebar 同样处理
footer 是全站通用的,所以它的 tag cloud 稀释的是每个页面,不只是首页。把它精简到必需项,链向 index 页:
footer 必需项(每页):About、Privacy、Terms、Contact、RSS、Sitemap
footer tag cloud → 移到 /tags/
footer 文章列表 → 移到 /articles/
如何确认已修复
- Step 1 重数返回大约 30,而不是 200。
- 你砍掉的每个目的地,从某个 index 页(
/categories/、/tags/、/articles/)出发都还能一跳抵达——用一次爬取确认没有新增孤岛。 - Search Console 的 internal-links 报告里,你的 pillar/featured 页排在靠前。
- 2-4 周内,所选页面的展现量和平均排名上升;薄归档页下滑,这正是你想要的取舍。
预防建议
- 首页内部出链上限定在约 30 个刻意选的目的地;超过约 60 就当作警示信号。
- 完整列表用 index 页(
/categories/、/tags/、/articles/);链向 index,而不是它的内容。 - footer 只留必需项(about、privacy、contact);tag 和文章列表放在 index 页上。
- 首页只一个「发现文章」widget,绝不要 4 个重叠的。
- 每个季度重跑一次 Step 1 的计数。
- 加首页 widget 之前,先算它在出链稀释上的代价。
常见问题
每页链接数有硬上限吗? 没有。Google 老的「保持在 100 条链接以内」那句话是一条技术指南,多年前就废除了;爬虫现在每页能处理上千条链接。这里约 30 的目标关乎的是集中权重,不是保持可抓取。
把页面从首页砍掉会伤到它们吗? 只有当它们变得无法抵达时才会。把它们走 /categories/、/tags/、/articles/ 路由过去,它们就只是深了一跳,依然被抓取、依然能排名——只是不再和你的 pillar 抢首页的信号了。
我能不删,只给多余的首页链接加 nofollow 吗? 不行。自 2009 年起,内部链接上的 nofollow 会丢掉那条链接的那份权重,而不是把它分给你别的 followed 链接。删掉或挪走链接才对。
链接在页面上的顺序重要吗? 位置和显眼程度是有分量的,而且历史上当同一目标在一页里出现多次时,Google 倾向于采用指向它的第一条链接。实操上:把最重要的目的地放在 HTML 靠前的位置,别在同一页里把同一个核心页面链三次。
多久能看到排名变化? 随着 Google 重新抓取并重新处理内部链接,预计 2-4 周内出现渐进式变化,而不是立刻跳变。在 Search Console 的 Performance 和 internal-links 报告里跟踪。
我的首页是 JavaScript 渲染的——那 curl 计数还有用吗? 没用,curl 看到的是渲染前的空壳。改用 DevTools 里的 document.querySelectorAll('a[href^="/"]').length,或者通过 Search Console 的 URL Inspection 工具查渲染后的 HTML。