SEO SearchTerms Tagging 2插件可以帮助我们很好的完成on page SEO,on page SEO可以理解为页内优化,该插件会在文章末尾添加Incoming Search Terms,显示访客通过哪些关键词找到了文章。但前几天遇到一个问题,recent terms中多了很多随机字符串关键词。
问题描述
用过这个插件的朋友都知道,该插件选项页面提供了统计数据,可以显示最近访客通过搜索哪些关键词进入了自己站点的哪些页面,但最近出现了好多随机字符串,每隔几分钟就会出现一个,字符串仅由字母组成,毫无意义。由于发现文章的关键词会显示在文章结尾,所以这些字符串也会被显示在blog上,很不友好。
可能的原因
能造成这种情况的可能性之一是referer spam,垃圾网站通过curl或socket命令向某些网站发送伪造的referel信息,导致目标网站的统计信息中出现这些网站的记录,认为这些网站带来了流量,但实际上流量几乎为0。这样做的用处就是,如果目标网站恰好将自己的访问记录公之于众,这些垃圾站就能获得大量的反链和流量,在垃圾站放上病毒或者无数的广告,就可以盈利。
但我的问题似乎有略有不同,如果只是referel spam,应该不会有关键词存在,SEO SearchTerms插件只会解析搜索引擎的链接,需要符合一定的格式。于是,试了一下谷歌搜索的跳转链接能否修改关键词,结论是可以。
例如在google中搜索solagirl,出现的跳转链接是这样
http://www.google.com.hk/url?sa=t&rct=j&q=solagirl&source=web&cd=1& ved=0CGcQFjAA&url=https%3A%2F%2Fsolagirl.net%2F&ei=bXLYT6LdF-iaiAea9KSYAw& usg=AFQjCNG-KA9P-QjsBn_3reuhOrFcyRv4tw&cad=rjt
注意参数中有一个“q”参数,用来记忆关键词的,将q后面的关键词替换成任意字符串(空格用+替代),再访问这个链接,依然可以到达我的网站,于是SEO SearchTerms就会记录这个关键词。
当然, 我不清楚弄一大堆随机字符串在别人的网站上有什么用,说实话我好奇的不得了。每隔几分钟就一个,频率高的让人删的手疼,所以只好修改插件。
插件里有一个检测bad words的函数,在里面加了点过滤,如果遇到关键字只是一个单词(没空格,没任何特殊符号),就检查一下,写了一个关键字白名单,如果能匹配到白名单中的单词,就记录,如果不符合,就pass掉。这样会漏掉一些关键字,不过我写的中文博客,用纯英文能搜索到的不多,用一个单词搜索的更少,损失掉的也不算什么。
该插件会在文章留下一些footprint,比如Incoming Search Terms,如果垃圾站通过软件扫描到网站上有这个字样,就会认为该网站使用了此插件,并进行上述攻击。最好不要出现这些footprint。
我今天刚用,感觉还不错~