rel="nofollow"是提示搜索引擎放弃投票权而非屏蔽链接,用户可正常点击,目标页仍可能被收录;它仅对静态标签有效,须小写带引号无空格,常需与noopener noreferrer共用以保障安全。

rel="nofollow" 不是屏蔽链接,而是放弃投票权
加了 rel="nofollow" 的链接,用户照常点击跳转,页面照常加载,搜索引擎也照常可能收录目标页——它只表示“我不为这个链接背书,不传递权重”。很多人看到目标页被收录了,就以为属性失效,其实不是。Google 自 2019 年起明确将其视为 hint(提示),不是强制指令;只要其他页面还链向它,爬虫照样会发现。
-
rel="nofollow"对<link>标签无效,只作用于<a>标签的静态 HTML 写法 - JavaScript 动态创建的
<a>并设置rel="nofollow",多数搜索引擎不识别 - 错误写法包括:
rel=nofollow(缺引号)、rel="no follow"(带空格)、rel="NOFOLLOW"(大小写虽兼容但易出错) - 正确且唯一推荐写法是:
rel="nofollow",小写、带双引号、无空格
target="_blank" 必须配 rel="noopener noreferrer",nofollow 是额外选项
单独用 target="_blank" 有真实安全风险:新打开的页面可通过 window.opener 修改原页面地址,实现钓鱼式重定向(reverse tabnabbing)。这不是理论漏洞,TikTok 2023 年已被利用过。
-
rel="noopener"切断window.opener引用,让新页面无法访问原页面上下文 -
rel="noreferrer"同时抑制 Referer 请求头发送,隐藏来源 URL - 二者必须共存:
rel="noopener noreferrer",顺序无关,但缺一不可;旧版 Safari 中仅写noreferrer不保证切断 opener -
rel="nofollow"可叠加进去,比如:rel="noopener noreferrer nofollow",多个值用空格分隔
该用 rel="ugc" 还是 rel="sponsored"?语义比 nofollow 更重要
Google 已明确推荐用更具体的值替代泛用的 rel="nofollow",因为语义越精准,越利于长期 SEO 健康。混用或错用会影响搜索引擎对链接意图的理解,甚至触发人工审核。
- 用户生成内容中的外链(评论、论坛帖、留言板签名)→ 用
rel="ugc",比rel="nofollow"更准确表达“我们不审核,但也不认为有害” - 广告、联盟、返佣、软文推广类链接 → 必须用
rel="sponsored",仅加rel="nofollow"不够,Google 要求商业关系必须显式声明 - 三者可共存:
rel="ugc sponsored"合法,但冗余;rel="nofollow ugc"仍有效,只是不如单用ugc简洁 - 内部导航链接别滥用 nofollow —— 容易割裂网站结构,让爬虫难以理解核心内容路径
rel 属性写错就等于没写,且浏览器通常不报错
rel 是个严格依赖拼写的属性,写错一个字母、多一个空格、少一对引号,浏览器就静默忽略。它不像 CSS 那样容错,也不像 JS 那样抛异常,而是直接当不存在处理。
立即学习“前端免费学习笔记(深入)”;
-
<a href="https://example.com" rel="nofollow">Link</a>✅ 正确 -
<a href="https://example.com" rel=nofollow>Link</a>❌ 缺引号,无效 -
<a href="https://example.com" rel="nofollow ugc">Link</a>✅ 多值合法 -
<a href="https://example.com" rel="nofollow, ugc">Link</a>❌ 逗号分隔,无效 -
<link rel="stylesheet" href="style.css">写成rel="style"→ CSS 不加载,且无任何控制台警告
noopener 或写错格式,这类问题上线后几乎不会被肉眼发现,只能靠 Lighthouse 或手动检查源码确认。



















