像PR劫持一样,对一些比较难以预防的黑帽陷害手法,本来不太想积极讨论,因为有很多时候会对无辜的站长造成很大的伤害。
在前两天的SEO案例中,提到了代理劫持(proxy hijack),有人问是怎么回事,今天就解释一下。像这种东西都是双刃剑,不怀好意的人看了,又多了一个损人利己的工具。另一方面,已经深受其害的站长看了,也许对他们预防和恢复有正面意义。
代理劫持简单说就是搜索引擎收录了通过代理服务器浏览的网页,而把原本真正的网页惩罚或删除。
国内站长对代理服务器(proxy server)肯定都很熟悉。在使用代理服务器上其他网站时,浏览器显示的URL通常是类似于:
http://www.proxysite.com/proxy/www.proxysite.com
其中proxysite.com是代理服务器域名,proxysite.com是真正要访问的网站。
在浏览器打开这种URL当然没问题,但如果搜索引擎抓取了这种URL,就会对原来的网站形成完全复制内容网页。虽然复制内容网页在绝大部分情况下只是被忽略不计,但在某些情况下,搜索引擎判断错误,会把原始的版本当做是复制而被惩罚甚至被删除。
一般情况下,通过代理访问的URL不应该被收录。但如果有人恶意链接向这个代理URL,搜索引擎也会访问和抓取。
怎么预防或恢复被代理劫持的排名呢?
最简单的,如果看到自己的网页被代理劫持,查一下那个代理服务器的IP地址,自己服务器上把那个IP地址屏蔽掉,禁止抓取。
但有的时候,代理服务器的IP地址会有变化,而且代理服务器又那么多,很可能屏蔽不过来。更复杂的方法是服务器端通过程序鉴别来访问的是否是搜索引擎蜘蛛,是否是真正的搜索引擎蜘蛛。
有些情况下,搜索引擎蜘蛛通过代理URL访问时的浏览器类型(User Agent),还是搜索引擎的蜘蛛。不过,有的代理服务器可能设置为隐藏原始IP地址,隐藏User Agent,这就给判断是否是搜索引擎蜘蛛造成很大困难。
这时网站程序就需要主动验证来访的是否是真的搜索引擎蜘蛛。如果程序检验确实是真实的蜘蛛,就返回正常页面。如果检测不是蜘蛛是正常用户,或是假冒的蜘蛛,那么返回的网页都加入noindex,nofollow标签。这样这些原始网页通过代理访问时,都不能被搜索引擎所抓取。
Google2月份发表在黑板报及网站管理员博客的翻译Matt Cutts的怎样验证Google蜘蛛帖子(Matt  Cutts的原贴没发在自己的博客,而是发在英文版网站管理员博客),不是发着玩的,而是有很深的意义。从目前零个引用链接和评论看,大部分人不知道这个帖子有什么用。
按说搜索引擎对这种代理劫持应该有办法判断,不然这就成了一些人可以陷害竞争对手的简易方法。不过,任何算法都有漏洞,就算算法能99%的正确判断,但是漏网的那一个错误就可能使无辜的网站被删除。