很多站长把“蜘蛛不来”当成唯一的问题,但实际运营中更常见的情况是:蜘蛛来了,只是把时间花在了没有价值的 URL 上。抓取资源是有限的,站点被浪费的抓取越多,真正需要更新的页面被重访的机会就越少。
先分清:哪些抓取算“浪费”
不是所有抓取都要当成浪费。判断标准可以简单一些:这次抓取有没有可能带来一个可索引、有价值的页面。
- 抓到的 URL 全部返回重定向、404 或 5xx;
- 抓到的页面内容与已有页面高度重复,只是参数不同;
- 抓的是筛选、排序、日历、会话类参数生成的组合页;
- 抓的是站内搜索结果页、会员中心、购物车等本就不该被索引的区域;
- 反复抓取内容几个月没变化的页面。
浪费通常从哪里来
1. 参数组合
排序(?sort=)、筛选(?color=)、追踪(?from=)、会话(?sid=)这类参数,只要能被链接到,就会被顺着抓。两个参数能组合出四种,三个参数就能组合出八种,数量增长很快。
2. 分页与日历
分页本身没问题,问题出在分页与筛选叠加,或者日历可以无限往后翻。这类路径往往没有终点,蜘蛛会在里面绕很久。
3. 重复入口
同一个页面有 http 与 https、带 www 与不带 www、带斜杠与不带斜杠等多个版本,又没有做规范统一,会被当成多个 URL 分别抓取。
4. 不该被抓的页面
测试页、历史遗留页面、软 404 页面,会持续消耗抓取。软 404 尤其麻烦:状态码是 200,内容却是“暂无数据”,蜘蛛很难判断该不该留。
从日志里看抓取去向
把最近的访问日志按蜘蛛 UA 筛出来,按 URL 归类统计,重点看三件事:
- 抓取量排名靠前的 URL:如果大多是参数页、分页或静态资源,说明路径需要收敛;
- 状态码分布:3xx、4xx、5xx 的占比如果明显偏高,先修错误,再谈引导;
- 重访间隔:重要页面多久被回访一次,是否比无关页面还慢。
收敛路径的几个动作
- 统一 URL 形态:确定唯一版本,其他版本 301 到它,站内链接和 Sitemap 只用这一版。
- 参数页不进入链接体系:筛选结果靠交互或表单触发,不在 HTML 里直接输出成可抓链接;必须保留的用 canonical 指向主页面。
- Sitemap 只放想被索引的 URL:不要把分页、标签、参数页一股脑塞进去,清单越长,无效抓取越多。
- 内链集中权重:让重要页面从首页、栏目页、相关内容处获得稳定入口,减少只能靠深层分页到达的页面。
- 确实无用又不想被抓的路径,用 robots.txt 拦截。注意被拦截的 URL 仍可能留在索引里,需要配合 noindex 一起处理。
- 监控服务器:响应时间过长或频繁 5xx 时,蜘蛛通常会降低抓取频率,恢复需要时间。
服务器稳定性是被忽略的变量
抓取节奏不只由链接结构决定,也受站点响应影响。同一时间大量慢响应、连接超时,会让蜘蛛把抓取速度降下来;等站点恢复,抓取量也不会立刻回到原来水平。扩容、缓存、限制蜘蛛对高消耗接口的访问,都属于抓取优化的组成部分。
抓取优化不是让蜘蛛抓得更多,而是让它把有限的抓取用在值得的页面上。
建议的检查节奏
每两到四周做一次日志复盘,记录无效抓取占比的变化;发布新功能、改版、上线筛选模块之后,额外看一次日志,往往能第一时间发现新出现的抓取路径。把观察结果和调整动作对应起来,比一次性做一堆设置更有效。