wordpress去除replytocom评论链接影响收录
引言:此文由子域名转移而来,因为细微强迫症和放弃子域名而不舍得完全丢弃,所以将会逐步第二次转移文章到主域名上来,二者主题(阿里白秀和D8)均来自大前端,追求完美的同时有一丝小懒,主题就不换了,D8主题用起来挺好。
众多的wordpress网站,对于wordpress的评论链接有一个问题,那就是会出现这样带replytocom参数的链接(http://a.com/a.html?replytocom=12#respond),这样一来对网站收录不友好,对于这点百度也有动作:
百度cannio标签说:各位站长在设置Canonical标签前,仔细检查两个网页是否真的完全相同——一旦百度发现其中一个Canonical标签有问题,会不信任该站点的所有Canonical标签。 这样的抓取很容易导致网站被k,这里说下几种解决方法。
以下是几种解决办法(推荐第三种):
方法一:robots.txt屏蔽该链接即为最简单的方法。
- User-agent: *
- Disallow: /*?replytocom=
方法二:在链接上加上nofollow,这个也容易理解。
- add_filter('comment_reply_link', 'add_nofollow', 420, 4);
- function add_nofollow($link, $args, $comment, $post){
- return str_replace("href=", "rel='nofollow' href=", $link);
- }
方法三:替换replytocom链接。
- add_filter('comment_reply_link', 'add_nofollow', 420, 4);
- function add_nofollow($link, $args, $comment, $post){
- return preg_replace( '/href=\'(.*(\?|&)replytocom=(\d+)#respond)/', 'href=\'#comment-$3', $link );
- }
因为不是所有的搜索引擎都支持robots协议跟nofollow属性而且蜘蛛不识别带#的链接,所以推荐第三种将replytocom替换为#comment-评论id的方法。