跟你的WordPress垃圾评论(Spam)说88

摘要防范WordPress的垃圾评论,抑制Spam的方法:1)安装Akismet插件,几乎可以帮你过滤所有垃圾留言和评论;2)安装Comments Link Redirect插件+robots.txt文件禁止搜索引擎抓取垃圾链接。举一反三,这种方法也可以应用到其它类型网站上。

对WordPress用户来说,最恶心的莫过于垃圾评论这码子事了。垃圾评论无孔不入,你几乎没办法杜绝,除非彻底关闭WordPress的评论功能。可是,一个缺乏互动性、死气沉沉地网站,用户体验方面又是欠佳的。今天,小拼就教你如何防范WordPress的垃圾评论,坚决抑制Spam泛滥。

防范WordPress垃圾评论(Spam)

2015.2月更新:标本兼治:杜绝WordPress垃圾评论终极方法

1)WordPress安装Akismet插件

Akismet(Automattic Kismet)是WordPress的自带插件之一,它几乎可以帮你过滤所有垃圾留言和评论。使用Akismet也非常简单,你只需在WordPress后台的插件管理里启用它。当然,在使用Akismet之前,你需要去Akismet官网获取API Key,一般来说,我们使用Akismet个人版就足够了,主要它完全免费。

Akismet插件过虑WordPress垃圾评论

小拼SEM博客自启用Akismet后,短短一个半月,Akismet竟过滤了7,749条垃圾评论!不难发现,Akismet是一款非常强大地垃圾留言过滤系统,毕竟Akismet的作者也是WordPress的NX创始人Matt Mullenweg。

2)WordPress安装Comments Link Redirect插件

Comments Link Redirect是水煮鱼在Shawn基础上完善的防Spam插件,一定程度上来说,它是Akismet很好的补充。

Comments Link Redirect主要功能就是把Spam中的超链接(留言者网址和留言内容URL)转换成一个跳转链接,形如:

http://www.xp-sem.com/?redirect=http://www.spam.com

这样做有一个好处,即把所有的人的留言或评论超链接转换成?redirect=跳转形式,也是方便我们去屏蔽它。事实上,很多网站已经在这么做了,比如腾讯微博、搜搜问问等,对一些敏感的URL都进行了转义,也是防止Spam的疯狂蔓延。不过,小拼不建议安装Comments Link Redirect插件,多少会影响到WordPress的系统性能。那么,非插件应该如何设置呢?很简单,打开你的WordPress主题目录下的functions.php,随便找个空位置加入如下代码:

//this is start
//comments link redirect
add_filter('get_comment_author_link', 'add_redirect_comment_link', 5);
add_filter('comment_text', 'add_redirect_comment_link', 99);
function add_redirect_comment_link($text = ''){
	$text=str_replace('href="', 'href="'.get_option('home').'/?redirect=', $text);
	$text=str_replace("href='", "href='".get_option('home')."/?redirect=", $text);
	return $text;
}

add_action('init', 'redirect_comment_link');
function redirect_comment_link(){
	$redirect = $_GET['r'];
	if($redirect){
		if(strpos($_SERVER['HTTP_REFERER'],get_option('home')) == false){
			header("Location: $redirect");
			exit;
		}
		else {
			header("Location: http://www.xp-sem.com/");
			exit;
		}
	}
}
//this is end

然后在你的robots.txt文件中新增一行规则,禁止搜索引擎抓取?redirect=形式的URL:

Disallow: /?redirect=*

到这里,WordPress垃圾评论就彻底失去存在意义了,任Spammer再疯狂,也只是做些无用功罢了。

关于WordPress垃圾评论的几点说明

a)目前主流的博客系统,如WordPress、Z-blog等,针对留言或评论者的超链接,已经加入了rel="external nofollow"属性,通过rel标签告诉搜索引擎不要跟踪此超链接,避免博客权重流失至垃圾网站,另外,如果你的网站垃圾链接导出过多,也会影响到自身的搜索引擎表现。不过,并不是所有的搜索引擎都支持nofollow属性,例如百度,而百度又是绝大部分网站最重要地流量来源,所以,为了降低Spam对网站SEO的影响,除了使用评论链接跳转这种形式之外,还需要robots.txt的配合;

b)所有搜索引擎都完美支持robots.txt文件,如果搜索引擎真的如它承诺的一样——严格遵守robots.txt协议的话,那么,利用robots.txt文件就可以让那些Spammer的“外部链接”在WordPress中完全失去意义,至此,你也可以很不屑地跟那些WordPress垃圾评论说88了;

c)上述方法主要是从SEO的角度来考虑的,目的是让WordPress的垃圾评论失效,并不会减少那些垃圾留言的产生,但是,对WordPress的优化效果是显著地。

d)举一反三,不仅仅WordPress可以防范Spam,其它类型网站也同样可以做到,思路基本是一致的:首先,程序上加强安全设置,完善评论过滤机制,比如禁止IP重复提交评论、评论时间间隔等;其次,对那些“漏网之鱼”,可以利用URL跳转技术+robots.txt一网打尽;最后,对抗Spam需要大家团结起来,多多交流,集思广益,让Spammer无路可走。

好了,关于WordPress垃圾评论(Spam)的介绍先到这里,希望能对你有所帮助!使用Akismet + Comments Link Redirect + robots.txt,让WordPress垃圾留言和评论通通见鬼去吧:-)

目前留言:4   其中:访客:4   博主:0

  1. 翔耔

    博主,我的怎么跳不动啊。

    • 小拼

      @翔耔
      问题出在这一句strpos($_SERVER['HTTP_REFERER'],get_option('home')) == false,原文已修正,谢谢反馈!

  2. 翔耔

    @小拼
    我想说的是,还是跳不动。。可能是我的问题吧。。

    • 小拼

      @翔耔
      这个可能和你的主题有关系了,可以用默认模板本地测试下,或者尝试逐步输出$redirect值,测试出问题在哪里。

评论加载中...

给我留言

图片 表情