做站内优化时,nofollow 是个容易被随手加、也容易被误解的属性。有人以为加上它链接就不会被蜘蛛发现,有人以为它能省下抓取量,结果把本该被发现的页面挡在了路径之外。这篇文章只聊一个问题:加了 nofollow 的链接,蜘蛛到底还走不走。
nofollow 管的是“投票”,不是“走路”
从属性设计上说,rel="nofollow" 表达的是一种态度:我不为这个链接背书。搜索引擎对它的处理是“不传递权重信号”,而不是“禁止跟踪这个 URL”。链接本身依然是 HTML 里的一条可解析地址,蜘蛛在抓取当前页面时通常仍然能看到它。
把这一点记住,很多困惑就解开了:
- nofollow 不阻止蜘蛛抓取目标页面,只是不把当前页的推荐关系算进去;
- 目标页面能否被收录,取决于它自己是否可抓取、内容是否有价值,而不是取决于入口带不带 nofollow;
- 加 nofollow 也不等于节省抓取量,真正减少无效抓取的是让蜘蛛在路径上少遇到没有价值的 URL;
- 不同搜索引擎对 nofollow 的处理细节有差异,具体以各家官方文档为准。
nofollow 与 robots.txt:一个拦投票,一个拦抓取
这两者经常被混着用,其实方向相反。robots.txt 的 Disallow 是不让蜘蛛请求这个 URL,页面内容抓不到;nofollow 则是允许蜘蛛正常抓取,只是不承认这条链接的推荐意义。
所以如果要阻止某个页面被抓取,用 robots.txt 或 noindex;如果只是不认可链接关系,比如用户评论、广告位、付费合作,用 nofollow 系列属性。用错了,往往是该挡的没挡住,该被发现的没被发现。
站内导航和分页加 nofollow,代价是什么
这是实际站点里最常见的误用。把栏目导航、分页、面包屑、底部链接统统加上 nofollow,本意多半是集中权重,结果是把蜘蛛的行走路径削掉了一大截。
- 主导航加 nofollow:蜘蛛进站后能顺着走的路变少,深层页面更难被定期访问;
- 分页加 nofollow:列表页到详情页的通道被削弱,新内容上线后被发现的速度可能变慢;
- 面包屑加 nofollow:层级关系和回链路径变模糊,对梳理抓取路径没有帮助;
- 为了防权重流失给内链加 nofollow:站内链接本身不涉及外部权重概念,这种做法通常得不偿失。
换句话说,站内链接是 URL 发现的主要通道,除非有明确理由,一般不需要对它做 nofollow 处理。
ugc 与 sponsored:该用的时候别省
rel="ugc" 用于用户生成内容里的链接,rel="sponsored" 用于广告、赞助、付费合作链接。这两个属性的意义是向搜索引擎说明链接的来源性质,用对了不会有副作用。
- 评论区、论坛帖、用户资料里的外链,用 ugc 比较合适;
- 软文、投放位、返佣链接,用 sponsored;
- 没有明显商业关系的外链,保持普通链接即可,不必一律加上 nofollow;
- 这些属性同样不改变蜘蛛能否看到链接,改变的是链接关系如何被解读。
整页级别的 nofollow:meta 与响应头
除了写在单个 a 标签上,还可以通过 meta name="robots" content="nofollow" 或 X-Robots-Tag 响应头,让页面里所有链接都带上 nofollow 语义。这个范围比单条链接大得多,用之前要确认页面确实不承担导流职责。
一个常见组合是 noindex, nofollow 用在后台页、搜索结果页、测试页上。但如果把首页或栏目页误设成整页 nofollow,等于把站内最重要的几条主干道全部标记为“不推荐”,之后的抓取路径会明显变窄。
落地时的一个检查顺序
- 先拉一份站内链接清单,标出带 nofollow、ugc、sponsored 的链接;
- 区分这些链接属于哪一类:导航、列表、正文、评论还是广告;
- 导航、列表、正文内链若被加上 nofollow,逐个确认是否有必要,多数可以直接去掉;
- 检查是否有页面级 nofollow 被误配到重要入口;
- 再看 Sitemap 与主动推送是否覆盖了这些链接指向的 URL,让发现通道不止一条;
- 改完之后对照抓取日志,观察相关目录的访问频次和抓取深度是否恢复。
最后提醒一句:nofollow 是个语义属性,不是抓取开关。想控制蜘蛛走不走,先分清你想控制的是抓取本身还是链接关系判断,再选对应的工具,才能避免既没省下抓取,又堵住了 URL 发现的路径。