在蜘蛛池入口页的代码里,rel 属性往往只占几个字符,却会直接影响链接的发现方式和权重传递。很多站点把所有外链一律加上 nofollow,结果入口页的出站链接变得毫无意义;也有人把该标的 sponsored 漏掉,让页面看起来像正常的编辑推荐。理解 rel 属性的作用范围,比记住几个取值更重要。
rel 属性到底在做什么
rel 是 link 元素的「关系」说明,写在 a 标签上时,它描述的是当前页面与目标 URL 之间的关系。搜索引擎读取这个说明后,会据此调整对这条链接的处理方式:是否继续抓取、是否传递权重、是否计入信任度。
需要注意的是,主流搜索引擎早已把 nofollow 从「指令」降级为「提示」。也就是说,标了 nofollow 不代表目标页面一定不会被抓取或收录,只是不再作为权重传递的依据。
入口页常见的几个取值
- nofollow:不想为对方背书,或目标内容不可控时使用。常见于评论区、用户提交内容、付费链接的兜底处理。
- sponsored:明确表示这是付费或合作性质的链接。比 nofollow 更准确,搜索引擎对它的处理也更清晰。
- ugc:标明链接来自用户生成内容,适用于论坛、留言、投稿等场景。
- noopener / noreferrer:属于安全和隐私相关属性,与抓取权重无关,新窗口打开的链接建议带上 noopener。
入口页里哪些链接该标,哪些不该标
蜘蛛池入口页的核心任务是把蜘蛛引向目标 URL,所以内链的处理要格外小心。
- 指向站内目标页的链接,不要加 nofollow。加了之后,蜘蛛虽然可能仍然发现 URL,但传递的信号会弱很多,入口页的价值大打折扣。
- 模板里的导航、面包屑、分类页链接同样不要加。这些是蜘蛛爬行深度的重要通道。
- 页脚的友情链接、合作站点链接,按实际情况标 sponsored 或 nofollow,避免被判定为链接买卖。
- 用户评论、留言板里的链接统一用 ugc 或 nofollow,减少被恶意利用的风险。
- 指向已知死链或临时维护页面的链接,与其加 nofollow,不如直接修掉或返回正确状态码。
不要和 meta robots 混为一谈
rel=nofollow 写在 a 标签上,管的是「这一条链接」;meta robots 里的 nofollow 写在页面 head 里,管的是「整个页面上的所有链接」。如果入口页模板里误加了全局 nofollow,页面上所有内链都会受影响,这类问题在排查时很容易被忽略。
排查入口页链接信号不被传递的问题时,先看单条链接的 rel,再看页面级的 meta robots,最后看 HTTP 响应头里的 X-Robots-Tag。三层都确认过,基本就能定位到原因。
几个容易被忽略的细节
- 多个取值可以并列写,例如 rel=noopener sponsored,顺序不影响解析。
- rel 的值大小写不敏感,但习惯上统一小写,避免模板拼接时出错。
- 由 JS 动态插入的链接,rel 属性同样会被读取,但要确认渲染后的 DOM 里确实存在。
- 跳转链接的中间页如果承担权重传递,中间页自身不应标 nofollow,否则链路在第一步就断了。
上线前的自查顺序
- 抽十条核心内链,确认没有多余的 nofollow。
- 检查页面 head 中的 meta robots,确认没有全局 nofollow。
- 检查服务器返回头里的 X-Robots-Tag,确认没有与之冲突的设置。
- 梳理所有出站链接,按性质分别标注 sponsored、ugc 或 nofollow。
- 用浏览器开发者工具查看渲染后的 DOM,确认 rel 属性没有被脚本覆盖。
rel 属性本身不会让页面被收录,也不会让排名上升。它做的是把「这条链接意味着什么」讲清楚,让搜索引擎少猜一点。对蜘蛛池入口页来说,把该传递的链接干净地传出去,把该标注的链接如实标注,就已经达到目的了。