很多站点的问题不是“没被抓”,而是抓取资源被用在了低价值路径上。列表页、筛选页、分页页被反复抓取,详情页却长期停留在“已发现未抓取”。这类现象通常被归到抓取预算(crawl budget)分配问题上。
抓取预算由什么决定
可以粗略理解为:站点可承载的抓取速率乘以蜘蛛愿意投入的时间。前者受服务器响应、并发承受能力影响,后者受站点权重、内容更新频率、抓取质量反馈影响。两者都无法直接控制,但都能通过站点自身的结构调整间接影响。
- 抓取速率上限:由服务器响应时间、超时率、错误率共同决定。响应越慢、错误越多,蜘蛛越倾向于降速。
- 抓取需求:由 URL 总量、更新频率、内链指向强度决定。URL 越多、层级越浅、变化越频繁,需求越高。
失衡的几个典型信号
- 列表页每天的抓取次数远高于详情页,但列表页本身没有实质内容变化。
- 大量带参数的筛选组合被反复抓取,返回内容高度相似。
- 详情页被发现后长期不抓,日志里只有“发现”没有“请求”。
- 抓取总量不低,但有效内容页的覆盖比例持续偏低。
栏目页与详情页要分开看
列表页与栏目页
这类页面的价值在于“指路”,不在于“留人”。如果列表页本身没有独有信息,且翻页、排序、筛选参数可以无限组合,它们会持续吃掉预算。处理方向是收敛可抓取组合,而不是简单屏蔽全部参数——完全屏蔽有可能连带切断详情页的发现路径。
详情页
详情页数量大、单页更新少,通常需要更稳定的入口。建议保证每个详情页至少有一条来自稳定层级(栏目首页或分类页)的静态链接,而不是只依赖“最新发布”这类会随内容滚动的模块。
调整顺序建议
- 先看日志分层:把请求按目录或模板归类,算出各层级的请求占比与有效页面占比。
- 收敛低价值路径:对无独立内容的分页、排序、会话类参数做规范处理,明确唯一可抓地址。
- 补强高价值入口:用内链、Sitemap、面包屑把详情页入口固定下来,减少入口随内容滚动而消失的情况。
- 观察服务器侧指标:平均响应时间、超时率、5xx 比例是否稳定。抓取速率的变化往往先体现在这些指标上。
- 小步调整并留观察期:一次只改一类路径,至少观察一到两周再决定下一步。
容易踩的坑
- 为了“省预算”把整类页面一刀切屏蔽,结果切断了发现路径。
- 只看抓取总量,不看抓取结构,误以为量上升就是改善。
- 把 Sitemap 当成万能入口,忽略内链才是常态化的发现通道。
- 调整后立刻下结论,没给蜘蛛重新学习的周期。
抓取预算的优化本质是“把有限的请求次数,花在更有内容价值的地址上”,而不是追求抓取量最大化。
最后提醒一点:抓取行为受多种因素共同影响,任何调整都只是提高被合理抓取的概率,不能保证收录结果。持续记录、分层对比,比一次性大改更容易看出真实变化。