問題
網路怪事2026年9月6日為什麼看起來像 404 的頁,HTTP 卻是 200?
HTTP404Google Search
詳細說明
成功的是請求,不是「這頁存在」
瀏覽器畫面上的「找不到」,不必等於協定裡的 404。MDN 寫 `200 OK`:這次請求成功;若是 GET,伺服器取回了一份資源,放進回應正文。那份資源可以是任何 HTML——包括寫著「頁面不存在」的自訂錯誤頁。
`404 Not Found` 才表示伺服器找不到請求的資源。MDN 也說自訂 404 頁可以做,但那是給訪客看的外殼。Google Search Central 寫得更絕:自訂 404 頁只為使用者而做,從搜尋引擎的角度看沒有用處,伺服器必須回 `404` 狀態碼,才不會被索引。把同一張錯誤頁配上 `200`,協定層就當成功。
前端路由,還有 Google 認的 soft 404
單頁應用常把路由放在瀏覽器裡。Google 的 JavaScript SEO 說明寫:用戶端渲染、前端路由時,要回有意義的 HTTP 狀態碼,往往做不到或不實際;未知網址仍可能先拿到 `200` 的應用殼,再由腳本畫出「找不到」。他們給的避開方法是:用 JavaScript 轉到伺服器會回 `404` 的網址(例如 `/not-found`),或在錯誤頁加上 `noindex`。
Google 把「內容像錯誤、狀態碼卻是 200」叫做 soft 404;空白、沒有主內容的頁也算。演算法依內容判斷這其實是錯誤頁之後,Search Console 的 Page Indexing 報告會標出來,而且這類頁會被排除在搜尋之外。內容若真的沒了,應回 `404` 或 `410`;若搬了家,應回 `301`。
也有人這樣問
404 但是 200、soft 404、SPA 404 200、網址列成功但頁面找不到