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 Smartphone 和 Googlebot Image 的逾時時間可能有所差異。

204 (no content)

Googlebot 會向索引管道發出信號,說明檢索器未收到任何內容。Search Console 可能會在網站的索引涵蓋範圍報表中顯示轉址式 404 錯誤。

3xx (redirects)

Googlebot 最多採用 10 個重新導向躍點。如果檢索器未在 10 個躍點內收到內容,Search Console 就會在網站的索引涵蓋範圍報表中顯示重新導向錯誤。Googlebot 採用的躍點數量視使用者代理程式而定,例如 Googlebot Smartphone 和 Googlebot Image 的值可能有所差異。

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 狀態碼的網址從索引中移除。

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 檢索器暫時降低檢索頻率。系統會將已建立索引的網址保留在索引中,但最終會予以移除。

500 (internal server error)

Googlebot 會降低網站檢索頻率。檢索頻率降低時,即表示傳回伺服器錯誤的個別網址數量增加。Google 的索引管道會將持續傳回伺服器錯誤的網址從索引中移除。

502 (bad gateway)
503 (service unavailable)

網路錯誤和 DNS 錯誤

網路錯誤和 DNS 錯誤會對網址在 Google 搜尋中的排名產生負面影響,而且非常快速。Googlebot 處理 5xx 伺服器錯誤的方式,與網路逾時、連線重設和 DNS 錯誤的處理方式相似。在發生網路錯誤的情況下,檢索器會立即降低檢索頻率,因為網路錯誤即代表伺服器可能無法處理運作中的負載量。如果系統無法連上已建立索引的網址,便會在幾天內予以移除。Search Console 可能會針對各項錯誤產生對應的錯誤訊息。

排除網路錯誤

無論是在 Google 開始檢索網址前,或是 Google 正在檢索網址的當下,這類錯誤都會發生。如果網路錯誤發生在伺服器回應之前,系統便無法提供對應的狀態碼,因此要診斷這些錯誤可能並不容易。如要排除逾時和連線重設錯誤,請執行下列操作:

  • 查看防火牆的設定和記錄。其中的封鎖規則組合適用範圍可能過於廣泛。
  • 查看網路流量。使用 tcpdumpWireshark 等工具擷取並分析 TCP 封包,並找出指向特定網路元件或伺服器模組的異常狀況。
  • 如果找不到任何可疑項目,請與您的代管公司聯絡

任何處理網路流量的伺服器元件中都有可能出現這類錯誤。舉例來說,超載的網路介面可能會拒絕導致逾時 (無法建立連線) 和連線重設 (因誤關通訊埠而傳送了 RST 封包) 的封包。

排除 DNS 錯誤進

設定錯誤是造成 DNS 錯誤的主因。如要排除 DNS 錯誤,請執行下列操作:

  • 查看您的 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 伺服器,請確保伺服器的運作情況良好,不會發生超載情形。