跳到主要内容

日志分析入门:三个命令看蜘蛛在抓什么

不用装工具也能做日志分析。我们用 awk 和 grep 从 nginx 日志里拉出蜘蛛请求量、状态码分布和最费预算的路径,附一个 2025 年 10 月的诊断记录,日抓 1.2 万次里 41% 是无效请求。

技术SEO 元析智能

日志是唯一能直接看到蜘蛛行为的数据。GSC 的抓取统计只给汇总,百度搜索资源平台给得更少。要看细节,还是得自己读 access.log。

命令一:数请求

grep -c "Googlebot" access.log
grep "Googlebot" access.log | awk '{print $4}' | cut -d: -f1 | sort | uniq -c

第一条看总量,第二条按天分组看趋势。我们习惯把百度蜘蛛(Baiduspider)也一起数,两条曲线放一起看,一边涨一边跌通常意味着抓取预算被某个方向吃掉了。

命令二:看状态码分布

grep "Googlebot" access.log | awk '{print $9}' | sort | uniq -c | sort -rn

健康站点 200 占 85% 以上,5xx 应该低于 0.5%。404 占比高说明死链多,301 占比高说明重定向链没收敛。5xx 是最要命的,蜘蛛连续遇到几次服务端错误会主动降频。

命令三:按路径聚合

grep "Googlebot" access.log | awk '{print $7}' | cut -d/ -f2 | sort | uniq -c | sort -rn | head -20

看哪个一级路径吃掉最多请求。2025 年 10 月一个站日抓 1.2 万次,排第一的是 /api/,占 41%,全部返回 401。robots.txt 里没屏蔽 API 路径,蜘蛛每天白跑 5000 次。屏蔽后产品页的抓取从每天 800 次涨到 2600 次。

顺手还能算响应时间:把 $request_time 聚合一下,平均超过 1 秒就要查服务器,蜘蛛抓取频次和响应速度强相关。

日志怎么留

nginx 默认按天切分,保留 7 天,做抓取分析不够用。我们一般让运维保留 90 天并压缩归档,或者直接推到日志服务里。做一次完整诊断要看连续 4 周的数据,单看一天容易被大促、发版这种异常带偏。

如果站点在 CDN 后面,源站日志里只有回源请求,蜘蛛直接命中缓存的请求看不到。这种情况要用 CDN 厂商的访问日志,或者把蜘蛛 UA 的回源规则调整一下。我们遇到过一次,客户以为自己日抓只有 300 次,换到 CDN 日志一看实际是 4000 次,诊断结论完全反了。

三个常见误判

把 UA 当身份。UA 可以伪造,日志里出现自称 Googlebot 的请求不一定是真的,验证方法是反查 IP 段。把缓存命中当没抓。前面说过,CDN 后面的日志会少一大截。把周末的低抓取当异常。蜘蛛也有自己的节奏,按周看比按天看稳。

什么时候不用做

日抓取量 1000 次以下的站,先别碰日志分析。抓取量太小,结论全是噪声,先把内容做起来、把收录问题修好。抓取预算这件事,是流量上来了才值得抠的细节。

工具方面,GoAccess 能出一份可视化报表,Screaming Frog Log File Analyser 适合和爬虫数据对照,命令行足够应付 80% 的场景。我们做诊断先用三个命令看一遍,判断要不要上工具。

标签:日志分析抓取预算爬虫
元

元析智能

为软件公司做 SEO 和 GEO 优化

Start with a diagnosis

聊聊你的软件产品

不管你现在是 SaaS、开发者工具还是工程设计软件,只要你想让目标客户搜得到你,我们可以聊。第一次沟通不收费,会给你一份当前的 SEO 诊断,你能看出问题在哪。