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
狀態碼回應,系統可能會將收到的回應內容納入索引。
下表列出 Googlebot 最常遇到的 HTTP 狀態碼,並說明 Google 如何處理每個狀態碼。
HTTP 狀態碼 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Google 會先查看網頁內容,再決定是否建立索引。如果內容疑似有誤 (例如空白網頁或錯誤訊息),Search Console 就會顯示
|
|||||||||||
|
Googlebot 最多採用 10 個重新導向躍點。如果檢索器未在 10 個躍點內收到內容,Search Console 就會在網站的網頁索引報表中顯示重新導向錯誤。Googlebot 採用的躍點數量視使用者代理程式而定,例如 Googlebot Smartphone 和 Googlebot Image 的值可能有所差異。
在使用 robots.txt 的情況下,Googlebot 會依據 RFC 1945 的定義追蹤至少五個重新導向躍點,之後便會停止並判定 robots.txt 檔案發生 Googlebot 從重新導向網址中收到的所有內容都會遭到忽略,而最終目標網址的內容則有可能納入索引。
|
|||||||||||
|
Google 的索引管道不會對傳回
系統會忽略 Googlebot 從傳回
|
|||||||||||
|
如果 robots.txt 檔案超過 30 天才傳回伺服器錯誤狀態碼,Google 會使用 robots.txt 的最後一個快取副本。如果找不到快取資料,Google 則會假設沒有任何檢索限制。
系統會忽略 Googlebot 從傳回
|
soft 404
個錯誤
soft 404
錯誤是指您的網址所傳回的頁面告知使用者該網頁不存在,但同時又傳回 200 (success)
(成功) 狀態碼。在某些情況下,傳回的頁面可能沒有主要內容或空白網頁。
網站的網路伺服器、內容管理系統或使用者的瀏覽器會因為許多原因產生這類網頁。例如:
- 缺少伺服器端 (Server-Side Include) 檔案。
- 與資料庫的連線中斷。
- 內部搜尋結果網頁空白。
- JavaScript 檔案未載入或遺失。
傳回 200 (success)
狀態碼不但會導致使用者體驗不佳,還會在網頁中顯示或建議錯誤訊息或某種錯誤。使用者可能認為網頁是實際上線的網頁,但其實卻是錯誤的網頁。這類網頁已從 Google 搜尋中排除。
如果 Google 的演算法在偵測網頁內容時,發現該網頁實際上是錯誤網頁,Search Console 便會在網站的網頁索引報表中顯示轉址式 soft 404
錯誤。
修正 soft 404
錯誤
下列幾種方法都能解決 soft 404
錯誤,要採用哪種方法視網頁的狀態和您想要的結果而定:
請試著判斷哪一種解決方案最適合您的使用者。
網頁和內容已不存在
如果您已移除網頁,且網站上沒有內容類似的替代網頁,請傳回 404 (not found)
(找不到) 或 410 (gone)
(不存在) 等回應代碼 (狀態碼)。這些狀態碼會告訴搜尋引擎該網頁不存在,且不要為該內容建立索引。
如果您能夠存取伺服器的設定檔,可以透過自訂錯誤網頁,提供對使用者有所助益的資訊。良好的自訂 404
網頁可協助使用者找到所需的資訊,同時提供其他實用內容,鼓勵使用者進一步瀏覽網站的其他部分。以下提供幾項提示,說明如何設計實用的自訂 404
網頁:
- 明確告訴訪客,系統找不到他們所需的網頁。請使用友善且具吸引力的語句。
-
確認
404
網頁與您網站的其餘部分使用相同的風格和外觀 (包括導覽方式)。 - 考慮加入連結,指向網站上最熱門的幾篇文章以及首頁。
- 考慮為使用者提供回報無效連結的方法。
自訂 404
網頁是專為使用者建立的網頁。由於搜尋引擎對這些網頁來說並無用處,因此伺服器必須傳回 404
HTTP 狀態碼,以避免為網頁建立索引。
網頁或內容現已移至其他位置
如果網頁已移到他處,或者有明確的替代網頁,請傳回 301 (permanent redirect)
(永久重新導向) 狀態碼,將使用者重新導向。這個方法能夠保持使用者擁有完整的瀏覽體驗,也很適合告訴搜尋引擎網頁的新位置在哪裡。請使用網址檢查工具驗證網址是否確實傳回正確代碼。
網頁和內容仍然存在
如果系統將某個狀態正常的網頁標示為 soft 404
錯誤,可能是因為 Googlebot 無法正確載入該網頁、缺少重要資源,或者轉譯期間顯示醒目的錯誤訊息。請使用網址檢查工具檢查轉譯內容和傳回的 HTTP 代碼。如果轉譯出來的網頁為空白、幾乎空白或內容顯示錯誤訊息,可能是因為網頁參照的多數資源 (例如圖片、指令碼和其他非文字元素) 無法載入,可以解讀為 soft 404
。
至於資源無法載入的原因,則可能是因為資源遭到封鎖 (例如遭 robots.txt 封鎖)、同一網頁上含有過多資源、發生各種伺服器錯誤、載入速度緩慢或資源太大。
網路錯誤和 DNS 錯誤
網路錯誤和 DNS 錯誤會對網址在 Google 搜尋中的排名產生負面影響,而且非常快速。Googlebot 處理 5xx
伺服器錯誤的方式,與網路逾時、連線重設和 DNS 錯誤的處理方式相似。在發生網路錯誤的情況下,檢索器會立即降低檢索頻率,因為網路錯誤即代表伺服器可能無法處理運作中的負載量。由於 Googlebot 無法連線至代管網站的伺服器,因此 Google 也未收到伺服器中的任何內容。缺少內容表示 Google 無法為已檢索的網址建立索引,而且無法存取的已檢索網址,在幾天內就會從 Google 索引中移除。Search Console 可能會針對各項錯誤產生對應的錯誤訊息。
網路錯誤偵錯
無論是在 Google 開始檢索網址前,或是 Google 正在檢索網址的當下,這類錯誤都會發生。如果網路錯誤發生在伺服器回應之前,系統便無法提供對應的狀態碼,因此要診斷這些錯誤可能並不容易。如要排除逾時和連線重設錯誤,請執行下列操作:
- 查看防火牆的設定和記錄,可能有某個封鎖規則組合的適用範圍過於廣泛。請確認 Googlebot IP 位址並未遭到任何防火牆規則封鎖。
- 查看網路流量。使用 tcpdump 和 Wireshark 等工具擷取並分析 TCP 封包,並找出指向特定網路元件或伺服器模組的異常狀況。
- 如果找不到任何可疑項目,請與您的代管公司聯絡。
任何處理網路流量的伺服器元件中都有可能出現這類錯誤。舉例來說,超載的網路介面可能會拒絕導致逾時 (無法建立連線) 和連線重設 (因誤關通訊埠而傳送了 RST
封包) 的封包。
DNS 錯誤偵錯
DNS 錯誤最常見的原因是設定錯誤,不過也可能是因為防火牆規則封鎖了 Googlebot DNS 查詢所造成。如要偵錯 DNS 錯誤,請執行下列操作:
-
檢查防火牆規則。請確認 Google 使用的任何 IP 皆未遭到任何防火牆規則封鎖,且系統允許
UDP
和TCP
要求。 -
查看您的 DNS 記錄。再次確認您的
A
和CNAME
記錄是否分別指向正確的 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.34dig +nocmd @b.iana-servers.net example.com +noall +answer
... - 如果您在過去 72 小時內曾變更 DNS 設定,請等候一段時間,讓相關變更在全球 DNS 網路中全面生效。如要加快更新速度,您可以清除 Google 的公用 DNS 快取。
- 如果您使用自己的 DNS 伺服器,請確保伺服器的運作情況良好,不會發生超載情形。