HTTP 狀態碼是伺服器回應瀏覽器請求時送出的三位數代碼,當使用者或搜尋引擎爬蟲訪問您的網站時,伺服器會用這個代碼告訴對方「請求成功了嗎」「網頁還在嗎」「需要轉址嗎」「伺服器壞掉了嗎」。在 2026 年的 AI 搜尋時代,ChatGPT、Perplexity、Google AI Overviews 等系統都依賴爬蟲抓取網頁,只要您的網站出現大量 4xx 或 5xx 狀態碼,不只 Google 排名會下降,連 AI 引擎能否引用您的內容都會受影響。這篇文章適合網站站長、SEO 人員、行銷主管、工程師閱讀,將完整介紹五大狀態碼類別、SEO 最關鍵的 7 個狀態碼、診斷工具與常見錯誤處理方式。
什麼是 HTTP 狀態碼?
HTTP 狀態碼(HTTP Status Code)是伺服器在收到瀏覽器或爬蟲的請求後,回傳給對方的三位數代碼。它就像是網站與訪客之間的「對話標籤」——告訴訪客請求是否成功、網頁是否存在、是否需要被導向到別處,或是伺服器本身是否出了問題。
HTTP 狀態碼就是伺服器與瀏覽器之間最簡短的回話。看不到它,但每一次點擊網頁,它都默默決定了使用者能不能看到內容、搜尋引擎要不要把網頁收進索引。
每個三位數狀態碼的第一個數字代表大類別,從 1 到 5 共五個範圍,後兩位數字則表示該範圍內的具體狀態。例如 200 代表成功,404 代表找不到網頁,301 代表永久重定向,500 代表伺服器內部錯誤。
HTTP 狀態碼的三個關鍵角色
HTTP 狀態碼影響的不只是訪客的瀏覽體驗,也同時牽動搜尋引擎與 AI 系統的判斷:
HTTP 狀態碼五大類別速查
HTTP 狀態碼依照第一個數字分為五大類別,每一類都代表不同性質的伺服器回應。記住這五個類別,大致就能判斷網站問題出在哪裡:
| 類別 | 代表意義 | SEO 影響 | 處理優先度 |
|---|---|---|---|
| 1xx | 資訊性回應,連線進行中 | 幾乎無影響 | 低 |
| 2xx | 請求成功(理想狀態) | 正向,可被正常索引 | 無需處理 |
| 3xx | 重定向(網頁被轉送) | 使用 301 可傳遞連結權重 | 中 |
| 4xx | 客戶端錯誤(網頁不存在或無權限) | 大量 404 會影響爬蟲信任度 | 高 |
| 5xx | 伺服器錯誤(主機端問題) | 嚴重影響爬蟲抓取與索引 | 最高 |
常見的狀態碼類別說明
- 1xx 資訊性回應(Informational) 連線正在進行中,通常瀏覽器與伺服器在背景處理,使用者幾乎不會察覺。例如 100 Continue 表示伺服器已收到請求標頭,客戶端可繼續送出主體。
- 2xx 成功回應(Success) 請求成功完成,伺服器回傳預期內容給瀏覽器。最常見的就是 200 OK——這代表網頁正常運作、可被索引、連結權重可正常傳遞。
- 3xx 重定向(Redirection) 請求被收到,但需要轉送到另一個位置。301 為永久重定向、302 為暫時重定向、304 為內容未修改。301 是 SEO 最重要的重定向,因為它能完整傳遞連結權重。
- 4xx 客戶端錯誤(Client Error) 請求有問題,通常是網頁不存在(404)、無權限(403)、請求格式錯誤(400)、需登入(401)。大量 4xx 會讓搜尋引擎與 AI 爬蟲判定網站維護不佳。
- 5xx 伺服器錯誤(Server Error) 客戶端請求是有效的,但伺服器無法完成。可能是程式錯誤(500)、服務暫停(503)、閘道逾時(504)。5xx 是最嚴重的錯誤,必須立即修復。
HTTP 狀態碼對 SEO 的影響
對 SEO 來說,HTTP 狀態碼不只是技術指標,而是決定網站能否被正確索引與排名的基礎條件。Google 爬蟲會根據狀態碼判斷:這個網頁要不要收進索引?要不要把連結權重傳遞下去?要不要把網頁從索引中移除?
網站的 SEO 健康度,通常從狀態碼分布就能看出端倪。一個 200 比例高、4xx/5xx 比例低的網站,自然比錯誤百出的網站更受爬蟲青睞。
狀態碼如何影響爬蟲行為
Google、Bingbot、以及 OpenAI 的 GPTBot、Perplexity 的 PerplexityBot 等 AI 爬蟲,都會依照狀態碼決定後續動作:
| 狀態碼 | 爬蟲行為 | 連結權重處理 |
|---|---|---|
| 200 OK | 正常抓取並索引 | 正常傳遞 |
| 301 永久重定向 | 更新索引指向新網址 | 幾乎 100% 傳遞 |
| 302 暫時重定向 | 保留原網址索引 | 不一定傳遞 |
| 404 找不到網頁 | 多次後從索引移除 | 權重消失 |
| 410 永久消失 | 立即從索引移除 | 權重消失 |
| 500 伺服器錯誤 | 降低爬取頻率 | 暫停判斷 |
| 503 暫停服務 | 暫停抓取,稍後重試 | 暫停判斷 |
大量錯誤狀態碼會傷害 Core Web Vitals 與爬取預算
Google 為每個網站分配「爬取預算(Crawl Budget)」,也就是爬蟲在固定時間內會抓取的頁面數量。如果網站有大量 5xx 錯誤,爬蟲會降低抓取頻率,新內容就更難被索引;如果有大量無意義 404,爬取預算就會被浪費在不存在的網頁上,影響真正重要內容的索引速度。
SEO 最重要的 7 個 HTTP 狀態碼
在數十種 HTTP 狀態碼中,真正會影響 SEO 與使用者體驗的核心狀態碼大約只有 7 個。掌握這 7 個,就能解決超過 95% 的網站狀態碼問題:
HTTP 200 - OK(成功)
這是您所有正常運作網頁應該回應的狀態碼。訪客可以順利讀到內容、爬蟲可以正常索引、連結權重可以完整傳遞。不需要做任何事,維持現狀就好。
HTTP 301 - 永久重定向(Moved Permanently)
當網址需要永久搬到另一個網址時,應該使用 301 重定向。301 告訴瀏覽器與爬蟲「這個網址永遠改去新位置了」,訪客會被自動轉送,而且幾乎所有的連結權重也會跟著傳遞過去。
雖然 Google 曾經宣稱 3xx 系列重定向會被平等對待,但實際測試顯示這並非完全屬實。301 仍然是永久搬遷網址時最推薦的方法,適用情境包括:網站換網域、HTTP 轉 HTTPS、移除尾斜線、合併重複內容頁。
HTTP 302 - 暫時重定向(Found / Moved Temporarily)
302 也會把訪客送到新網址,但它代表的意思是「暫時搬家,以後會回來」。搜尋引擎會繼續保留原網址在索引中,連結權重不一定會傳遞給新網址。
不要把 302 當作 301 來用。如果您的目的是永久搬遷網址(例如改網址結構),卻誤用了 302,搜尋引擎可能不會更新索引,新網址會難以累積排名。302 比較適合的情境是:活動頁短期重定向、A/B 測試、地區性導向。
HTTP 404 - 找不到網頁(Not Found)
404 代表伺服器找不到瀏覽器請求的網頁或檔案。這個狀態碼不會明確說明網頁是永久消失還是暫時消失,搜尋引擎需要多次抓取後才會決定是否從索引移除。
每個網站都會有一些 404 網頁,並不是所有 404 都需要處理。判斷原則是看這個網址過去是否有流量、外部連結、SEO 價值:
- 過去有流量或外部連結 → 用 301 重定向到最相關的頁面
- 純粹是輸入錯誤、機器人亂掃 → 保留 404 即可,但建議製作友善的客製化 404 頁面
- 產品下架、活動結束 → 用 301 導到分類頁或相關產品
HTTP 410 - 永久消失(Gone)
410 比 404 更明確,代表「這個網頁永遠消失了,不會回來」。爬蟲收到 410 後會比 404 更快將網頁從索引中移除,適合用在:
- 產品永久停售、不會再上架
- 活動已過期、不會重新舉辦
- 文章內容違規或需永久下架
- 網站清理時要主動告知爬蟲「這頁真的不要再來了」
HTTP 500 - 內部伺服器錯誤(Internal Server Error)
500 不是網頁不存在,而是伺服器本身出了問題無法處理請求。可能原因包括 PHP 程式錯誤、資料庫連線失敗、伺服器設定衝突等。一旦出現 500,人類訪客與爬蟲都會被擋在外面,連結權重也無法傳遞。
500 是最需要立即修復的錯誤。長時間出現 500 會嚴重影響搜尋排名,因為 Google 會認為網站維護不良。建議設定監控工具(如 UptimeRobot、Pingdom),一旦偵測到 500 就立即通知管理員。
HTTP 503 - 服務無法使用(Service Unavailable)
503 也是伺服器錯誤,但它代表「伺服器目前忙不過來,稍後再試」。常見原因有:伺服器超載、計劃性維護、暫時性流量爆衝。
當您要進行網站維護時,主動回傳 503 比直接讓網站變空白更聰明。配合 Retry-After 標頭告訴爬蟲什麼時候回來,Google 就會暫停抓取、不會誤判網頁永久消失,維護結束後排名也不會受影響。
301 與 302 重定向使用時機
301 與 302 是最容易被搞錯的兩個狀態碼。許多網站工程師為了「不影響 SEO」直接使用 302,結果反而讓排名停滯不前。以下整理兩者的關鍵差異:
判斷的關鍵不是「現在會不會回來」,而是「原本的網址未來是否還會存在」。如果原網址要永久退役 → 用 301;如果原網址未來會恢復使用 → 用 302。
301 適用情境
- 網域變更(例如從 oldsite.com 搬到 newsite.com)
- HTTP 升級為 HTTPS
- 網址結構調整(例如移除 .html 結尾、改用更語意化的網址)
- 合併重複內容頁、處理大小寫不一致
- 產品永久下架,需導向分類頁或替代產品
- www 與非 www 版本統一
302 適用情境
- 節慶活動頁、限時促銷頁的短期導流
- A/B 測試期間的版本切換
- 依使用者地區、語言、裝置動態導向
- 系統維護期間的臨時頁面(雖然 503 + Retry-After 更好)
- 會員登入後的暫時跳轉
404 錯誤處理的正確做法
404 是網站最常見的錯誤狀態碼,但處理方式並不是「全部都修掉」這麼簡單。不同性質的 404 需要不同的處理策略,錯誤的統一處理反而會傷害 SEO。
404 處理的四步驟流程
- 用 Google Search Console 找出所有 404 網址 進入「網頁索引」→「未編入索引」→「找不到(404)」,匯出全部 404 網址清單。同時可搭配 Screaming Frog、Ahrefs、Semrush 等工具補充。
-
判斷每個 404 的價值
檢查每個 404 網址過去是否有流量、是否有外部連結、是否有 SEO 排名。有價值的網址需要積極處理,無價值的網址可保留 404。
舊產品頁有 30 個外部連結 + 月流量 200 → 必須 301 導向新產品頁;系統自動產生的測試網址 → 直接保留 404 即可。
- 有價值的 404 用 301 導向相關頁面 導向的目標頁面必須與原網址主題相關。例如 /shoes/nike-001 失效 → 導向 /shoes/nike-category(分類頁),不是首頁。
- 製作友善的客製化 404 頁面 無法找到內容時,404 頁面應該提供:網站主導覽列、搜尋框、推薦熱門文章、聯絡方式。避免讓使用者看到「Not Found」就直接離開。
客製化 404 頁面應包含的元素
- 清楚的標題:「找不到網頁」「Page Not Found」
- 友善的說明文字,而不是技術錯誤訊息
- 網站搜尋框,讓使用者立即找替代內容
- 3–5 個熱門文章或熱銷產品的連結
- 回首頁、聯絡我們、網站地圖的入口
- 與品牌一致的設計風格(不要套用 Apache 預設樣板)
如何檢查網站的 HTTP 狀態碼?
要監測網站的 HTTP 狀態碼分布,可以使用以下工具。建議定期執行(至少每月一次),大型網站或電商建議每週檢查:
用 curl 指令快速檢查單一網址
如果您熟悉命令列,使用 curl 是檢查狀態碼最快的方式:
curl -I https://www.newscan.com.tw/seo/seo-guide.htm # 輸出範例: # HTTP/2 200 # server: nginx # content-type: text/html; charset=UTF-8 # 檢查重定向鏈 curl -IL https://oldsite.com/page
HTTP 狀態碼常見錯誤
以下是台灣中小企業網站最常見的 6 個 HTTP 狀態碼處理錯誤。只要避開這些陷阱,網站的技術 SEO 健康度就能提升一個層級:
- 把所有 404 都 301 導回首頁 這是最常見的錯誤。Google 會把這類「無關內容的 301」判定為軟性 404(Soft 404),反而傷害網站健康度。改善方式:只把有 SEO 價值(過去有流量或外部連結)的 404 導向「主題相關」的頁面,其餘保留 404 並製作友善頁面。
- 該用 301 卻用了 302 永久搬遷網址(例如 HTTP 升 HTTPS、改網域)時誤用 302,會讓搜尋引擎不更新索引、連結權重不傳遞,新網址排名遲遲上不去。改善方式:絕大多數搬遷情境都用 301,只有真的會回來的情境才用 302。
- 出現重定向鏈(Redirect Chain) A → B → C → D 這樣的多層重定向,每經過一層就會損失一些連結權重,也會拖慢載入速度、傷害 Core Web Vitals。改善方式:定期用 Screaming Frog 檢查,把所有中間跳轉拉平,讓 A 直接 301 到 D。
-
維護網站時直接讓網站變空白或回傳 404
爬蟲剛好在維護期間造訪,會誤判網站消失。改善方式:維護期間主動回傳
503 Service Unavailable並加上Retry-After標頭告訴爬蟲什麼時候回來,Google 會暫停抓取、不傷害排名。 - 沒有監測 5xx 錯誤就放著不管 5xx 是最嚴重的錯誤,但很多網站沒有監控機制,出問題了使用者打電話來才知道。改善方式:設定 UptimeRobot 或 Pingdom 即時監控,5xx 出現時立即通知,並定期查看 Google Search Console 的「網頁索引」報告。
-
把暫時性導向用「meta refresh」實作
HTML 的
<meta http-equiv="refresh">並不是正規的 HTTP 重定向,搜尋引擎可能不會傳遞連結權重,使用者體驗也較差。改善方式:使用伺服器層級的 301 或 302(透過 .htaccess、nginx config 或 CMS 重定向外掛)。
結論:HTTP 狀態碼是 SEO 健康度的體溫計
HTTP 狀態碼看似是後端技術名詞,實際上是網站 SEO 健康度的核心指標。一個網站 200 比例越高、4xx/5xx 越少,搜尋引擎與 AI 爬蟲就越願意頻繁造訪,新內容也越快被索引、被引用。
在規劃網站維護或 SEO 稽核時,可以用以下五個問題自我檢查:
- 網站的 4xx 錯誤是否低於總網址數的 5%,且都是無 SEO 價值的網址?
- 所有重要的舊網址搬遷,是否都使用 301 而不是 302?
- 是否有監控工具,在出現 5xx 錯誤時能立即通知?
- 網站維護期間,是否會主動回傳 503 + Retry-After 標頭?
- 是否有客製化的 404 頁面,而不是預設的伺服器錯誤畫面?
常見問答 FAQ
HTTP 狀態碼是什麼?有什麼用?
301 與 302 重定向有什麼差別?該用哪個?
網站出現 404 錯誤,需要全部修掉嗎?
404 與 410 有什麼不同?何時用 410?
網站維護時應該回傳哪個狀態碼?
Retry-After HTTP 標頭告訴爬蟲什麼時候回來。例如 Retry-After: 3600 代表 1 小時後重試。這樣做的好處是:Google 知道網站只是暫時無法服務,會暫停抓取但不會把網頁從索引中移除,維護結束後排名也不會受影響。常見的錯誤做法包括:1. 直接讓網站變空白或回傳 200 + 維護畫面——爬蟲會誤判為網站內容變空,可能影響索引。2. 回傳 404——爬蟲會以為網頁永遠消失,經過多次抓取後可能從索引移除。3. 用 302 導向維護頁——維護頁可能被誤索引取代真正的網頁。WordPress、Shopify 等主流 CMS 通常有專屬的維護模式,會自動回傳 503,只要啟用即可。自架網站可在 .htaccess 或 nginx config 中設定條件式 503 回應。
如何檢查網站的 HTTP 狀態碼?有哪些免費工具?
curl -I 網址 快速查單一網址、curl -IL 網址 查完整重定向鏈。