谁偷走了我的流量?

The domain dayanjia.com (dayanjia) has reached 80% of its bandwidth limit (4810.18/6000.00 Megs).
我顿时一惊,我在胡戈戈那里买的主机一个月流量6GB,按理说几乎用不完的,但是今天才3月18日,怎么都已经消耗了80%了啊?!今晚登陆cPanel一看,居然已经用掉了将近5000MB了。这不禁让我大吃一惊,该不会是我的博客访问量暴增吧?嘿嘿~~不过我对这种小概率时间发生并不抱多少希望。还好,主机管理页面提供了Webalizer和Awstats两款统计工具,能让我清楚地看到这些流量究竟去了何处。经过一番排查,幕后凶手终于露出水面。最终令人惊讶的结论是,一款我曾经安装过但后来卸载了的Wordpress插件Global Translator和百度搜索爬虫联手作案吃掉了这些流量!
疯狂的Baidu Spider
根据Webalizer的统计数据,3月份本博客流量的前四名来源User agent均为搜索引擎爬虫(囧rz),但是这其中最嚣张的就算百度的Spider了,竟然有223808次点击,和第二名的Google Bot完全不在一个数量级上。
万恶的Global Translator插件
在cPanel上查看最近访问者的浏览日志,可以发现大多数都是来自百度爬虫。而这些爬虫访问的页面全都是dayanjia.com/fr、dayanjia.com/ko这样带有语言标示的URL,这不禁让我想到了曾经安装过但是后来删掉的一款WordPress插件——Global Translator。
Global Translator是一款Wordpress上非常受欢迎的翻译类插件,它与其他同类插件相比最大的特色就是能够在后台生成调用网页翻译工具(例如Google翻译)翻译后页面的缓存,此外还支持与另一款Wordpress插件Google XML Sitemap联动,将多语言的页面加入Sitemap中。诚然,这个插件对于博客的推广是很有好处的,可以吸引更多国外的人来访问你的博客(尽管Google Translation的翻译时分蹩脚)。但是,那无数的缓存文件肯定会让人抓狂!上个月我将网站迁移到新买的主机上时,就遇到了这个问题,数不胜数的缓存文件用FTP下载回来再上传回去简直是一种折磨。于是我干脆放弃了那些缓存文件,迁移主机时把那个插件也删掉了。但是没想到,请神容易送神难,删掉后的Global Translator“阴魂不散”,直接影响了搜索引擎的抓取工作,更令百度的爬虫陷入超级赛亚人的疯狂访问状态。
凡是我曾经在Global Translator中打开了翻译功能的语言,在插件删掉后,相应的URL依然可以正常命中(见上图),不过有些返回值是301(永久重定向),而有些是200(成功)。从下图的对比中我们可以清楚地看到插件卸载后的遗留问题:
症结所在
看到这里想必你也猜到问题根源了,就是因为插件卸载后的残留导致了无数缓存页面都重定向到首页了,致使不学好的百度爬虫拼命地抓取首页,而首页一般内容较多,自然占用带宽大,于是不到20天,4GB多的带宽流量就被百度“独享”了。
解决办法
分析了原因,自然要找到相应的办法,不然这个月最后几天我的博客就无法访问到了,而且今后百度的爬虫会不会更加疯狂还是未知数。
修改robots.txt
虽然我们都知道百度的Spider貌似不太喜欢去看robots.txt,但这毕竟是堵住搜索引擎访问最方便最理想化的方法。由于我也记不清楚当初设定了多少种语言翻译了,所以尽量多写些吧!打开网站根目录下的的robots.txt,然后在User-agent: *的后面加上:
Disallow: /ar/ Disallow: /bg/ Disallow: /cs/ Disallow: /da/ Disallow: /de/ Disallow: /el/ Disallow: /en/ Disallow: /es/ Disallow: /fi/ Disallow: /fr/ Disallow: /hr/ Disallow: /hu/ Disallow: /it/ Disallow: /iw/ Disallow: /ja/ Disallow: /ko/ Disallow: /nl/ Disallow: /no/ Disallow: /pl/ Disallow: /pt/ Disallow: /ro/ Disallow: /ru/ Disallow: /sk/ Disallow: /sr/ Disallow: /sv/ Disallow: /th/ Disallow: /tr/ Disallow: /zh-TW/
修改.htaccess
刚才说到百度可能对robots.txt并不友好,因此我们也无法立即判断上面的方法是否真正有效。当然你可以在接下来的几天中观察流量日志的变化以确认它的有效性,但是我们等不及了,因为流量真的就快用完了。我们可以修改.htaccess文件来让用户(包括搜索引擎)访问这些URL时跳转到403(禁止访问)页面,以节省网站流量,当然者比较暴力了,呵呵……打开网站根目录下的.htaccess。然后在RewriteEngine On的下面加上以下命令(你可以根据需要自己修改相应的匹配规则):
RewriteCond %{HTTP_HOST} ^dayanjia.com$ [NC]
RewriteRule ^(ar|bg|cs|da|de|el|en|es|fi|fr|hr|hu|it|iw|ja|ko|tr|zh-TW) - [F]
结论
我在网上搜索后,发现同样有朋友遇到了类似的问题,比如这里和那里。尽管Global Translator这款插件使用起来的确很方便,但是它产生的缓存问题不容忽视,请大家慎用这款插件。如果想要在博客上挂翻译链接的话,可以使用Google提供的代码。
loading...






友情沙发 摸摸
这就是人生啊……
@LIGHT 无奈人生……疯百度,我都全改成403了还在拼命爬……已经5110MB了,我估计这个月撑不住了
Buzz观光团……
原来百度的蜘蛛这么疯狂……不过他都不怎么抓我的博客诶……
PS:话说我换了新域名,还架在原来的VPS上,怎么设301重定向呢?
@sinopitt 如果两个域名都指向你的主机的话,可以写.htaccess文件来实现,我不知道下面写的有没有问题~~你去试试看
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.old-domain.com$
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]
哎,昨晚上折腾了半天,最后用godaddy送的免费空间解决了,真是纠结啊……
@sinopitt 有钱淫,用VPS的……
四人合租低端VPS含泪飘过……话说戈戈主机貌似挺不错的……
你写的文章都太深奥了。。但是,还是特别喜欢你的博客~~~虽然看不懂,但是可以慢慢学习嘛~~~希望你多出点好文章,指导指导大家~~~
学习过了,感谢博主的分享。
我一开始看成了 《谁偷走了我的流星?》。。。
@rose 我没有流星……没人要偷
这插件用处有,但相比损失,那只是小巫见大巫
怎么都看不懂~~~哎,没办法,只能慢慢学了
你搞定问题了吗?我的25G流量在一周内被百度独享了。哭死了。
@Dean 虽然后来百度还是不停地来抓,但是403页面的数据量比首页小得多了,所以影响就很小了
我的还不止是首页,所有页面都是。
哇… 不过和我正好相反… 我Google一天能抓上百兆,甚至几百兆,, 有些文章我都没更新… 相反用了All in one seo ,, 因为有no index ,被百度BS了… 不过一个月才6G的流量好像真的有点小….
@Fws 悲剧了……这个月还剩5天,流量还剩700多MB……看了下统计,被百度和Google的蜘蛛同时光顾了,非浏览器流量用掉了1.3GB……
我還是覺得一個月6G實在太誇張了…..
為何不自己買個空間呢,現在空間都早已掉到白菜價了,如果有條件,我還是覺得自己買個空間,,,, 像國內速度比較好的fatcow. Justhost. Hostgator. Godaddy. 等等……. 現在也有200多,300能搞定了呢…,,,自己買個沒那麼多現在吧….. 但不用找代購或者reseller,自己直接官 網購買,, 如果有關系好的朋友在國外的,找朋友在官網直接買那最好,, 分配到的機房和服務區斗不一樣…..
真的呢,還有你們說的胡嘎嘎是什麼?
我在新加坡怎麼打不開? 郁悶了…..
@Fws 呵呵,主机总有一天要换的,水到自然渠成嘛~~那个胡戈戈嘛,是个国内的reseller,卖的空间很便宜,100块/年
嗯,,,100看似还挺便宜,,不过相当于一份资源卖给多人.. 他也赚大了.. 哈哈,, 关注你博客ing… ~~ 挺好玩的呢..
額…. 不好意是,,,用TOUCH回的,不知道怎麼回了2條….
哈哈,現在還有多少剩余…..?
这个是学习了!
为什么你的这篇文章又被feed一次?
@listen Google Reader出问题了,不知道怎么回事……
写的不错,教程很详细,不过我的网站暂时没有遇到过。希望以后流量刷刷的。哈哈哈。方便的话希望和博主换个友情链接