如何不影响搜索排名情况下降低搜索爬虫对网站的影响(google ,bing, yandex,pinterest 等)
引言:网站资源(CPU,内存等)使用率在某个时段很高,甚至出现502状态,查日志(看请求头user-agent)发现爬虫在某个时段大量爬取,超出网站正常的负荷,如何在不影响搜索排名情况下合理降低搜索爬虫对网站的影响呢?
方法1:在服务端限制
适用:对不知道,或恶意爬虫限流
在nginx或防火墙上针对爬虫和IP进行限流
https://cdn.modb.pro/db/327255
方法2:通过robots.txt规格限制
适用:对正规的爬虫限流
正规的爬虫会遵循robots.txt规范 ,通过把规则写到根目录的robots.txt文件正确引导爬虫
想更多了解robots请看wiki https://zh.m.wikipedia.org/zh-hans/Robots.txt
这里讲一下使用 Crawl-delay指令 来控制爬虫的爬取频率
User-agent: * Crawl-delay: 1
每个搜索引擎对Crawl-delay: 1 的执行有差异,有些爬虫是爬取一个页面后暂停1秒再爬第二个页面,有些爬虫是每一秒发起一个爬取的请求。
#1
0 1 2 3 4 5 seconds |*page1** | | **page2******** | | | | | **page3*
#2
0 1 2 3 seconds |*page1** | |*page2********* | | |*page3*
不管是哪种都实际上能起到降低爬取频率的作用(google 爬虫不遵循这个限制,需要导google search console 配置),如果了解某个爬虫具体影响设置,可以找一下对应爬虫的规则
bing: https://blogs.bing.com/webmaster/2009/08/10/crawl-delay-and-the-bing-crawler-msnbot
google : https://support.google.com/webmasters/answer/48620?hl=en
yandex : https://yandex.com/support/webmaster/robot-workings/crawl-delay.html
pinterest:https://help.pinterest.com/zh-hans/business/article/pinterest-crawler
其他爬虫可以在 google上搜索 :名称+Crawl-delay ,如 yahoo 搜索关键词 crawl-delay yahoo
提醒:在网站允许情况下这个值要尽可能设小一点,这样能加快你的网站在搜索引擎的收录和更新