使用Robots.txt引导百度爬虫合理分配抓取资源

我所在的网站算是一个大型网站,百度收录3000万,每天百度爬虫抓取总次数在500w次左右,单页的百度收录率 80%,看起来已经是一个相当不错的数据,但分析一下详细的日志文件,还是可以发现一些问题,1

我所在的网站算是一个大型网站,百度收录3000万,每天百度爬虫抓取总次数在500w次左右,单页的百度收录率 80%,看起来已经是一个相当不错的数据,但分析一下详细的日志文件,还是可以发现一些问题,

1.大型网站的列表页为了方便用户查找所需信息,通常会设置多重的筛选条件(Facet Navigation),但爬虫并没有智能到可以自主判断哪些条件可以组合,哪些条件组合起来没有意义,只要在代码里面有链接就会去抓取,导致百度爬虫耗费了大量资源在列表筛选页上。分析了一个月的数据,发现百度的抓取量有30%消耗在列表页,但是列表页带来的百度自然流量仅占所有百度自然流量的2%,所以对网站的列表页来说,爬虫的投入产出非常低。

2.重复抓取现象严重。 我个人觉得,对网站来说,只被爬虫抓取过1次的页面(Distinct Crawl)最有价值,因为对一张本身内容质量还可以的页面来说,只要被抓取过一次,收录的几率就超过80%。如果页面本身质量不行,即使被抓取过几十次,也依然不会被收录。 继续分析我们网站的数据,发现在百度爬虫一天500w的抓取中,有超过一半的抓取是对相同页面的多次抓取,如果能把这些重复的抓取转移到那些一次都没被抓过的页面上,对网站的价值无疑更大。

如何解决这两个问题?

先说第一个,针对筛选页消耗爬虫资源问题,很多人都建议使用nofollow标签告诉爬虫,不要继续给这些页面分配权重,我们也这么做过。但事实证明百度爬虫对nofollow并不敏感,使用之后爬虫依旧疯狂抓取,同时也没有把权重从筛选页面上转移到规范页面上。

无奈之下,我们只好考虑起用SEO的大杀器:Robots文件,把所有的筛选页面全部disallow掉,之前没有使用robots禁止抓取的原因是担心万一爬虫被禁止抓取列表后,会不会其他的页面也不抓了?毕竟列表筛选页还是会给单页贡献大量入口,但基于我们网站单页收录还不错的现状,还是决定尝试一下。

事实证明,效果非常明显,新版的robots上线三天后,列表页的爬虫抓取量下降到15%;同时之前担心的问题也没有发生,爬虫的抓取总量不但没有下降,反而增长了10%左右,单页的抓取量也上升了20%,可以算是达到了我们的预期目标:把列表页浪费的爬虫资源转移到其他需要被抓取的页面上。

但是如何证明抓取资源是被转移到需要被抓取的页面上呢,这正好也是之前提到的第二个问题,我们看了唯一抓取率( 只抓一次的页面数/总抓取数)的变化,从50%增长到74%,可以说明爬虫在阅读robots文件后,对爬虫资源做了更合理的分配,更多的单页被抓取。

总结:Robots文件相比其他手段,可以在较短时间内优化百度爬虫的抓取资源分配,但这得建立在网站本身结构良好,内容过关的基础之上,同时最重要的还是得反复测试,通过日志分析实际情况来调整以取得最佳效果 转自百度站长社区


本文关键词: