本文约 2,585 字,预计阅读 7 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:日志里蜘蛛来得越来越少
某天打开服务器日志,发现 Baiduspider 的访问量从每天 2000 次掉到 100 次,资源平台的抓取量曲线一路向下。此时最忌讳的操作是疯狂改标题、加外链、换模板——这些动作都不会让百度恢复抓取,因为抓取频次下降本质上是一个”反馈结果”:百度根据你的站点表现动态调整了投入的抓取资源。要恢复,得先搞清楚是哪个维度出了问题。
原理分析:抓取频次是动态配额
百度对每个站点分配的抓取频次不是固定值,而是按”抓取收益”动态调整:如果蜘蛛每次来都能拿到 200 的完整内容、页面有更新、用户点击表现好,频次就会上调;如果蜘蛛频繁遇到 5xx、超时、404、内容重复或低质,百度会认为继续投入不划算,下调频次。这个反馈周期通常是数天到数周。
抓取频次下降的四类主因:
| 类别 | 典型表现 | 验证方式 |
|---|---|---|
| 服务器 | 5xx 增多、首字节 > 2s、频繁超时 | 日志状态码分布、慢日志 |
| 规则 | robots 改了、WAF 拦截、UA 403 | 日志里 403/404 的 UA 分布 |
| 内容 | 大量采集、模板化、更新停滞 | 索引量曲线与实际文章数 |
| 结构 | 死链暴增、改版未做 301 | 死链检查、curl 跟跳转 |
值得注意的是,抓取频次下降与索引量下降不是一回事:频次下降是”投入减少”,索引量下降是”存量清理”。前者常见于技术故障,后者常见于内容质量与算法命中。
保姆级实操
第一步:用日志量化现状
先把问题数字化,别凭感觉:
LOG=/var/log/nginx/access.log
# 1) 最近 7 天百度蜘蛛每日抓取量
grep "Baiduspider" $LOG | awk '{print $4}' | tr -d '[' | cut -d: -f1 \
| sort | uniq -c | tail -7
# 2) 百度蜘蛛请求的响应码分布
grep "Baiduspider" $LOG | awk '{print $9}' | sort | uniq -c | sort -rn | head
# 3) 抓取最频繁的 Top20 路径(看是否抓在低质页上)
grep "Baiduspider" $LOG | awk '{print $7}' | sort | uniq -c | sort -rn | head -20
# 4) 响应时间超过 3 秒的请求占比
grep "Baiduspider" $LOG | awk '$(NF) > 3 {c++} END {print "slow:", c}'
第二步:优先排查服务器可用性(抓取量到底有没有真的下降,先用服务器日志分析百度是否真的来过的方法量化)
如果 5xx 占比超过 1%,先修服务器:检查 PHP-FPM 进程数、数据库慢查询、磁盘 IO。蜘蛛遇到连续错误会快速下调频次。
第三步:降低响应耗时
# 开压缩,减少传输体积
gzip on;
gzip_types text/plain text/css application/javascript application/xml text/xml;
gzip_min_length 1024;
# 静态资源长缓存,减少重复请求
location ~* \.(css|js|png|jpg|jpeg|gif|webp|woff2)$ {
expires 30d;
access_log off;
}
# PHP 超时与缓冲,避免 502/504
fastcgi_read_timeout 30;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
第四步:清理死链与修复跳转
把日志里 404 且来自 Baiduspider 的 URL 导出,能恢复的做 301 到相关内容,不能恢复的整理成 txt 在资源平台「死链提交」提交。
第五步:检查是否误封
复查 robots.txt 最近是否被改动;在 WAF/防火墙白名单里放行 Baiduspider(可通过反向解析校验真伪,详见蜘蛛识别相关做法)。
第六步:调整资源平台的抓取频次设置
资源平台提供「抓取频次」设置项(在”抓取”相关菜单下),可查看当前频次并做反馈/调整。注意:这里给的是”上限偏好”,如果站点本身响应慢或内容少,调高也不会立刻生效。
第七步:恢复期保持稳定
修复后不要频繁改版、改 URL 结构,保持稳定更新 2–4 周,频次通常逐步回升。
常见踩坑
- 只看总抓取量不看 UA 真伪:日志里写着 Baiduspider 的未必是真蜘蛛,伪造 UA 的垃圾爬虫会污染统计,需要反解校验。
- 把频次设置当成开关:设置只是偏好,真正的决定因素是站点响应与内容表现。
- 修完立刻天天看日志:恢复有周期,频繁改配置反而制造新的不稳定。
- 为提升频次大量发低质内容:短期抓取量上升,长期会触发质量评估下调,得不偿失。
- 案例:某站在一次主题大改后抓取频次从日均 1800 跌到 120。日志统计显示 404 占比高达 34%——改版时把文章 URL 从
/2026/10/post-name.html改成了/post-name/,旧链接全部 404 且未做 301。补上 301 规则并死链提交后,三周频次恢复到日均 1500 左右。 - CDN 回源慢被误判为站点慢:蜘蛛访问的是 CDN 节点,回源慢会体现在响应时间上,需要在 CDN 侧配置缓存规则。
- 服务器搬家后 DNS TTL 太长:百度仍解析到旧 IP,表现为”抓取下降”,实际是解析问题。
总结
判断标准:抓取频次下降后,先看响应码分布——5xx/403/404 任一项占比超过 1% 就优先修技术;技术无异常再看内容质量与更新节奏。行动清单:日志统计 7 天趋势与响应码 → 修服务器与超时 → 补 301、提交死链 → 复查 robots 与 WAF → 平台调频次偏好 → 稳定更新观察 2–4 周。若日志里根本看不到蜘蛛,应先做百度蜘蛛UA与IP段识别来确认来的到底是不是真百度。
