城市分站GEO系统爬虫限制完整判断方案
爬虫限制分三层:CDN/WAF边缘限流、Nginx/服务器IP限流、站点被搜索引擎降抓取预算;区分「误拦截正规AI/搜索引擎爬虫(豆包DoubaoBot、百度Baiduspider、文心Bot)」和「正常拦截恶意采集爬虫」,从状态码日志、抓取行为、收录流量、页面访问测试、配置规则5个维度综合判断。
一、第一层:HTTP状态码直接判定(最直观)
查看Nginx/CDN访问日志,筛选正规爬虫UA(DoubaoBot、Baiduspider、QwenBot、BaiduSpider-AI)对应的返回码,出现以下代表触发爬虫限制:
429 Too Many Requests(明确限流)短时间同一爬虫IP大量出现429,代表频率超限,CDN/Nginx开启速率限制,直接拦截抓取。
403 Forbidden(IP封禁/UA拦截)爬虫UA返回403,分为两种:
全局拦截:所有爬虫统一403(robots、WAF误封);
单IP封禁:单一爬虫IP持续403,其他爬虫正常。
503 Service Unavailable(服务器过载限流)并发抓取打满带宽/连接数,服务器临时拒绝爬虫访问,属于被动爬虫限制。
页面返回验证码(状态码仍200,隐性拦截)爬虫访问页面弹出滑块/文字验证,源码包含「安全验证、人机验证」关键词,CDN智能风控识别爬虫特征拦截,日志200但无法正常抓取内容。
正常无拦截标准
正规爬虫UA全部返回200 OK,无批量429/403/503,无验证页面。
二、第二层:服务器&CDN日志深度核验(精准定位拦截来源)
1. Nginx日志排查(自建服务器)
实时过滤爬虫UA日志:
tail -f /var/log/nginx/access.log | grep -E "DoubaoBot|Baiduspider|QwenBot"
统计限流标记:日志中
$limit_req_status出现429/403,代表Nginxlimit_req限流规则命中爬虫。查看error.log:大量
limiting connections、request rate exceeded日志,说明连接/频率限制生效。
2. CDN后台日志排查(绝大多数分站使用CDN)
访问CDN「访问日志/抓取日志」,筛选AI爬虫UA;
查看拦截类型:频率控制、Bot风控、IP黑名单、UA拦截;
指标:爬虫回源率暴涨、缓存命中率暴跌,说明爬虫被拦截只能少量穿透回源;
告警:CDN触发CC防护、Bot防护、高频访问告警,代表爬虫被限制。
3. 区分拦截对象(关键)
恶意采集爬虫(无名UA、Requests/curl特征)被拦截:正常防护,无需处理;
DoubaoBot、Baiduspider、文心Bot等正规AI爬虫大量429/403/验证:误触发爬虫限制,会直接大幅降低收录。
三、第三层:抓取行为数据异常(站长平台/爬虫监控)
1. 抓取频次断崖下跌(核心特征)
百度资源平台、豆包站长后台、自研爬虫监控查看每日抓取量;
正常:爬虫抓取量平稳小幅波动(±15%);
触发限制:单日抓取量暴跌≥40%,持续2–7天无回升;
细分:新城市页面完全无抓取记录,旧页面抓取量腰斩。
2. 抓取延迟飙升
爬虫单次页面响应时间从<300ms涨到1s以上,CDN/服务器限流排队,属于软性爬虫限制。
3. 抓取拒绝占比升高
站长平台显示「抓取失败占比」持续>20%,失败原因为:访问超时、服务器拒绝、安全拦截。
四、第四层:收录&流量业务侧表现(限制带来的结果佐证)
若前三层日志无法确认,通过收录数据反向验证爬虫限制:
收录率持续下滑新增城市页面「已发现、未收录」占比大幅提升,爬虫抓取但无法完整读取页面,被过滤不收录;
总收录量连续两月下跌无大规模删页、无改版,收录持续减少,爬虫抓取预算被平台缩减(站点被判定低质/频繁拦截爬虫);
AI自然曝光、本地关键词流量同步暴跌 豆包、文心、百度本地长尾词曝光量下滑50%+,爬虫抓取不足导致页面失去AI推荐权重;
新分站长期零收录 新建城市页面上线15天无收录,sitemap正常提交,大概率爬虫持续被拦截无法抓取。
五、第五层:手动测试验证(快速复现拦截)
测试1:模拟正规爬虫UA访问
使用curl携带标准爬虫UA请求任意城市页面,观察返回码与页面内容:
# 模拟豆包爬虫 curl -A "DoubaoBot" https://域名/城市目录/ # 模拟百度爬虫 curl -A "Baiduspider" https://域名/城市目录/
返回429/403/验证页 = 触发爬虫限制;
返回完整页面200 = 无拦截。
测试2:高频循环模拟抓取
循环10次同一爬虫请求,若前3次200,后续429,代表频率限流规则生效。
测试3:白名单对比测试
将豆包、百度爬虫IP段加入CDN/WAF白名单;
复测抓取状态码、抓取量;
抓取量恢复、无429 → 确认是风控误拦截正规爬虫。
六、第六层:配置文件排查(找到限制源头)
robots.txt错误拦截错误写入
Disallow: /、屏蔽城市分站目录、屏蔽sitemap,主动禁止爬虫抓取,属于人为爬虫限制; 校验:站长平台robots检测工具,查看是否允许DoubaoBot/Baiduspider。Nginx限流配置
limit_req_zone、limit_conn设置过低阈值,未对白名单爬虫放行,一刀切限流所有访问。CDN/WAF Bot防护策略开启「通用Bot拦截、高频访问拦截」,未添加AI爬虫UA白名单;CC防护阈值过低,爬虫并发直接触发拦截。
服务器防火墙/安全组iptables、云安全组封禁爬虫IP段,或连接数限制过低。
七、爬虫限制分级判定标准
1. 轻度限制(软性限流)
少量429,抓取量小幅下跌20%以内;
无403、无验证页面;
收录小幅放缓,无断崖下跌; 影响:新页面收录周期拉长。
2. 中度限制(明显拦截)
大量429,部分爬虫IP返回403;
每日抓取量暴跌40%–70%;
新增页面大量「已发现未收录」; 影响:城市分站收录率持续走低,本地流量下滑。
3. 重度限制(完全封禁爬虫)
正规AI爬虫全量403/验证页面;
爬虫抓取量接近0;
全站收录持续清退,关键词流量近乎归零; 影响:GEO渠道彻底失效,所有城市分站无自然曝光。
八、快速排查流程(落地操作步骤)
导出CDN/Nginx访问日志,过滤DoubaoBot、Baiduspider等正规爬虫UA,统计429/403/验证页面占比;
查看站长平台抓取统计,确认抓取量是否断崖下跌;
curl模拟爬虫UA访问,复现拦截状态码;
检查CDN/WAF Bot防护、Nginx限流、防火墙规则,确认是否未添加爬虫白名单;
对比收录数据,验证抓取受限是否同步带来收录下跌;
区分:拦截恶意爬虫(正常)/拦截正规AI爬虫(故障,需立即放开白名单)。
九、城市分站GEO专属避坑要点
城市分站页面量大、爬虫7×24持续抓取,CDN默认Bot规则极易误拦豆包、百度爬虫,必须单独配置UA白名单;
不要全局一刀切限流,给正规AI爬虫单独设置宽松Crawl-delay、无频率限制;
区分「恶意采集爬虫拦截」和「AI爬虫误拦截」,不要为防采集直接限制搜索引擎爬虫,会彻底丢失本地AI流量;
爬虫限制优先出现在CDN边缘节点,优先排查CDN防护策略,再看服务器Nginx配置。
