SEO专家启动大型网站的技术审核——10分钟后,Screaming Frog开始显示连续的403 Forbidden或429 Too Many Requests。保护服务器将爬虫视为攻击机器人并阻止了IP地址。结果是——审核需要重新启动,而客户需要解释为什么报告延迟。通过合理设置爬虫的代理可以解决这个问题——我们来看看具体如何操作。
为什么网站在审核时阻止Screaming Frog
Screaming Frog、Sitebulb、JetOctopus和Netpeak Spider在技术上与搜索引擎的机器人工作方式相同:它们快速遍历数千个URL,下载HTML、CSS、JS和图像,检查重定向和状态代码。从网站保护的角度来看(Cloudflare、Qrator、DDoS-Guard、托管服务的内置WAF),这看起来像是可疑活动——短时间内来自同一IP的请求过多。
尤其是在审核时,阻止的情况发生得特别频繁:
- 大型互联网商店在类似Wildberries的基础设施上,具有自己的爬虫保护;
- 在Cloudflare后面的网站,启用了“Under Attack”模式或高安全级别;
- 动态内容门户网站,每个请求都会对服务器造成负载(搜索、过滤、商品列表);
- 您分析的竞争对手网站,您不是从自己的域名访问——他们没有理由信任您的IP。
额外的复杂性:如果代理机构只有一个静态的办公室IP,而网站审核是定期进行的(每天几个客户),这个IP会迅速进入保护系统的黑名单。之后,不仅当前的审核会被阻止,未来从同一地址进行的审核也会被阻止——即使是以前没有问题的网站。
如何通过响应代码识别阻止
在更改代理设置之前,重要的是要了解到底发生了什么。Screaming Frog在状态代码列中显示响应代码——通过它可以轻松确定爬虫停止的原因。
| 响应代码 | 这意味着什么 | 该怎么办 |
|---|---|---|
| 403 Forbidden | IP被网站保护阻止 | 更换IP,降低爬虫速度 |
| 429 Too Many Requests | 请求数量超过时间限制 | 减少线程数量,增加延迟 |
| 503 Service Unavailable | 服务器过载或启用了防机器人保护 | 更换User-Agent,使用住宅IP |
| 无响应 / 超时 | IP在黑名单中,请求未到达 | 完全更换代理池 |
如果报告中大量出现相同的代码在数千个URL中——这几乎总是IP阻止,而不是网站的实际问题。验证假设很简单:在普通浏览器中用相同的IP打开有问题的URL。如果页面正常打开,而Screaming Frog收到403——问题出在爬虫上,而不是网站。
哪些代理适合SEO爬虫
代理类型的选择取决于任务:一次性审核自己的网站、定期监控竞争对手或扫描受保护的市场。我们来讨论三种主要类型及其在爬虫中的适用性。
| 代理类型 | 速度 | 被阻止的风险 | 何时使用 |
|---|---|---|---|
| 数据中心代理 | 高 | 在受保护的网站上中高 | 审核自己没有严格保护的网站 |
| 住宅代理 | 中 | 低 | 竞争对手审核、Cloudflare后的网站、市场 |
| 移动代理 | 中低 | 最小 | 最具攻击性的保护,稀有的点对点审核 |
对于大多数定期的技术审核,最佳平衡是使用住宅代理——它们使用真实的ISP IP地址,因此网站的保护将爬虫的请求视为普通用户的流量。这一点尤其重要,如果您分析的不是自己的域名,而是竞争对手的网站或具有严格反机器人系统的市场。
数据中心代理仍然是一个不错的选择,当您审核自己的网站并可以提前将IP范围添加到WAF或Cloudflare的白名单中——这样,扫描速度将达到最大而没有被阻止的风险。
在Screaming Frog中逐步设置代理
Screaming Frog原生支持代理,设置只需几分钟:
- 打开程序并转到菜单Configuration → System → Proxy。
- 勾选Use Proxy Server for All Traffic。
- 输入从提供商处获得的代理服务器的地址和端口。
- 如果代理需要通过用户名和密码进行身份验证——在第一次请求时在弹出窗口中输入它们。
- 点击OK并重新启动爬虫以应用设置。
重要提示:Screaming Frog在免费和付费版本中只能通过内置界面一次使用一个代理服务器。如果需要实时IP轮换(在扫描50,000页面以上时相关),请使用提供商端自动更换IP的代理——这不是在爬虫中设置的,而是在代理服务的个人账户中设置IP更换间隔(例如,每10分钟或每次新请求时)。
这种方案减轻了一个地址的负担:爬虫继续使用一个端口,而IP会自动更换,网站不会看到来自一个特定地址的异常高请求频率。
大型网站的速度和线程设置
即使使用有效的代理,过于激进的爬虫速度设置也会导致阻止。在Screaming Frog中,这由Configuration → Speed部分负责。对于100,000页面以上的网站,推荐的值是:
- Max Threads: 2–5用于受保护的网站,10–15用于没有严格保护的网站;
- Max URI/s: 在开始时限制为每秒2–3个请求,逐渐增加,同时观察响应代码;
- Custom User-Agent: 在Configuration → HTTP Header部分中使用真实浏览器的User-Agent,而不是标准的"Screaming Frog SEO Spider",如果网站根据标题阻止爬虫;
- Respect robots.txt / crawl-delay: 如果有Crawl-delay指令,请遵守——忽略通常会导致服务器级别的禁止。
对于具有激进反机器人保护的网站,建议仅在真正必要时启用JavaScript Rendering模式(例如在React/Vue的SPA网站上)——JS渲染会显著增加服务器负载,并在通过单个IP爬虫时增加被阻止的风险。
扫描100,000+页面时的IP轮换
网站越大,合理分配IP地址之间的负载就越重要。对于如此规模的审核,有两种方案:
按时间轮换。 IP每5–15分钟自动更换,与请求数量无关。适合均匀的长期爬虫,当扫描持续几个小时。
按请求轮换。 每个新的HTTP请求都从新的IP池中发出。此模式提供最大程度的阻止保护,但可能会干扰基于cookie的身份验证或网站的会话参数——对于纯技术审核(收集状态代码、重定向、元标签)来说,这并不关键。
对于同时审核多个客户网站的代理机构,合理地按项目划分IP池——这可以防止在一个域名上的阻止“误伤”到在其他网站上的IP声誉。
实践建议: 在大规模审核之前,使用当前的速度和代理设置对500–1000个URL进行测试爬虫。如果在此期间没有出现403/429错误,则可以放心地将扫描扩展到整个网站。
审核启动前的检查清单
- ✅ 代理已连接并测试可用性(通过curl或单独的浏览器检查);
- ✅ Max Threads和Max URI/s在第一次运行时设置为保守值;
- ✅ User-Agent设置正确,不会引起WAF的怀疑;
- ✅ 如果网站明确要求遵守Crawl-delay,则启用Respect robots.txt;
- ✅ 仅在真正必要时启用JavaScript Rendering;
- ✅ 在网站规模达到20,000–30,000页面时设置IP轮换;
- ✅ 启用爬虫进度保存(Configuration → Save Crawl),以防会话中断;
- ✅ 对于市场和受保护门户的审核,选择住宅或移动代理,而不是数据中心代理。
通过代理爬虫时的常见错误
启动时速度过快。 专家们常常立即设置最大线程,希望加快审核速度。结果,网站保护迅速反应,几分钟内整个代理池就被列入黑名单。
所有客户项目使用一个静态IP。 如果代理机构每月使用同一数据中心代理进行数十次审核,该IP的声誉会迅速下降——不同网站的保护系统通过共享数据库(例如Cloudflare IP Reputation)交换可疑地址的信息。
忽视地理定位。 如果被审核的网站针对特定地区(例如,俄罗斯的电子商务网站对外国流量进行地理封锁),使用来自其他国家的IP代理本身就会导致访问限制——即使没有激进的爬虫。
缺乏过程监控。 启动爬虫几个小时后,专家们常常不检查中间的响应代码。结果,直到完成时才发现问题,报告的一半都是阻止错误,而不是网站的实际数据。
结论
在Screaming Frog进行技术审核时,阻止几乎总是可以通过三种因素的组合来解决:正确的代理类型、合理的爬虫速度和合理的IP轮换。对于没有严格保护的自有网站,只需使用数据中心代理并添加到白名单即可。对于竞争对手、市场和Cloudflare后的网站审核,需要看起来像普通用户流量的IP。
如果您定期审核其他域名或受保护的平台,建议从住宅代理开始——它们降低了在最激进的反机器人系统中的阻止风险。对于在最大保护资源上的点对点任务,建议考虑移动代理,而对于大规模审核自己的基础设施,数据中心代理仍然是一个良好且快速的解决方案。