仔细的观察下wordpress的留言链接,你会发现会出现这样的结构http://a.com/a.html?replytocom=12#respond ,而这样的链接跟a.com/a.html是一个页面,如果收录的话会很不利,而且百度最新的cannio标签也说了 各位站长在设置Canonical标签前,仔细检查两个网页是否真的完全相同——一旦百度发现其中一个Canonical标签有问题,会不信任该站点的所有Canonical标签。 这样的抓取很容易导致网站被k,这里说下几种解决方法。

第一种方法应该就是大家最容易想到的robot方法了,利用robots.txt屏蔽是最简单的解决方法了

  1. User-agent: *
  2. Disallow: /*?replytocom=

第二种方法就是跟带replytocom的链接加上nofollow属性,这样蜘蛛同样不会抓取,方法就是在当前使用主题的function中加入以下代码

  1. add_filter(‘comment_reply_link’, ‘add_nofollow’, 420, 4);
  2. function add_nofollow($link, $args, $comment, $post){
  3. return str_replace(“href=”, “rel=’nofollow’ href=”, $link);
  4. }

第三种方法就是移除replytocom这样的链接
因为不是所有的搜索引擎都支持robots协议跟nofollow属性的,像360那种bug的存在我们上面的两种方法就没有作用了,我们可以使用第三种方法就是将replytocom替换为#comment-评论id,因为蜘蛛是不识别带有#号的链接的,这样也可以达到屏蔽的效果

  1. add_filter(‘comment_reply_link’, ‘add_nofollow’, 420, 4);
  2. function add_nofollow($link, $args, $comment, $post){
  3. return preg_replace( ‘/href=\'(.*(\?|&)replytocom=(\d+)#respond)/’, ‘href=\’#comment-$3‘, $link );
  4. }