HTTP 状态代码以及网络连接错误和 DNS 错误对 Google 搜索有何影响

本文介绍了不同的 HTTP 状态代码、网络连接错误和 DNS 错误对 Google 搜索有何影响。我们在本文中介绍了 Googlebot 在网络上最常遇到的 20 个状态代码,以及最突出的网络连接错误和 DNS 错误,但未介绍一些较奇特的状态代码,例如 418 (I'm a teapot)。本文中提及的所有问题都会在 Search Console 的“抓取统计信息”报告中生成相应的错误或警告。

HTTP 状态代码

HTTP 状态代码是由托管网站的服务器在对客户端(如浏览器或抓取工具)发出的请求作出响应时生成的。每个 HTTP 状态代码都有不同的含义,但请求结果往往相同。例如,有多个状态代码会发出重定向信号,但它们的结果是相同的。

Search Console 会为 4xx–5xx 范围内的状态代码和失败的重定向 (3xx) 生成错误消息。如果服务器返回 2xx 状态代码,则响应中接收到的内容可能会被考虑编入索引。

HTTP 状态代码
2xx (success)

Google 会考虑将内容编入索引。如果内容表明有错误,例如空网页或错误消息,则 Search Console 会显示软 404 错误

200 (success)

Googlebot 会将内容传递给索引编制流水线。索引编制系统可能会将内容编入索引,但不保证一定会。

201 (created)
202 (accepted)

Googlebot 会等待内容一段时间,然后将其接收的任何内容传递给索引编制流水线。超时时长取决于用户代理,例如,Googlebot(智能手机版)的超时时长可能与 Googlebot Image 的不同。

204 (no content)

Googlebot 会向索引编制流水线发出信号,指示它未收到任何内容。Search Console 可能会在网站的“索引涵盖范围”报告中显示软 404 错误。

3xx (redirection)

Googlebot 会跟踪最多 10 次重定向。如果抓取工具在 10 次重定向内没有收到内容,则 Search Console 会在网站的“索引涵盖范围”报告中显示重定向错误。Googlebot 跟踪的重定向次数取决于用户代理;例如,Googlebot(智能手机版)的重定向次数值可能不同于 Googlebot Image。

Googlebot 重定向网址中收到的任何内容都会被忽略,最终目标网址的内容会被考虑编入索引。

301 (moved permanently)

Googlebot 会跟踪重定向,并且索引编制流水线会将该重定向用作指示重定向目标应是规范网址的信号。

302 (found)

Googlebot 会跟踪重定向,并且索引编制流水线会将该重定向用作指示重定向目标应是规范网址的信号。

303 (see other)
304 (not modified)

Googlebot 会向索引编制流水线发出信号,指示内容与上次抓取的内容相同。索引编制流水线可能会重新计算网址的信号,除此之外,此状态代码对索引编制没有任何影响。

307 (temporary redirect) 等同于 302
308 (moved permanently) 等同于 301
4xx (client errors)

Google 的索引编制流水线不会考虑将返回 4xx 状态代码的网址编入索引,而已编入索引且返回 4xx 状态代码的网址会从索引中移除。

Googlebot 从会返回 4xx 状态代码的网址收到任何内容都将被忽略。

400 (bad request)

系统对 429 之外的所有 4xx 错误都采用同一种处理方式:Googlebot 向索引编制流水线发出信号,指示内容不存在。

索引编制流水线会将之前已编入索引的网址从索引中移除。 系统不会处理新遇到的 404 网页。抓取频率会逐渐降低。

401 (unauthorized)
403 (forbidden)
404 (not found)
410 (gone)
411 (length required)
429 (too many requests)

Googlebot 会将 429 状态代码视为服务器过载的信号,这被视为服务器错误。

5xx (server errors)

5xx429 服务器错误会提示 Google 抓取工具暂时减慢抓取速度。已编入索引的网址仍会保留在索引中,但最终会被丢弃。

Googlebot 从会返回 5xx 状态代码的网址收到任何内容都将被忽略。

500 (internal server error)

Googlebot 会降低网站的抓取速度。抓取速度下降幅度与返回服务器错误的具体网址数量成比例。 Google 的索引编制流水线会从索引网址中移除始终返回服务器错误的网址。

502 (bad gateway)
503 (service unavailable)

网络连接错误和 DNS 错误

网络连接错误和 DNS 错误会对网址在 Google 搜索中的显示情况迅速产生负面影响。 Googlebot 处理网络超时、连接重置和 DNS 错误的方式与处理 5xx 服务器错误的方式类似。如果发生网络连接错误,抓取速度会立即开始减慢,因为网络连接错误表明服务器可能无法处理服务负载。由于 Googlebot 无法访问托管网站的服务器,因此它尚未从该服务器收到任何内容。缺少内容意味着 Google 无法将已抓取的网址编入索引,并且系统会在几天内从 Google 索引中移除无法访问的已编入索引网址。Search Console 可能会针对每个相应的错误生成错误。

调试网络连接错误

这些错误会在 Google 开始抓取网址前或在 Google 抓取网址期间发生。 由于错误可能会在服务器能响应之前发生,因此没有可提示问题的状态代码,诊断这些错误可能难度更大。如需调试超时和连接重置错误,请执行以下操作:

  • 查看防火墙设置和日志。可能存在过于宽泛的屏蔽规则集。确保 Googlebot IP 地址未被任何防火墙规则屏蔽。
  • 查看网络流量。使用 tcpdumpWireshark 之类的工具捕获和分析 TCP 数据包,并查找指向特定网络组件或服务器模块的异常。
  • 如果找不到任何可疑情况,请与您的托管公司联系

错误可能发生在负责处理网络流量的任何服务器组件中。例如,过载的网络接口可能会丢弃导致超时(无法建立连接)的数据包并重置连接(由于端口被错误地关闭而发送 RST 数据包)。

调试 DNS 错误

导致 DNS 错误最常见的原因是配置错误,但也可能是由于防火墙规则阻止了 Googlebot DNS 查询。如需调试 DNS 错误,请执行以下操作:

  • 检查防火墙规则。确保没有任何 Google IP 被防火墙规则屏蔽,并且允许 UDPTCP 请求。
  • 查看 DNS 记录。请仔细检查您的 ACNAME 记录是否分别指向正确的 IP 地址和主机名。例如:
    dig +nocmd example.com a +noall +answer
    dig +nocmd www.example.com cname +noall +answer
  • 请检查您的所有域名服务器是否指向您网站的正确 IP 地址。例如:
    dig +nocmd example.com ns +noall +answer
    example.com.    86400  IN  NS  a.iana-servers.net.
    example.com.    86400  IN  NS  b.iana-servers.net.
    dig +nocmd @a.iana-servers.net example.com +noall +answer
    example.com.    86400  IN  A  93.184.216.34
    dig +nocmd @b.iana-servers.net example.com +noall +answer
    ...
  • 如果您在过去 72 小时内更改了 DNS 配置,则可能需要等待更改传播到全球 DNS 网络。
  • 如果您运行的是自己的 DNS 服务器,请确保它运行状况良好,并且没有过载。