站点运营

站点运营:抓取预算自查,把蜘蛛的时间花在值得收录的页面上

蜘蛛每天能抓多少次,其实是有上限的。这篇文章讲怎么用日志把抓取量按页面类型拆开,找出那些高频却没什么价值的路径,并给出 robots.txt 屏蔽、参数收敛、内链导流等几种处理方式的取舍,最后附一份每周可复查的清单。

站点运营

站点运营:抓取预算自查,把蜘蛛的时间花在值得收录的页面上

抓取预算不是抽象概念,而是日志里的具体数字

搜索引擎给每个站点的抓取频次并不固定,它和站点规模、更新频率、服务器响应速度、外部链接数量都有关系。对一个几千页的中小站点来说,每天可能只有几十到几百次抓取;对内容量大但更新慢的站点,频次还会更低。

把这些抓取次数当成一份配额来看,很多问题就解释得通了:为什么新发的文章三天了还没被抓、为什么明显是垃圾的参数页天天被访问、为什么服务器一忙抓取量就掉。抓取预算自查的目的不是让蜘蛛抓得更多,而是让它把有限的时间花在真正需要被看到的页面上。

第一步:把抓取量按页面类型拆开

从服务器日志里导出最近 7 到 14 天的记录,只保留搜索引擎的 UA,然后按 URL 归组统计次数。接着人工把这些 URL 分几类:

  • 内容页:文章、商品、详情页,这些是真正想要被收录的
  • 栏目页与列表页:抓取量通常不高,属于正常
  • 分页地址:页码很深的翻页往往没有单独价值
  • 站内搜索、筛选、排序产生的参数页:很容易生成成千上万个组合
  • 标签页、日期归档、作者归档:如果内容重复度高,价值有限
  • 附件、图片、CSS 与 JS 等静态资源:属于必要抓取,但要留意是否被重复请求
  • 测试页、废弃目录、旧的 API 路径:通常还在被历史链接引导

如果内容页只占抓取量的两成,而参数页和归档页占了六成以上,那么问题基本可以定位了。

第二步:低价值路径的几种处理方式,各有代价

robots.txt 屏蔽

适合完全不需要被抓的功能性路径,比如站内搜索结果页、购物车、打印页、内部的接口地址。代价是屏蔽之后你就看不到这些 URL 的状态码和报错信息了,而且规则写得太宽容易误伤正常目录,改动前最好先在测试环境核对一遍路径匹配。

noindex 并不能省下抓取

很多人以为给页面加 noindex 就等于告诉蜘蛛别来了,其实蜘蛛必须先把页面抓下来才能读到这个标签。noindex 解决的是索引问题,不是抓取问题。想让这类页面少被访问,还得同时减少指向它们的链接入口。

参数收敛与去入口

参数页最有效的处理方式是从源头控制数量:固定筛选和排序的默认值,只保留有实际搜索量的参数组合,把剩余的设置为不输出链接。少一个入口,往往比写十条屏蔽规则更管用。

合并与重定向

内容高度相似的标签页、归档页,可以考虑合并到栏目页,或者用跳转指向主版本。注意跳转链不要叠太多层,两跳和三跳对抓取频次的影响是不一样的。

第三步:让有效页面更容易被抓到

  • 新页面发布后,从首页或对应栏目页给出一个稳定的内链入口
  • 站点地图只放需要被收录的 URL,不要把参数页和废弃页一起塞进去
  • 减少不必要的跳转链,尤其是移动端适配跳转和 HTTP 到 HTTPS 的重复跳转
  • 保证首屏正文能被直接读取,不要所有内容都靠脚本异步填充
  • 服务器响应时间是硬约束,慢一秒,蜘蛛分给下一个页面的机会就少一分

第四步:服务器与抓取高峰的配合

抓取高峰常和访问高峰重叠,这时候响应变慢,蜘蛛会主动降低抓取频次,而且是渐进的,恢复起来也需要时间。可以做几件事:把日志轮转和磁盘清理放在低峰期,静态资源走缓存或独立域名,数据库慢查询单独排查。如果使用 Bing 等支持 crawl-delay 的爬虫,可以在抓取异常时临时放缓,Google 并不支持这个指令,只能靠响应速度间接影响。

一份可以每周看一次的清单

  1. 有效抓取占比:内容页抓取次数 ÷ 总抓取次数,观察趋势是否上升
  2. 状态码分布:4xx 和 5xx 各自占比,5xx 出现就要排查服务器
  3. 平均响应时间:按抓取量最高的前 20 个 URL 单独看
  4. 新页面从发布到首次被抓的时间,是否在拉长
  5. 站点地图提交的 URL 数与实际被抓的数量差异
  6. robots.txt 和 noindex 的改动记录,确认没有误伤或遗留规则
抓取预算的调整是渐进的过程。改完规则不要指望第二天就看到变化,通常需要观察两到四周,结合日志再判断下一步动作。

把这份清单固定成一个每周半小时的习惯,比一次性大改一遍规则要稳定得多。