各类站长后台给出的都是汇总数据:抓取总次数、平均响应时间、错误比例。汇总适合看趋势,但很难回答更具体的问题,比如哪一类 URL 在反复触发 5xx,蜘蛛是不是把大半时间花在了筛选参数页上。服务器访问日志保存的是每条请求的原始行,粒度最细,配合简单的命令行筛选或日志工具就能查。不用指望一次翻日志解决所有问题,更实际的做法是固定周期,只盯几个指标,长期对比变化。
先确认日志里有哪些字段
- 访问时间与时区,确认统计口径一致;
- 客户端 IP,用来区分不同来源的抓取;
- User-Agent,识别蜘蛛与普通访客;
- 请求方法与完整 URL,包含路径与查询串;
- 状态码与响应字节数;
- 响应时间,前提是服务器配置里记录了这项;
- Referer,偶尔能看出异常外链来源。
如果日志里没有响应时间字段,可以先在 Web 服务器配置中补上,后续排查慢响应会方便很多。
按状态码分组,先看异常的部分
5xx
任何 5xx 都值得追。把出现 5xx 的 URL 单独拉出来,看是集中在某个栏目、某个接口,还是随机分布。集中的通常是代码或数据库问题,分散的可能是超时或资源不足。同时留意时段分布,是否有规律地出现在某个时间点。
404 与软 404
404 分两类:本来就该消失的旧地址,以及因为链接写错、模板漏参而新产生的死链。前者可以放着,后者要及时修。还有一类页面返回 200 但内容为空,日志里看不出来,需要抽样访问确认,也就是常说的软 404。
301 与 302
大量 301 集中指向同一个目标,通常说明站内链接没有直接更新,仍然在走旧地址。链路越长,跳转次数越多,趁早把内链改到最终地址更省事。
按目录和 URL 分组,看抓取落在哪
把日志里的 URL 去掉查询串后按一级目录聚合,能得到一张抓取分布表。重点看两件事:核心内容目录是否拿到了足够多的抓取,参数页、搜索结果页、无限翻页是否占用了过大比例。
如果某类低价值地址反复被抓,可以考虑收敛入口、清理站内链接,或者在 robots.txt 里做更细的限制,而不是直接屏蔽整个目录。
抓取频次与时段
统计每天来自各搜索引擎的抓取次数,能看出大致节奏。突然放量,可能是站内新增了大量链接,也可能是页面结构变化导致蜘蛛反复回访。突然掉到接近零,除了站点本身的问题,也可能是服务器返回了大量错误,先去核对状态码分布。
时段分布也有参考价值。如果抓取集中在深夜而白天几乎没有,同时白天站点响应明显变慢,说明响应速度可能已经影响到抓取安排。
几个容易被忽略的细节
- 同一个 URL 被不同的 User-Agent 反复请求,可能有采集或镜像行为;
- Referer 是自己站点的域名,属于正常内链跳转;
- 大量请求集中在登录、提交、搜索这类动态入口,需要评估是否值得;
- HEAD 请求和图片请求也会计入日志,统计时最好分开看。
把检查落成固定动作
- 确认日志按天切分并有足够保留期,至少覆盖一个完整对比周期;
- 每周导出一次蜘蛛请求,按状态码、目录两个维度各出一张表;
- 记录当期 5xx 数量、新增失效地址、核心目录抓取占比;
- 对比上一期,只处理变化明显的项,避免为了数字好看做无意义的改动;
- 处理过的问题写进简单记录,下次遇到相似现象可以直接对照。
日志是现象,不是结论。看到异常先确认是不是统计口径或采集方式造成的,再动手改站点。
日志分析不需要复杂工具,一行命令加一张表格就能开始。它的价值不在某一次排查,而在于长期坚持之后,你对站点被抓取的方式有了稳定的判断依据。