在網路世界裡,網站就像是一間間的店面,而搜尋引擎就像是指引顧客的導覽地圖。想要有更多的顧客造訪你的店面,除了要有精美的裝潢 (網站設計) 和豐富的商品 (網站內容) 之外,還有一個重要的環節常常被忽略,那就是網站的「HTTP 狀態碼」。
什麼是 HTTP 狀態碼?
HTTP 狀態碼是伺服器與瀏覽器之間溝通的暗號,每次你在瀏覽器輸入網址或點擊連結時,你的瀏覽器都會向網站伺服器發送請求,而伺服器收到請求後會回傳網頁內容以及一個 HTTP 標頭 (HTTP Header)。
HTTP 狀態碼就藏身在這個標頭裡,像是伺服器給瀏覽器的小紙條,告知網頁載入的狀況。而狀態碼大致分為五類:
- 1xx (Informational)
- 2xx (Success)
- 3xx (Redirection)
- 4xx (Client Error)
- 5xx (Server Error)
了解這些暗號,能幫助你瞭解如何提升網站效能,改善使用者體驗,進而提升SEO 排名。就讓我們一起來一步步了解這些狀態碼吧!
1xx 資訊狀態碼
相較於其他狀態碼家族,1xx 資訊狀態碼顯得格外低調,它們很少直接呈現在使用者眼前,但卻默默在透露著瀏覽器和伺服器之間的溝通進度和協商結果。
100 Continue
100 Continue 表示伺服器已收到請求的標頭部分,並且準備接收請求的正文部分。瀏覽器收到 100 Continue 後,就可以繼續傳送剩餘的請求數據。
101 Switching Protocols
當你使用線上聊天工具時,瀏覽器可能會發送 101 Switching Protocols 請求,將通訊協議從 HTTP 切換到 WebSocket,實現即時訊息傳送和接收。
102 Processing
102 Processing 用於 WebDAV (Web-based Distributed Authoring and Versioning) 協議,表示伺服器已收到請求,並且正在處理中,但尚未完成。這就像在餐廳點餐後,服務生告知你:「您的餐點正在製作中,請稍候。」
2xx 成功狀態碼
當你看到 2xx 開頭的狀態碼,就像收到伺服器給你比了一個讚,它表示伺服器成功處理了請求,並將請求的資源成功返回給瀏覽器。
200 OK
其中最常見的是 200 OK,代表你的網頁正常運作。例如,當你在瀏覽器中輸入網址並按下 Enter 鍵時,如果網站正常運作,伺服器就會回傳 200 OK 狀態碼,並將網頁內容傳送給瀏覽器顯示。
201 Created
另一個常見的狀態碼是 201 Created,通常在新增內容時出現,例如你建立了一個新的部落格文章,伺服器就會回傳201 Created,表示文章已成功建立。
204 No Content
而 204 No Content 則表示伺服器成功處理了你的請求,但沒有內容需要回傳,例如你刪除了一篇文章,伺服器就會回傳204 No Content,表示刪除成功。
3xx 重新導向狀態碼
3xx 開頭的狀態碼就像交通指揮,引導瀏覽器前往正確的網頁。
301 Moved Permanently
301 Moved Permanently 就像寄出一張「遷移通知」,宣告網站資源已經永久搬遷到新的網址。這就像是房子搬家一樣,舊地址已經失效,所有信件和訪客都應該前往新的地址。
假設你經營一個電商網站,將商品頁面的網址從 /product.php?id=123 改為 /products/123,就可以使用 301 重新導向將舊網址指向新網址,保留商品頁面的排名權重。
302 Found (Temporary Redirect)
302 Found (Temporary Redirect) 就像一張「臨時住宿券」,表示網頁資源暫時搬遷到新的網址,但舊網址仍然有效。這就像外出旅行借住朋友家一樣,只是暫時的,之後還會回到自己的家。
假設你的網站正在進行系統維護,可以使用 302 重新導向將使用者引導到一個顯示維護訊息的頁面,並告知預計完成時間。
304 Not Modified
304 Not Modified 會告訴瀏覽器,自上次造訪網頁以來,網頁內容並沒有更新。
而當你再次訪問同一個網站時,瀏覽器就會向伺服器發送請求,伺服器檢查後發現內容沒有變化,就會回傳 304 Not Modified,讓瀏覽器直接使用快取的版本。
4xx 錯誤狀態碼
4xx 開頭的狀態碼就像伺服器在提醒你:「等等,你的請求好像有點問題喔!」這時候你需要檢查一下你的請求是否正確。而 4xx 狀態碼又有分為以下幾個常見的種類。
400 Bad Request
400 Bad Request 表示你的請求格式有誤,伺服器無法理解。想像一下,你正在填寫一個購物網站的訂單,卻忘記填寫收件地址,按下送出按鈕後,網站可能會回傳 400 Bad Request,提醒你缺少必要的資訊。
401 Unauthorized
401 Unauthorized 表示你沒有權限存取這個網頁,可能是:
你尚未登錄或登錄訊息已過期。
輸入的用户名稱或密碼不正確。
403 Forbidden
403 Forbidden 則表示你雖然有帳號,但沒有權限存取這個特定網頁,就像你買了一般票卻想闖進 VIP 區一樣。
例如,你嘗試訪問一個網站的後台管理頁面,但你的帳戶沒有管理員權限,網站就會回傳 403 Forbidden,阻止你繼續訪問。
404 Not Found
而最常見的 404 Not Found 則表示你請求的網頁不存在,可能是網址輸入錯誤或是網頁已被刪除。404錯誤頁面對SEO的影響很大,因此要盡快修復這些錯誤連結。
429 Too Many Requests
另外還有一個常見的狀態碼是 429 Too Many Requests,表示你在短時間內發送了太多請求,超過了伺服器的限制。這通常發生在使用 SEO 工具或爬蟲程式時,需要調整請求頻率,避免被伺服器封鎖。
5xx 伺服器錯誤狀態碼
當瀏覽器回傳 5xx 狀態碼,就像網站發出了緊急求救訊號,表示伺服器端發生了錯誤,無法完成請求。
500 Internal Server Error
500 Internal Server Error 是最常見的伺服器端錯誤,它就像伺服器發出的求救訊號,表示伺服器遇到了意料之外的錯誤,無法處理請求。這個錯誤訊息通常比較籠統,沒有提供太多關於錯誤原因的資訊,因此需要深入分析 Server Log。
以下列出一些常見原因:
網站程式碼中存在 bug。
伺服器設定不正確。
資料庫連線失敗、資料庫查詢錯誤等。
網站流量過大,超過伺服器所能承受的負荷。
502 Bad Gateway
502 Bad Gateway 通常發生在使用代理伺服器 (Proxy Server) 的情況下,表示代理伺服器無法從後端伺服器取得有效的回應。這就像代理伺服器迷路了,找不到正確的路徑。
常見原因:
後端伺服器檔機或無法正常運作,導致代理伺服器無法取得回應。
代理伺服器與後端伺服器之間的網路連線中斷或不穩定,導致通訊失敗。
後端伺服器負擔過重,無法及時回應代理伺服器的請求。
503 Service Unavailable
503 Service Unavailable 表示伺服器目前無法處理請求,通常是因為伺服器正在維護或過載。伺服器需要休息一下,暫時無法提供服務。
504 Gateway Timeout
504 Gateway Timeout 也發生在使用代理伺服器的情況下,表示代理伺服器在等待後端伺服器回應時超時。這就像餐廳外場服務生等了很久,但後面廚房一直沒辦法完成餐點回應。
HTTP 狀態碼與 SEO 的關係
搜尋引擎爬蟲 (Googlebot) 也會在瀏覽你的網站時查看 HTTP 狀態碼。這些狀態碼會影響搜尋引擎理解你的網站,進而影響你的網站排名。一般來說,100 和 200 開頭的狀態碼表示一切正常,對 SEO 影響不大,但 300、400 和 500 開頭的狀態碼就需要特別注意了。
轉址對 SEO 的影響
302 重新導向通常用於暫時的搬遷。在 SEO 方面,早期的作法認為 302 不會傳遞頁面權重,應謹慎使用。但是,現在的搜尋引擎 (如 Google) 已經能夠根據具體情況傳遞權重。因此,若重新導向是短期的,302 是合適的選擇。
4xx 和 5xx 對 SEO 的影響
當搜尋引擎爬蟲遇到大量 404 錯誤時,會認為該網站維護不佳,造成較差的使用者體驗,進而增加跳出率及降低影響搜尋排名。
頻繁出現 500 錯誤會導致搜尋引擎爬蟲降低檢索網頁的頻率,造成真正需要被檢索的網頁無法獲得爬蟲的關注。
定期網站健檢
掌握 HTTP 狀態碼如同手握網站診斷的聽診器,定期執行網站健檢能幫助你及早發現網站存在的問題,避免小問題演變成大麻煩。
建議使用 Screaming Frog、DeepCrawl 等工具,模擬搜尋引擎爬蟲檢索網站頁面,並檢查 HTTP 狀態碼,找出錯誤連結、失效頁面等問題。或是使用 Google Search Console,監控網站的索引狀態、搜尋流量和錯誤訊息,規劃出一套 SEO 優化策略。