给博客评论区链接增加跳转页并修改 nofollow 设置
简而言之就是本站被标记为风险网站了,折腾一番后发现是之前有个评论的站点域名到期后被钓鱼网站用了,我这边就被连坐了。之前就知道直链有这种风险,但想着小破站的评论量这么低,应该遇不到吧,结果打脸了。网上一番学习后,发现大家一般会用 2 种处理方式。
- 超过X月的评论,自动取消超链接。
- 给链接加上跳转页,设置 nofollow
确定解决方案
鉴于我本来就有外链跳转页,所以决定就用给链接加上跳转页的方式。
如何修改
如何修改呢?将以下代码片段加进主题function.php中即可,如果想要使用,请根据你自己主题做适配性修改,我只是从第9行的代码,改成了第11行代码的样子。
将评论区填写的地址替换为带goto跳转的版本。
function remove_comment_links() {
global comment;url = get_comment_author_url();
author = get_comment_author();
if ( empty(url ) || 'http://' == url )return = author;
else
//原始状态,仅添加nofollow,直链。
//return = "<a href='url' rel='nofollow' target='_blank'>author</a>";
//使用跳转路径,必须根目录有 goto文件夹 放置index.php跳转文件,做了伪静态
return = "<a href='/goto/?url=url' rel='ugc external noopener nofollow' target='_blank'>author</a>";
returnreturn;
}
add_filter('get_comment_author_link', 'remove_comment_links');
remove_filter('comment_text', 'make_clickable', 9);
关于 nofollow 外链是否传递权重
nofollow 标签有几种
页面的 nofollow 标签目前谷歌和必应所承认的有4种状态
- 什么也不写:当做默认的 follow 链接
-
rel="sponsored"
: 用于标注广告、赞助商或其它因利益而存在的链接。(比如AFF返利,赞助商) -
rel="ugc"
: 这个新属性/标签用于UGC(用户产生内容)。(如论坛的帖子、博客的评论之类的) -
rel="nofollow"
: 这个老的属性/标签依然用于没有任何赞助、背书意味的链接,不直接传递排名权重。
后边三种其实都算 nofollow 的,都不会被直接索引,只是允许细化区分,以便于搜索引擎参考。
根据谷歌和必应的说法,对于一个非 follow 的直链外链,他们不会100%传递权重,会把这个网页上的标签当作一种建议,会根据算法综合其它因素来决定分多少权重。百度目前没听说跟进,只认 nofollow ,并且100%不传递权重。(能查到的百度这一块儿最近的是 2022 年的说法)
rel="noopener"
可防止新页面访问 window.opener 属性,并确保它在单独的进程中运行。rel="noreferrer"
具有和noopener
相同的效果,但会进一步阻止将 Referer 标头发送到新页面。rel="noopener"
告诉搜索引擎,这个链接不是本站链接,对于比较新的浏览器,其作用相当于target='_blank'
。
总结一下 nofollow
- 谷歌和必应搜索引擎,相比较更重视来自高权重页面的 nofollow 链接,而忽略低权重页面的 follow 链接。比如本站的一个高排名页面明显是被知乎的多次引用带出来的。
- 为了搜索引擎兼容性最好在标注 ugc 或 sponsored 后,重复打上 nofollow 标签。
- 非 follow 的链接不会被搜索引擎主动编入索引,但如果链接已经被编入索引,其他站点内对其的 nofollow 链接,会根据算法得到部分 SEO 权重。
- 最好可能情况下,一切非你自己控制的用户生成的外链,都设置为:
rel="ugc external noopener nofollow"
标记外链为:用户生成、非本站、传递Referer 标头但防止新页面访问 window.opener 属性、阻止蜘蛛爬行。 - 默认状态下 WordPress 评论区是 ugc + nofollow 的,部分主题会修改这部分,需要自己检查一下,我的主题是从比较老的版本一路改上来的,当年 WP 还是不默认带 nofollow 的配置,所以是主题自己实现的,就只增加了 nofollow ,结果这次还是被连坐了。(可见只有 nofollow 不是免死金牌,还是要为外链负责的)
- 但这里有个疑惑查了一圈也没明确答案,直链设置
rel="ugc external noopener nofollow"
与不动链接属性,使用跳转页并在跳转页中设置<meta name="robots" content="noindex, nofollow" />
,对于搜索引擎有什么区别?
皇家元林
2024-06-21 23:03
百度那个B把我的博客判为低质量网站,不知道跟这个可有关系?
去年夏天
2024-06-22 12:08
作为无备案的境外IP网站,百度压根就不收录我的网站:joy:
梦浪的小虾米
2024-06-20 19:26
这个就叫专业
Kevin's Space
2024-05-07 16:11
我感觉现在设置nofo效果差不多,但是设置noindex,是确实不会被索引的~
石樱灯笼
2024-04-28 22:25
谷歌纯扯蛋,Edge Legacy 和 Internet Explorer 根本就不识别noopener。谷歌那精神病没事就睁眼说瞎话然后靠其影响力把所有人都搞瘸了。
石樱灯笼
2024-04-28 22:03
只要链接不是本站的,都应该加noopener。
这个字段本质上不是给搜索引擎用的,是给浏览器用的。对于浏览器,子页面可以直接调用母页面的权限,既是一个功能特性,又是一个安全隐患。
早期浏览器不支持a标签的rel=”noopener”,以至于wordpress曾有一阵发疯似的见到a标签就添加nofollow。
参考资料:https://mathiasbynens.github.io/rel-noopener/
去年夏天
2024-04-28 22:11
是的,看谷歌的Developers docs Links to cross-origin destinations are unsafe 的说法是:从 Chromium 版本 88 开始, target=”_blank” 的链接默认启用 noopener 。明确指定 rel=”noopener” 有助于保护旧版浏览器(包括 Edge Legacy 和 Internet Explorer)的用户。
石樱灯笼
2024-04-28 22:26
谷歌纯扯蛋,Edge Legacy 和 Internet Explorer 根本就不识别noopener,必须用noreferrer才行。
谷歌那精神病没事就睁眼说瞎话然后靠其影响力把所有人都搞瘸了。