我们经常会受到大量的 YandexBot 访问,我们知道 YandexBot 是 Yandex 的搜索引擎的爬虫。
大量的 YandexBot 访问,不仅给服务器造成了非常大的压力,同时也会使正常访客访问网站变慢,影响体验。
基于以上原因,我们不得不限制 YandexBot 的访问,但是需要注意的一点:限制 Yandex 访问会损失 Yandex 带给我们的流量,由于限制了 Yandex 的爬虫索引我们的网站,所以当用户在 Yandex 搜索我们网站的主题词时,不会有任何展示,所以也不会给我们带来任何流量。
如果 Yandex 没有给我们带来任何访客,那我们就屏蔽它吧!
我们可以通过下面三种方式屏蔽 Yandex:
IP 地址屏蔽
我们通过 list crawlers YandexBot 查看到 YandexBot 的 IP 地址,我们直接将这些 IP 加入到黑名单里就可以了,我以 Ubuntu 操作系统为例,如何将 IP 加入到防火墙的黑名单里面:
sudo iptables -A INPUT -s 213.180.203.82 -j DROP
上面的 IP 地址就是我们通过 list crawlers YandexBot 页面查询到的 IP ,直接一个一个的 IP 输入就可以了,一个一行。
好处:直接且迅速。
缺点:可能漏掉一些 YandexBot 的 IP 地址。
通过 User-agent 屏蔽 YandexBot
通过我的这一篇文章:yandex bot user agent,我们可以看到每个 YandexBot 的具体 User-agent,我们在 Nginx 里面可以这样屏蔽具体的 User-agent:
if ($http_user_agent ~* "Yandex")
{
return 403;
}
这样我们就可以通过 User-agent 屏蔽 YandexBot 的目的了。
优点:可以迅速直接的屏蔽 YandexBot。
通过 robots.txt 屏蔽 YandexBot
前面文章我已经具体介绍过如何通过 robots.txt 屏蔽 YandexBot 了,在此不多说,需要的可以看这篇文章:block yandex bot
优点:符合官方的规范要求。
缺点:Yandex 的有些爬虫并不遵守 robots.txt 协议,使用 robots.txt 协议也就无法屏蔽了。
总结
这篇文章使用了三种方式屏蔽 YandexBot,并且介绍了优缺点,总有一种方法适合你。
在最后还需要重申一下:如果 Yandex 没有给你带来任何流量,你可以安心屏蔽,如果 Yandex 给你带来了流量,还是要三思而后行。