搜索抓取

蜘蛛能抓多少:抓取预算的分配与浪费排查

搜索引擎对单个站点的抓取量并非无限,它会随站点体量、更新频率、响应速度和页面质量浮动。这篇文章讲怎么从日志里看出抓取力气花在了哪些页面上,哪些请求属于无效消耗,以及通过收敛无效路径、规范链接、调整内链和 Sitemap,把有限的抓取机会让给真正需要被发现的页面。

搜索抓取

蜘蛛能抓多少:抓取预算的分配与浪费排查

很多站长每天看的是蜘蛛来了多少次,却很少追问一句:这些抓取落在了哪些页面上。搜索引擎对单个站点在单位时间内的抓取量有一个大致上限,这个上限不是固定数字,会随站点体量、内容更新频率、服务器响应速度和页面整体质量浮动。搞清楚抓取力气花在哪里,比单纯追求抓取次数更有意义。

先看日志,看力气花在哪

把服务器日志里搜索引擎 UA 的请求导出来,按 URL 归类,按抓取次数排序,通常能看出三种情况。

  • 真正需要被发现的详情页、商品页,一天只被访问几次甚至没被访问;
  • 带参数的筛选页、排序页、会话参数页,被反复抓了很多次;
  • 404、跳转链、软 404 页面占掉了一部分请求,蜘蛛来了却什么也没拿到。

这三类情况如果同时出现,说明抓取预算的分配出了问题,而不是蜘蛛不愿意来。很多时候蜘蛛很勤快,只是把力气花在了不值得的地方。

三类常见的浪费

无效路径反复被访问

站内搜索结果页、空结果的筛选页、已经下线的活动页,如果还有内链指向它们,蜘蛛就会一次次走过去。抓取这些页面既不会带来收录价值,又挤占了访问重要页面的机会。

同一个内容被多条 URL 抓取

列表页的排序参数、追踪参数、大小写和结尾斜杠差异,都会让同一份内容产生多个地址。蜘蛛把这些地址当成不同页面,每个都抓一遍,等于同样的内容消耗了几倍的抓取量。

响应慢拖长了单次抓取

如果每个页面响应都要几秒,蜘蛛在同样的抓取窗口内能走的页面数就会明显减少。慢响应不会直接导致不抓,但会让有限的抓取额度被少数几个慢页面吃掉。

把预算让给重要页面

做减法和做加法同样重要,可以按下面的顺序来。

  1. 先堵住无效入口:站内搜索页、空归档页、已下线页面,能用 noindex 的就用 noindex;确认整站都不需要的目录,再考虑在 robots.txt 里拦截。注意 robots.txt 是阻止抓取,被拦的页面上的 noindex 也就读不到了,两者不要重叠使用。
  2. 收敛重复地址:页面统一输出一个首选地址,其余变体用 canonical 指向它;站内链接、Sitemap、分享链接都指向同一个版本。
  3. 调整内链分布:导航、面包屑、正文相关推荐优先指向需要被抓的页面;标签页、归档页这类入口往往数量庞大,链接要给得克制,减少蜘蛛在低价值清单里打转。
  4. Sitemap 只放值得抓的 URL:把重要页面放进去,无效页面、跳转页面、已被拦截的页面不要混进去。lastmod 要写真实修改时间,不要每次生成都刷新。
  5. 提升响应速度:减少重定向层数,压缩页面体积,别让蜘蛛把时间花在等待上。

更新节奏也会影响抓取安排

一个长期不更新的栏目,和一个每天有新内容的栏目,蜘蛛的安排不会一样。内容更新节奏稳定、页面确实有变化的站点,更容易获得稳定的回访。反过来,如果页面只是改了几个无关紧要的字,却频繁更新 lastmod,反而会让蜘蛛白跑几趟,久而久之对这类信号就不那么当真了。

抓取量下降不等于出了大事

抓取次数是波动的。站点整体质量提升、重复页面收敛之后,日志里的总抓取次数甚至可能减少,但重要页面的抓取比例会提高。判断标准不是绝对数量,而是重要页面有没有被稳定抓到。如果核心页面的抓取间隔在缩短、新页面发布后能较快被发现,这个方向就是对的。

抓取预算是结果,不是原因。它反映的是站点的结构、速度和内容质量,而不是一个可以单独去刷的指标。把无效路径清掉,把重要页面接进内链主干,剩下的交给时间。

定期回看一次日志,把抓取次数前几名的 URL 列出来,问自己一句:这几类页面,是我最希望被看到的那几类吗?如果答案是否定的,那就是下一次调整的起点。