rel="external"完全无效,因它不是WHATWG/W3C标准链接类型,浏览器直接忽略,不触发行为、不传递语义,搜索引擎也不识别;真正控制新标签页的是target="_blank",安全必备rel="noopener noreferrer"。

rel="external" 不是标准 HTML 属性,浏览器不识别、不生效,也不能提升 SEO 质量。
为什么 rel="external" 在 HTML 中完全无效
WHATWG 和 W3C 的官方链接类型列表里压根没有 external 这个合法值。浏览器遇到它,就像看到 rel="foo" 一样——直接忽略,不触发任何行为,也不添加语义。所谓“告诉搜索引擎这是外链”,纯属误解;Google、Bing 等主流引擎从不解析或响应这个值。
常见错误现象:
- 写了
rel="external"却发现链接没开新页 → 因为真正控制打开方式的是target="_blank",不是 rel - 期望 SEO 工具或爬虫据此识别外链 → 实际日志和 Search Console 中毫无痕迹
- 在严格 DOCTYPE(如 HTML 4.01 Strict)下误以为它能替代
target="_blank"→ 那是过时且错误的认知,现代浏览器早已不依赖此“变通”
真正影响 SEO 的 rel 值只有这三个
Google 自 2019 年起明确支持并区分语义的三个值,它们直接影响权重传递判断,且互斥不可叠加:
-
rel="nofollow":表示“不传递权重”,但页面仍可能被索引(靠 sitemap 或其他内链) -
rel="ugc":专用于用户生成内容(评论、论坛帖),比nofollow更精准表达“未审核、不背书” -
rel="sponsored":必须用于广告、返佣、软文等有商业关系的链接,否则可能违反 Google 政策
注意:rel="nofollow ugc" 合法但冗余,因为 ugc 已隐含不传递权重;rel="external nofollow" 中的 external 仍是无效字符串,仅 nofollow 起作用。
想安全打开外部链接?必须用 rel="noopener noreferrer"
只要用了 target="_blank",就必须配 rel="noopener noreferrer",这不是可选项,是安全底线:
-
noopener切断window.opener,防止 reverse tabnabbing(反向标签劫持)——新页无法跳转或篡改原页 -
noreferrer阻止 Referer 头发送,兼顾隐私;旧版 Safari(11.1 之前)需它才触发noopener行为,所以两者共存最稳妥 - 别只写
rel="noreferrer":规范不保证它在所有浏览器中都切断window.opener;也别只写rel="noopener":虽保安全,但 Referer 仍会泄露来源路径
正确写法:@#@#@#@#@#@#@#@#@#@0
需要标注“外部链接”语义?用 data- 属性更可靠
如果你的真实需求是让 JS 脚本识别外链(比如自动加图标、拦截确认、统计分类),不要污染 rel——它本该描述资源关系(如 stylesheet、author)。
推荐做法:
-
data-external:布尔型,有即表示外链,简洁直观 -
data-link-type="external":更灵活,未来可扩展为"internal"、"download"等 - JS 读取:
el.dataset.external或el.dataset.linkType,无兼容性问题,无语义冲突
复杂点在于:很多人把“想让机器识别外链”和“以为加个 rel 就能 SEO 提升”混为一谈。其实前者靠 data-,后者靠 ugc/sponsored,而 external 两头都不占。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











