|

什么是SEO里的Crawl Budget(抓取配额)?学问可大了

和十个SEO聊天,会有九个不知道或者不清楚什么是Crawl Budget。Crawl Budget(抓取配额)偏偏是Technical SEO中的核心概念。本篇我们将“粗略”介绍一下Crawl Budget的概念。开始讲了,请搬好小板凳……

So WTF is Crawl Budget?

顾名思义Crawl Budget是搜索引擎为你的网站制定的一个抓取频次的预算。任何一个搜索引擎对任何一个已发现的网站都会有一个动态且唯一的Crawl Budget。

什么是Crawl Budget,Bing的定义
什么是Crawl Budget,Bing的定义

上图是笔者在2018年参加SMX East时,Bing对Crawl Budget的定义。正如Bing所言,Crawl Budget是爬虫所认为的在不伤害你的网站性能的情况下能投入的最大抓取量。

Crawl Budget决定了该搜索引擎在单位时间里对你的网站资源请求多少次,花多少时间爬取和渲染。

请注意这里的网站是指一个host,换句话说,maxket.com和www.maxket.com是两个hosts。分别享有不同的Crawl Budget。而且就像Bing所言,Crawl Budget不单单针对一个个域名,而且会针对一个IP或者IP段。

搜索引擎干嘛要弄个Crawl Budget?

因为人家也是交水电煤房租网费的,没空花时间花资源来爬个垃圾站。

搜索引擎爬虫可不是996,而是24x7
搜索引擎爬虫可不是996,而是24×7

这么说可能深深地刺痛了你的自尊心,但是搜索引擎的爬取资源毕竟不是无限的。您可去多爬几次重要的页面看看有没有更新也不会对垃圾网站的页面花一点点时间。

那SEO为什么要关注Crawl Budget呢?

搜索引擎爬取一个页面通常有两个原因触发:

  1. 搜索引擎发现了新页面。
  2. 搜索引擎对长期未重新爬取的页面进行再确认,保持新鲜度。如:看看页面还在不在,有没有新增加的内容,有没有改版等等。

这两个原因提升了抓取需求(Crawl Demand)。也就是搜索引擎觉得你的网站更需要去爬一下了。通常来说中小网站(<10,000页面)是不需要过多关注Crawl Budget的。但这也不是绝对的。

  • 首先是怕漏爬。由于出现技术问题导致中小网站出现大量重复网页,让真正需要被爬取和索引的页面“翻不了牌子”。
  • 其次是怕迟爬。当爬行配额不足时,往往搜索引擎会无法及时爬取新内容。这样对时效性较强的内容来说是一种损失。

除了抓取需求还有一个概念叫作抓取率限制(Crawl Rate Limit)。它决定了某一个网站的平行并发连接数和期间等待的时间,它又由两个因素决定:

  1. 抓取的健康度:如果站点响应很快一段时间,则限制会增加,这意味着可以使用更多连接进行爬网。 如果网站速度变慢或响应服务器错误,则限制会下降并且爬虫会抓取更少的内容。
  2. 你在搜索控制台中设置限制:网站所有者可以减少爬虫对其网站的抓取。 请注意,设置更高的限制不会自动增加抓取。

Crawl Budget是如何计算的呢?

Crawl Budget并没有一个明确的单位,我们可以大概理解为搜索引擎“花多少心思和工夫来了解你的网站”。要回答这个问题,我们要了解哪些资源会占用Crawl Budget。

除了HTML页面之外,其他页面包含的资源如图片、JS、CSS。另外alternate标签中的URL比如其他语言的URL或者AMP、MIP页面,还有Ajax自动发生的请求(如果该引擎去渲染页面)也会被算入。

概括地说凡是你能够在网站访问日志看到的来自爬虫的请求都会消耗你的抓取配额。

如何提升自身网站的Crawl Budget呢?

Crawl Budget的上限完全由你的网页在搜索引擎眼中的重要性决定。它由搜索引擎对你的网站/网页的抓取需求(Crawl Demand)来决定。用Matt Cutts的话说:

The best way to think about it is that the number of pages that we crawl is roughly proportional to your PageRank. So if you have a lot of incoming links on your root page, we’ll definitely crawl that. Then your root page may link to other pages, and those will get PageRank and we’ll crawl those as well. As you get deeper and deeper in your site, however, PageRank tends to decline.(考虑它的最佳方式是我们抓取的页面数量与您的PageRank大致成比例。 因此,如果您的根页面上有很多外链,我们肯定会抓取它。 然后你的根页面可以链接到其他页面,那些将获得PageRank,我们也会抓取它们。 然而,随着您的网站越来越深入,PageRank往往会下降。)

Your Mileage May Vary - 你的消费量可能不一样
Your Mileage May Vary – 你的消费量可能不一样

另外,当我们网站改版的时候,搜索引擎会发现网页和索引中的不一样了,这会触发大量重新爬取。就像上图所讲的,Your Mileage May Vary,你的消费量可能不一样,Crawl Budget是一个动态的值。

总之,就像下图所概括的那样,当网站较小时,不管SEO做得好不好,大部分情况下Crawl Budget会大于Crawl Demand,也就是配额大于需求。而当网站较大时,配额要小于需求,那就会出现我们上面提到的漏爬和迟爬的现象了。

抓取配额与抓取需求间的关系
抓取配额与抓取需求间的关系

那么既然我们只能通过提升PageRank来提升网站的Crawl Budget那么我们谈Crawl Budget还有什么意义?意义就是你可以至少避免浪费啊,一块钱当两块钱花。

浪费Crawl Budget的情况有哪些?

要避免浪费就要了解浪费Crawl Budget的情况有哪些。

重复内容页面

许多网站在URL后面会带一些跟踪参数,或者会有sessionid等参数。这会造成同一内容的网页有各种URL版本。这无疑增加了搜索引擎识别这些网页的负担,即便使用了canonical标签(百度并不能很好支持),这并不能阻止搜索引擎对这些页面进行爬行。解决的方法除了在各个站长平台设置忽略这些参数,更需要充分管理好URL的版本。

另外,一些网站使用了多维度的筛选导航(Facet Navigation),这会让网页数量几何级增加。假设有三个维度:颜色,内存,尺寸各有3个选项,那么就会自然生成3x3x3的27个页面,根据选择次序不同又会有3×2中变形,那就是162个页面。这些页面通常会自带不同的URL,这样也会增加搜索引擎的爬行负担。

跳转链

本来一个页面只需要一次请求便可以完成,每一次301或者302跳转又都会额外增加HTTP的请求数。这样对爬行的效率产生了负面影响,造成了浪费。

低质量页面

大量的低质量页面会让网站变成低质量的网站,这就会降低抓取需求。搜索引擎并不想浪费时间在爬取低质量的网页上,更不想让搜索引擎的用户去浏览这些网页。因此要避免这些页面出现在站内链接中,也要避免搜索引擎发现这些链接。

疏于维护的站点地图

站点地图往往是最容易被忽视的地方,笔者的许多客户都存在站点地图更新不及时,存在许多3XX甚至4XX或者5XX错误的情况。搜索引擎会定期查看这些链接,如果这些链接的问题严重,也会影响搜索引擎对您的网站的看法,从而降低爬行的欲望。

页面慢,读取超时

我们知道,对许多搜索引擎来说网页读取速度已经成为了排名因素之一。但是我们更要认识到,如果网页速度慢,服务器反馈不及时,这会增加爬虫的负担。因为爬虫会为了等这个请求的响应不能及时进行下一个请求。

再从另一个角度来讲,搜索引擎也不希望用户去浏览一个难以打开的网站而降低搜索引擎使用的体验。那么放弃索引或者放弃爬行就会是最糟糕的情况了。

大量noindex页面

虽然国内的引擎如百度并不支持noindex标签来防止搜索引擎索引该页面,但是这标签并不能阻止搜索引擎对网页进行爬取。毕竟,不爬一下抓一下怎么知道有没有nonindex呢。

即便noindex页面依然可以传递权重,如果这样的页面大量地存在于网站中,势必会让引擎做许多无用功。

所以如果noindex页面有许多的话,也会浪费许多Crawl Budget哦。

Crawler Trap(蜘蛛黑洞)

蜘蛛黑洞或者爬虫黑洞是网站上常见的让爬虫头痛的问题。比如有个在线日历,上面有下个月的链接,可想而知那会无限地“下个月”下去。这就会产生无数个页面。谷歌把这个叫做“infinite space”。让蜘蛛抓取这些无意义的页面自然会浪费大量的Crawl Budget。

页面被黑,垃圾信息页面

比无用信息更糟糕的是有害信息。对这类页面,搜索引擎甚至是打击的,更不要说正常提供抓取配额了。

使用共享主机或者共用IP

共享主机虽然方便经济,但是由于数百个乃至上千个站点从一个IP进行流量吞吐,对搜索引擎优化来说是个很大的挑战。这个问题一些云主机也一样。前面提到了Crawl Budget实际上很多时候会以IP来划定,所以光是自己做好SEO是不够的。选择主机,独立IP出口,甚至是与爬虫邻近的IP也是避免SEO被Crawl Budget影响的手段。

如何避免Crawl Budget的浪费?

了解了Crawl Budget浪费的常见情况,最后我们来谈谈如何避免抓取配额的浪费。主要的手段是合理使用robots.txt文件来指引搜索引擎哪些该爬,哪些不该爬。

但是robots.txt是相当复杂的SEO工具,一不小心会造成链接权重无法传递,或造成孤岛页面,甚至重要信息未被抓取的情况。所以对Crawl Budget的优化,还是要请专业的SEO来操刀。

如果你对Crawl Budget感兴趣,可以阅读下面两篇文章作为扩展内容,谢谢。

What Crawl Budget Means for Googlebot (需科学上网)

Crawl budget explained

类似文章