跳到主要内容

HTTP 状态码 - 为什么我的网站无法抓取?

2024-02-29

如果 SEO Spider 只抓取一个页面,或者没有按预期抓取,那么首先要检查的是“状态”和“状态码”。请在我们的指南中了解更多信息。


抓取时的 HTTP 状态码

如果 Screaming Frog SEO Spider 只抓取一个页面,或者没有按预期抓取,那么首先要检查的是“状态”和“状态码”,以帮助识别问题所在。

状态是 超文本传输协议 (HTTP) 的一部分,位于服务器响应标头中,由数字状态码和等效的文本状态组成。

当 URL 输入到 SEO Spider 中并启动抓取时,来自响应标头的 URL 的数字状态会显示在“状态码”列中,而等效的文本状态会显示在默认“内部”选项卡视图中的“状态”列中,例如:

状态码

以下是最常见的状态码,您在网站无法抓取时可能会遇到这些状态码,以及解决这些问题的步骤:

状态码 – 状态

0 – 被 Robots.txt 阻止
0 – DNS 查找失败
0 – 连接超时
0 – 连接被拒绝
0 – 连接错误 / 0 – 无响应
200 – OK
301 – 永久移动 / 302 – 临时移动
400 – 错误请求 / 403 – 禁止 / 406 – 不可接受
404 – 页面未找到 / 410 – 已删除
429 – 请求过多
500 – 内部服务器错误 / 502 – 错误网关 / 503 – 服务不可用


0 – 被 robots.txt 阻止

Spider 中的任何“0”状态码都表示缺少来自服务器的 HTTP 响应。该状态提供了关于为什么没有返回状态的线索。

在这种情况下,这表明站点的 robots.txt 阻止 SEO Spider 的用户代理访问请求的 URL。因此,由于 disallow 指令,看不到实际的 HTTP 响应。

robots.txt

需要检查的事项: 站点的 robots.txt 中禁止了什么?(在抓取的 URL 的子域上添加 /robots.txt)。

可以尝试的事项: 将 SEO Spider 设置为忽略 robots.txt(配置 > Robots.txt > 设置 > 忽略 Robots.txt)或使用自定义 robots.txt 配置以允许抓取。

原因: SEO Spider 默认遵守 disallow robots.txt 指令


0 – DNS 查找失败

根本找不到该网站,通常是因为该网站不存在,或者您的互联网连接不可用。

DNS 查找失败

需要检查的事项: 域名输入是否正确。

需要检查的事项: 该站点是否可以在您的浏览器中看到。

原因: 如果您无法在浏览器中查看该站点,则可能遇到 PC / 网络连接问题。如果您可以查看该站点,则某些东西(可能是防病毒软件或防火墙)阻止 Spider 连接到互联网,并且必须为其设置例外。


0 – 连接超时

当 SEO Spider 在设定的时间内(默认情况下为 20 秒)难以从服务器接收 HTTP 响应时,会发生连接超时。

连接超时

需要检查的事项: 您可以在浏览器中查看该站点吗?加载速度是否缓慢?

可以尝试的事项: 如果站点速度较慢,请尝试增加响应超时降低抓取速度

原因: 这使 SEO Spider 有更多时间接收信息,并减少了服务器的压力。

需要检查的事项: 可以抓取其他站点吗?(bbc.co.uk 和 screamingfrog.co.uk 是很好的控制测试)。

可以尝试的事项: 在防火墙/防病毒软件中为 SEO Spider 设置例外(请咨询您的 IT 团队)。

原因: 如果每个站点都出现此问题,则可能是您或您的 PC / 网络本地的问题。

需要检查的事项: 是否启用了代理(配置 > 系统 > 代理)。

可以尝试的事项: 如果启用,禁用代理

原因: 如果未正确设置,则可能意味着 SEO Spider 未正确发送或接收请求。


0 – 连接被拒绝

当 SEO Spider 的连接尝试在本地机器和网站之间的某个时刻被拒绝时,将返回“连接被拒绝”。

连接被拒绝

需要检查的事项: 您可以抓取其他站点吗?(bbc.co.uk 和 screamingfrog.co.uk 是很好的控制测试)。

需要检查的事项: 在防火墙/防病毒软件中为 SEO Spider 设置例外(请咨询您的 IT 团队)。

原因: 如果每个站点都出现此问题,则可能是您或您的 PC / 网络本地的问题。

需要检查的事项: 您可以在浏览器中查看该页面吗?或者它是否返回类似的错误?

可以尝试的事项: 如果可以查看该页面,请将 Chrome 设置为用户代理(配置 > 用户代理)。此处可能还需要启用 JavaScript 渲染(配置 > Spider > 渲染)。

如果这仍然不起作用,您可能需要在网站的 CDN 安全设置中将您的 IP 地址和“Screaming Frog SEO Spider”用户代理添加到允许列表中。

原因: 服务器拒绝 SEO Spider 对页面的请求(可能是作为针对未知用户代理的保护/安全措施)。


0 – 连接错误 / 0 – 无响应

SEO Spider 在建立连接或接收响应时遇到问题。

无响应

需要检查的事项: 代理设置(配置 > 系统 > 代理)。

可以尝试的事项: 如果启用,禁用代理

原因: 如果未正确设置,则可能意味着 SEO Spider 未正确发送/接收请求。

需要检查的事项: 您可以在浏览器中查看该页面吗?或者它是否返回类似的错误?

原因: 如果网络或站点存在问题,浏览器可能会遇到类似的问题。


200 – OK

从服务器接收响应没有问题,因此问题一定在于返回的内容。

200 OK

需要检查的事项: 请求的页面是否在页面上/在 HTTP 标头中具有 meta robots 'nofollow' 指令,或者页面上的所有链接是否都具有 rel='nofollow' 属性?

可以尝试的事项: 将配置设置为遵循内部/外部 Nofollow(配置 > Spider)。

原因: 默认情况下,SEO Spider 遵守“nofollow”指令。

需要检查的事项: 链接是否是 JavaScript?(在禁用 JavaScript 的情况下在浏览器中查看页面)

可以尝试的事项: 启用 JavaScript 渲染(配置 > Spider > 渲染 > JavaScript)。有关 JavaScript 抓取的更多详细信息,请参阅我们的 JavaScript 抓取指南

原因: 默认情况下,SEO Spider 只会抓取 HTML 源代码中的 <a href=””><img src=””><link rel=”canonical”> 链接,它不会读取 DOM。如果可用,SEO Spider 将使用 Google 弃用的 AJAX 抓取方案,这实际上意味着抓取渲染的 JavaScript 页面的 HTML 快照,而不是 JavaScript 版本的页面。

需要检查的事项: “配置 > Spider”的“限制”选项卡,特别是“限制搜索深度”和“限制搜索总数”。

原因: 如果这些分别设置为检查 0 或 1,则指示 SEO Spider 仅抓取单个 URL。

需要检查的事项: 该站点是否需要 cookies?(在禁用 cookies 的情况下在浏览器中查看页面)。

可以尝试的事项: 配置 > Spider > 高级选项卡 > 允许 Cookies

原因: 如果禁用 cookies,则可能会向 SEO Spider 提供单独的消息或页面,该消息或页面不会超链接到站点上的其他页面。

可以尝试的事项: 将用户代理更改为 Googlebot(配置 > 用户代理)。

原因: 该站点/服务器可能设置为向搜索机器人提供 HTML,而无需接受 Cookies。

需要检查的事项: “内容”列中指定了什么?

可以尝试的事项: 如果此项为空白,请启用 JavaScript 渲染(配置 > Spider > 渲染 > JavaScript)并重试抓取。

原因: 如果 HTTP 标头中未指定任何内容类型,则 SEO Spider 不知道 URL 是图像、PDF、HTML 页面等,因此无法抓取它以确定是否有任何其他链接。可以通过渲染模式绕过此问题,因为 SEO Spider 会检查是否在文档的 <head> 中指定了 <meta http-equiv>

需要检查的事项: 是否有年龄验证?

可以尝试的事项: 将用户代理更改为 Googlebot(配置 > 用户代理)。

原因: 该站点/服务器可能设置为向搜索机器人提供 HTML,而无需输入年龄。


301- 永久移动 / 302 – 临时移动

这意味着请求的 URL 已移动并重定向到其他位置。

301 重定向

需要检查的事项: 重定向目标是什么?(检查返回的 URL 的出站链接)。

可以尝试的事项: 如果这与起始 URL 相同,请按照我们的 为什么 URL 会重定向到自身 FAQ 中描述的步骤操作。

原因: 重定向在一个循环中,SEO Spider 永远无法到达可抓取的 HTML 页面。如果这是由于 cookie 被删除,则可以通过遵循上面链接的 FAQ 中的步骤来绕过此问题。

需要检查的事项: 外部选项卡

可以尝试的事项: 配置 > Spider > 抓取所有子域

原因: SEO Spider 将不同的子域视为外部域,默认情况下不会抓取它们。如果您尝试抓取重定向到不同子域的子域,它将在外部选项卡中报告。

需要检查的事项: 该站点是否需要 cookies?(在禁用 cookies 的情况下在浏览器中查看页面)。

可以尝试的事项: 配置 > Spider > 高级选项卡 > 允许 Cookies

原因: SEO Spider 被重定向到删除 cookie 的 URL,但它不接受 cookies。


400 – 错误请求 / 403 – 禁止 / 406 – 不可接受

服务器无法或不会处理请求 / 拒绝 SEO Spider 查看请求的 URL 的请求。

403 禁止

需要检查的事项: 您可以在浏览器中查看该页面吗?或者它是否返回类似的错误?

可以尝试的事项: 如果可以查看该页面,请将 Chrome 设置为用户代理(配置 > 用户代理)。此处可能还需要启用 JavaScript 渲染(配置 > Spider > 渲染)。

如果这仍然不起作用,您可能需要在网站的 CDN 安全设置中将您的 IP 地址和“Screaming Frog SEO Spider”用户代理添加到允许列表中。

原因: 该站点拒绝 SEO Spider 对页面的请求(可能是作为针对未知用户代理的保护/安全措施)。


404 – 页面未找到 / 410 – 已删除

服务器指示该页面已被删除。

404 未找到

需要检查的事项: 请求的 URL 是否在浏览器中加载正常页面?

可以尝试的事项: 状态码在其他工具中是否相同(WebsnifferRexswain浏览器插件 等)。

原因: 如果每个工具都错误地报告了状态码,则站点/服务器可能配置不正确,即使页面存在,也会提供错误响应代码。

可以尝试的事项: 如果可以查看该页面,请将 Chrome 设置为用户代理(配置 > 用户代理)。Googlebot 用户代理也值得测试,尽管站点阻止欺骗的 Googlebot 并不罕见。

原因: 站点正在向 SEO Spider 提供服务器错误(可能是作为针对未知用户代理的保护/安全措施)。


429 – 请求过多

在设定的时间内对服务器发出了太多请求。

需要检查的事项: 您可以在浏览器中查看您的站点吗?或者这是否显示类似的错误消息?

可以尝试: 降低抓取速度和/或测试 Chrome 用户代理

原因: 服务器不允许再发送更多请求,因为在短时间内发送了太多请求。降低请求速率或尝试此限制可能不适用的用户代理可能会有所帮助。


500 / 502 / 503 – 内部服务器错误

服务器表示它存在问题。

500 服务器错误

需要检查的事项: 您可以在浏览器中查看您的网站吗?或者网站是否已关闭?

可以尝试: 如果可以查看该页面,请将 Chrome 设置为用户代理(配置 > 用户代理)。Googlebot 用户代理也值得测试,尽管站点阻止欺骗的 Googlebot 并不罕见。

原因: 站点正在向 SEO Spider 提供服务器错误(可能是为了保护/安全,防止未知的用户代理)。

一个页面上可能存在多个此类问题,例如,一个 JavaScript 页面也可能具有 meta ‘nofollow’ 标签。

还有比这更多的响应代码,但在我们自己的经验中,这些代码很少遇到,甚至根本没有遇到。通过遵循与上述其他类似响应代码相同的步骤,很可能也可以解决其中的许多问题。

有关响应代码的更多详细信息,请访问 https://en.wikipedia.org/wiki/List_of_HTTP_status_codes