跳到主要内容

百度抓取诊断报 403 和 503,我们怎么查源站

抓取诊断报 403 或 503,九成不是百度的问题,是源站的防火墙、CDN 或 UA 拦截把蜘蛛挡了。我们处理过 20 多次这类问题,我们处理过 20 多次这类问题,验证方法、三种常见原因和修复动作都在这篇,也写了一个反复出现的坑。

技术SEO 元析智能

抓取诊断报 403 或 503,九成不是百度的问题,是源站的防火墙、CDN 或 UA 拦截把蜘蛛挡了。2025 年到现在我们处理过 20 多次这类问题,原因就三种。

先确认是不是真的被挡

抓取诊断会给出状态码和抓取时间。403 是拒绝访问,503 是服务不可用。

两件事要确认:一是你自己用浏览器访问同一个 URL 是否正常;二是换个时间再诊断一次,排除偶发。

如果浏览器正常、诊断稳定报错,基本就是蜘蛛被针对性拦截了。

403 的三种原因

第一,CDN 或 WAF 的安全策略。很多云厂商的默认规则会拦截"非浏览器 UA",百度蜘蛛的 UA 里有 Baiduspider 字样,被当成爬虫挡掉。

第二,服务器的 UA 黑白名单。运维为了防采集,配了只允许常见浏览器 UA,把搜索引擎也挡了。

第三,IP 段被封。站点被恶意爬过之后,运维封了一批 IP,误伤了百度蜘蛛的出口 IP。

503 的两种原因

第一,源站负载高。蜘蛛来的时候正好赶上资源紧张,返回 503。这类问题通常伴随偶发,抓取诊断多试几次能复现。

第二,限流配置。Nginx 或云防火墙的限流规则太严,蜘蛛的并发请求触发了限流。

怎么验证

我们一般做三步。第一步,用 curl 带上百度蜘蛛的 UA 请求页面,看返回码。第二步,反查请求来源 IP 是否属于百度,百度蜘蛛的 IP 可以通过 DNS 反查确认。第三步,看服务器访问日志里百度蜘蛛的请求量和状态码分布。

三步做完,问题基本定位。我们最近一次排查,日志里百度蜘蛛的 403 占 78%,原因就是 CDN 的 UA 规则。

修复

CDN 和 WAF 加白名单,放行百度蜘蛛的 UA 和 IP 段;服务器 UA 规则里加搜索引擎的 UA;限流规则给蜘蛛单独放宽。

改完在抓取诊断里重新抓一次,确认状态码 200。再观察一周抓取频次有没有恢复。

一个反复出现的坑

换 CDN 之后忘了同步白名单,是我们遇到最多的情况。今年 3 月一个客户迁移 CDN,迁移当晚百度蜘蛛就被挡了,抓取诊断全报 403,三天后才发现。

这类问题的特点是:站点访问正常、Google 也正常(Google 的爬虫 IP 段被新 CDN 默认放行),只有百度有问题。所以盯抓取诊断,比盯总流量更早发现问题。

一句判断

这类问题最冤的地方在于:站点本身没问题,内容也没问题,就是被自己的安全配置挡在门外。上线新站或者换 CDN 之后,第一件事应该是跑一次抓取诊断。

标签:抓取诊断百度蜘蛛服务器配置
元

元析智能

为软件公司做 SEO 和 GEO 优化

Start with a diagnosis

聊聊你的软件产品

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