抓取总量有限,分配问题比“抓得多”更实际
搜索引擎对单个站点的抓取次数与并发有上限,这个上限不会因为站点内容变多而自动翻倍。因此运营中更值得核对的问题不是“蜘蛛今天来了多少次”,而是这些抓取次数落在了哪些目录、哪些模板上。如果日志里大量请求集中在筛选参数页、站内搜索结果页,核心内容的更新就可能要等更久才会被回访。
第一步:把日志按目录和模板归类
直接看总量意义不大,先按路径前缀和页面模板做一次归类,通常能得到比较清晰的分布。
- 按一级目录统计请求次数,例如 /product/、/news/、/tag/、/search/。
- 区分页面模板:列表页、详情页、分页、归档页、筛选结果页。
- 单独标记状态码分布:200、301/302、404、5xx 各自占比。
- 记录响应时间区间,避免把抓取频次下降直接误判为其他因素。
归类之后,把每个目录的抓取次数与“有持续更新价值的 URL 数量”放在一起看,匹配度低的目录就是下一步要处理的对象。
第二步:识别空转抓取
常见的低价值入口来源
- 筛选、排序、价格区间等参数组合页,同一批内容被反复以不同 URL 请求。
- 站内搜索结果页,尤其是被导航或内链直接指向的。
- 分页过深的列表页,越往后内容越旧,回访价值有限。
- 已被 noindex 但仍在多处内链中出现的页面。
- 协议、主机名、结尾斜杠不统一造成的重复入口。
判断空转不要只看页面好不好看,而是看它是否值得被单独发现和回访。如果某个页面的内容完全由其他 URL 组合而成,又没有独立入口需求,它大概率在消耗抓取次数。
第三步:收敛入口,而不是只依赖 robots
很多人第一反应是写 Disallow。需要明确两点:robots.txt 阻止的是抓取,不是索引;而 noindex 必须让页面被成功抓取后才能读到。两者同时使用时,可能出现规则写了但页面仍以其他形式出现的情况。
更稳妥的顺序是先减少链接入口:
- 从导航、列表、相关推荐中移除低价值页面的链接。
- 参数页尽量通过站内交互生成,不生成可长期访问的静态链接。
- 对确实需要保留但不希望被索引的页面,确认它没有被内链大面积指向,再配合 noindex。
- 对已失效路径做 301 或 410,不要长期返回 200 的空壳页。
抓取预算更像一条通道而不是可以争取的额度:入口越少越清晰,核心页面的回访就越不容易被稀释。
第四步:让 Sitemap 与内链表达同一优先级
Sitemap 是 URL 发现的补充通道,不是抓取承诺。如果 Sitemap 里混入大量低价值页面,而内链又指向完全不同的一批 URL,蜘蛛接收到的优先级信号就是矛盾的。
- Sitemap 只保留稳定返回 200、可索引、有独立价值的主干 URL。
- 分片文件按目录或内容类型组织,便于后续核对覆盖情况。
- lastmod 要反映真实内容变更,避免无变化也频繁更新时间戳。
- 内链的锚文本与所在位置,尽量指向你希望优先回访的页面。
第五步:设置观察窗口与核对指标
- 固定一个时间窗口,例如连续四周,对比调整前后的目录抓取占比。
- 观察核心目录的首次发现时间与回访间隔是否缩短。
- 确认服务器 5xx、超时比例没有随调整上升。
- 检查是否出现新的重复入口,例如参数变体或大小写差异。
调整的效果通常不会立竿见影,抓取节奏的变化往往需要几天到几周才在日志中体现出来。这个阶段更适合做小幅、可回滚的改动。
几个容易被忽略的点
- 外部链接(包括蜘蛛池类工具批量投放的入口)能提高 URL 被发现的概率,但不会改变站点自身的可承受抓取量,入口质量仍然重要。
- 服务器响应时间波动会直接影响并发表现,抓取量下降有时是服务器端问题,不是内容问题。
- 站点改版后旧路径未清理,会持续产生重复发现。
整体思路可以归纳为一句话:先看抓取次数落在哪里,再决定减少哪些入口、保留哪些入口,最后用日志验证变化,而不是靠猜测去堆链接。