共计 1515 个字符,预计需要花费 4 分钟才能阅读完成。
对于属性 rel 可以参考 MDN文档 上面描述了这个属性在各种标签下可选的值。对于<a>
的 rel
属性标签主要关注这四个值:
- nofollow 表示当前文档的原作者或出版商不认可被引用的文件。
- external 它表示引用的文档不是当前网站的一部分。这可以与属性选择器一起使用,使外部链接的样式向用户表明他们将离开当前网站。
- noopener 元素的属性noopener关键字指示浏览器导航到目标资源,而不授予新的浏览上下文对打开它的文档的访问权限 – 通过不在打开的窗口上设置属性。
- noreferrer包括这个值使得 referrer 未知(不会包含 Referer 标头),并创建一个顶级的浏览上下文,就像 noopener 也被设置一样。
浏览器安全相关
noopener
用于浏览器安全防护,防止钓鱼攻击。 当链接使用 target="_blank"
打开新页面时,新页面可以使用以下语句控制父页面:
if (window.opener) {
window.opener.location="https://nenufm.com?referrer="+document.referrer;
}
链接加上rel=“noopener”后,则新页面被限制访问window.opener。
noreferrer
与noopener
类似,设置了rel="noreferrer"
后,链接的新页面被限制访问window.opener
。同时,新页面无法获取document.referrer
信息,该信息包含了来源页面的地址。因为一些旧的浏览器不支持noopener,所以为也兼容,会同时设置两个属性值rel="noopener noreferrer"
。
SEO 优化相关
nofollow
用于告知搜索引擎,当前链接不需要追踪,其内容是没有价值的,不传递权重。用来调整网页链接的权重,集中站点权重。添加nofollow后,爬虫不会追踪有此标记的链接。并且,不会传递当前站点的权重到新的链接,避免被分散。可以把权重引导到更重要的页面,有利于提升网站的排名。 – 反垃圾链接 网站通常有留言功能,一些人会利用这个功能,在评论的时候,留下自己站点的链接。加上nofollow进行屏蔽后,可以防止当前站点的权重流失。 – 节约蜘蛛资源 每个站点,搜索引擎每天派出的爬虫数是一定的。尽量把爬虫引导到有用的链接上,有利于重要页面的收录。
external
rel=“external”和target=”_blank“的作用一样,都是在新窗口中打开当前链接。 如果网点采用严格的DOCTYPE声明,则target=”_blank“会失效。而rel=”external”仍可以正常工作。告知搜索引擎,当前链接是外部链接。
Google 搜索文档参考
对于希望 Google 无任何限定条件便直接提取和解析的常规链接,无需添加 rel 属性。
rel="sponsored"
标记广告链接或付费展示位置链接(通常称为“付费链接”)以前推荐使用 nofollow 属性,现在,您仍可以使用该属性进行标记,但更建议使用 sponsored 标记。
rel="ugc"
标记用户生成的内容(例如评论和论坛帖子)的链接。
rel="nofollow"
如果其他值不适用,并且希望 Google 不跟踪您网站上的出站链接,或不从您的网站上抓取链接页,使用 nofollow
。
总结
日常在使用中对于文章中所引用的链接 添加 rel="noopener"
就足够了。在 wordpress
中会对所有文章中的网站外部连接都添加rel="noopener"
, 这并不会影响网站的SEO。对于页面上那种必须要求添加的,如备案地址这些链接添加 rel="noopener nofollow"
,用来明确阻止搜索引擎继续爬取下去。