我们曾帮助一位用户,其网站访客在点击正常外部链接后被重定向到不安全网站。罪魁祸首是一段缺失的小代码,它造成了安全风险。
当你看到像 rel="noopener" 这样的技术术语时,感到好奇甚至困惑是完全正常的。你可能会想它是做什么的,以及你的网站是否需要它。
幸运的是,你不需要成为开发者就能保持网站安全。猫哥团队已为数千个网站提供安全服务,我们很清楚如何处理这些后台设置。
让我们看看这个小小的文本属性究竟做了什么,以及它如何保护你的读者。别担心,添加 rel="noopener" 对网站访客完全不可见。它不会改变链接的颜色,也不会影响新标签页打开的速度。它只在后台工作。

WordPress 中 rel=”noopener” 是什么?
当你向 WordPress 网站添加链接时,可以使用 HTML 属性来控制点击链接时的行为。例如,创建链接时,有一个开关可以让你设置在新标签页中打开它。

注意,链接中已添加了一个 HTML 属性:rel="noopener"。该属性用于解决一个安全漏洞。
<a href="http://example.com" target="_blank" rel="noopener">外部链接</a>
当你使用 target="_blank" 让链接在新标签页中打开时,默认情况下后台会发生一些潜在意外的事情。新标签页实际上会与原始标签页建立一种连接。这种连接是通过浏览器中的 window.opener 实现的。新标签页中的页面可以访问甚至控制原始标签页的某些属性,例如更改页面地址(window.opener.location)。这就会造成一种名为 “反向标签劫持 (Reverse Tabnabbing)” 的安全漏洞。
想象一下,你点击了一个受信任网站上的链接,结果它在新的标签页中打开了一个恶意页面。由于 window.opener 连接的存在,那个恶意页面可能会将你刚才查看的原始信任页面篡改为一个虚假的登录页面(钓鱼诈骗),从而在你切换回原始标签页时欺骗你。
noopener 链接属性正是为了阻止这种安全风险而设计的。当你为在新标签页中打开的链接添加 rel="noopener" 时,你告诉浏览器 不要 在两个标签页之间创建 window.opener 连接。这可以保护你的用户免受诈骗和钓鱼攻击。
rel=”noopener” 如何影响你的 WordPress SEO?
它不影响。尽管 rel="noopener" 属性提高了 WordPress 网站的安全性,但有些用户因为担心影响 SEO 而避免使用它。但这只是个误解。它对网站的 SEO 排名或整体 WordPress 性能没有任何影响。
“noopener” 和 “nofollow” 有什么区别?
很容易混淆 rel="noopener" 和 rel="nofollow",但它们是完全不同的属性。noopener 属性防止网站遭受跨站攻击,提升 WordPress 安全性。而 nofollow 属性则防止网站将 SEO 链接权重传递给被链接的网站。
搜索引擎在跟踪网站链接时会考虑 nofollow 属性,但不会考虑 noopener 标签。nofollow 属性告诉搜索引擎不要将任何 SEO 权威传递给链接的目标网站。虽然 WordPress 块编辑器内置了为链接添加 nofollow 的开关,但通常需要插件才能实现更高级的控制。例如,你可能想自动为所有外部链接添加 nofollow 标签,这时就需要一个 SEO 插件。如需了解更多,请参阅我们的文章《如何在 WordPress 中为链接添加标题和 nofollow》。
rel=”noreferrer” 会影响 WordPress 中的联盟链接吗?
在旧版 WordPress 中,rel="noreferrer" 标签也会自动添加到链接中。虽然大多数联盟计划使用 URL 参数(因此不受影响),但 noreferrer 标签偶尔会隐藏联盟后台和分析工具中的跟踪数据。因此,WordPress 在 5.3.1 版本中移除了 noreferrer 标签。你不再需要担心它会影响你的联盟链接。其次,大多数联盟营销者会使用链接隐藏插件来处理联盟链接。通过链接隐藏,用户点击的联盟链接实际上是你自己网站的 URL,然后重定向到目标 URL。
如何在 WordPress 中禁用 rel=”noopener”?
无需从网站链接中移除 rel="noopener"。它有利于网站安全,且对性能或 SEO 没有任何影响。
如果你必须移除它,则需要禁用 WordPress 的 Gutenberg 块编辑器并使用经典编辑器。因为如果手动从链接中移除 rel="noopener",块编辑器会自动重新添加它以保持网站安全。禁用块编辑器后,你需要将代码片段添加到主题的 functions.php 文件或 WPCode 插件中(推荐)。你可以通过《如何轻松在 WordPress 中添加自定义代码》指南了解如何使用 WPCode 免费插件。只需将以下代码复制到一个新的 PHP 代码片段中:
add_filter('tiny_mce_before_init','wpb_disable_noopener');
function wpb_disable_noopener( $mceInit ) {
$mceInit['allow_unsafe_link_target']=true;
return $mceInit;
}

确保将“激活”开关打开,然后点击“保存代码片段”按钮。这将阻止 WordPress 为新链接添加 rel="noopener"。你还需要手动编辑旧链接以移除该属性。
为了更精细地控制链接属性而无需触碰 HTML 代码,我们推荐使用 All in One SEO (AIOSEO) 插件。虽然 WordPress 会自动处理安全,但 AIOSEO 让你轻松在块编辑器的链接弹出窗口中添加类似 nofollow 或 sponsored 的 SEO 属性,帮助你管理外部链接以实现 SEO 最佳实践。

关于 rel=”noopener” 的常见问题
以下是关于 WordPress 中“noopener”属性的一些最常见问题的解答。
1. 使用 rel=”noopener” 的主要目的是什么?
主要目的是安全。它防止新标签页控制打开它的原始标签页,从而保护你的访客免受恶意钓鱼攻击。
2. rel=”noopener” 对 SEO 好吗?
rel="noopener" 属性对网站 SEO 没有直接影响,无论是正面还是负面。其功能纯粹是为了安全,搜索引擎不会将其作为排名因素。
3. 我应该从链接中移除 rel=”noopener” 吗?
不,没有理由移除 rel="noopener"。它提供了重要的安全优势,且对 SEO 或网站性能没有负面影响,因此最好保留它。
4. WordPress 会自动添加 rel=”noopener” 吗?
是的,WordPress 会自动为设置为在新标签页中打开的链接添加 rel="noopener"。这一重要的安全功能最早在 WordPress 4.7.4 中引入,是现代块编辑器的标准部分。
关于在 WordPress 中使用链接的更多资源
我们希望这篇文章帮助你了解 WordPress 中的 rel="noopener"。你可能还想查看其他关于在 WordPress 中使用链接的指南:
- 《在 WordPress 中添加链接的初学者指南》
- 《如何在 WordPress 中在新窗口或标签页中打开外部链接》
- 《如何在 WordPress 中添加 Nofollow 链接(简单指南)》
- 《如何在 WordPress 的插入链接弹出窗口中添加标题和 NoFollow》
- 《如何在 WordPress 中为所有外部链接添加 Nofollow》
- 《如何在 WordPress 中跟踪链接点击和按钮点击(简单方法)》
- 《如何在 WordPress 中跟踪出站链接》
- 《如何在 WordPress 中更改链接颜色(初学者指南)》
- 《内部链接 SEO:最佳实践终极指南》
- 《如何在 WordPress 中预加载链接以加快加载速度》
- 《如何在 WordPress 中查找和修复损坏的链接(分步指南)》
- 《最佳内部链接插件(自动 + 手动)》
如果你喜欢这篇文章,请订阅猫哥的 YouTube 频道获取更多 WordPress 视频教程。你也可以在 Twitter 和 Facebook 上找到我们。
关于服务器推荐,我们强烈推荐 Hostinger,它性能出色且性价比高。点击这里查看详细推荐:猫哥的服务器推荐。如果你正在进行 GEO 或 SEO 优化,欢迎参考我们的内部指南:GEO 与 SEO 优化策略。
