仲介交易 SEO診斷 淘寶客 雲主機 技術大廳
HTTP 404 錯誤意味著連結指向的網頁不存在。 在網站建設中想要完全避免這種情況是不可能的,比如說,我們常常需要對網站進行調整、改版,便會有網頁被刪除、改名或移動位置,這時候,雖然相應內容的網頁還存在於網站中,但使用原來的位址訪問則無法訪問。 ——當然,對這類情況首先要考慮的是為原來頁面位址做301重定向,以盡可能地減小對SEO效果的影響。 ——其次,在別人建立指向網站的連結時,也可能會由於出現拼寫錯誤而使其成為一個不正確連結:在網站內找不到相應的內容頁面。
簡單說來,這類無效連結是由web伺服器自動處理的:當Web 服務器接到類似的資料請求量,會返回一個 404 狀態碼,告訴對方其要請求的資源並不存在。 但是,Web伺服器預設的404錯誤頁面,無論Apache還是IIS,均十分簡陋、呆板且對使用者不友好,無法給予使用者尋找相應資訊的更多線索,使用者看到這類頁面往往最直接的反應並是關閉瀏覽器視窗離開,這在很大程度上給網站造成損失。 畢竟,對網站來說,使用者永遠是最重要的資源,以這種方式損失使用者更意味著某種程度的失敗。
這也是許多網站使用自訂404錯誤頁面的原因。 通過良好的自訂404頁面,可以包含對網站的相應介紹、使用者可能感興趣的內容連結或者網站內容導航連結、內容搜索功能等,能夠有效地説明訪問者找到其欲尋找的內容或相似的內容,提高使用者在網站內流覽更多資訊的機會。
自訂404錯誤頁面返回「200」或「302」狀態碼
從嚴格的技術角度,網站對404錯誤的處理策略,並不是一個SEO方面的工作,而屬於網站可用性(usability)方面的問題。 ——當然,如果從廣義的SEO範疇來看,提高網站可用性也屬於SEO的基本操作。 ——但是,如果自訂404錯誤版面設定不當,則會極大地影響網站的SEO效果。
在許多朋友的印象中,自訂404錯誤頁面只要能正確顯示,只要能輸入網站內某個並不存在的網頁位址,在瀏覽器中能看到自訂的錯誤資訊,便說明設置沒問題。 慚愧地說,本人也是抱有這種想法的一員,IT技術點評運行將近一年了,近日因Google更新後排名下降檢查網站時才發現存在類似的錯誤:一個正確設置的404頁面,不僅應當正確地顯示,同時,應該能夠正確返回「404」錯誤代碼, 而不是「200」或 「302」。 雖然對訪問的使用者而言,HTTP狀態碼究竟是「404」還是「200」來說並沒有什麼區別,但對搜尋引擎而言,這則是相當重要的。
為什麼這麼說呢?讓我們先來回顧一下搜尋引擎收錄與索引網頁的過程:搜尋引擎的Spider向網站伺服器發送請求,要求讀取某個網頁,網站伺服器接到請求後返回 HTTP 狀態碼回應請求, 這些返回的HTTP狀態碼決定著搜尋引擎的下一步行動:將該網頁收錄到索引資料庫或者將其從索引資料庫刪除等。
當然,HTTP狀態碼有很多種,分別對應不同的情況,下面就與本文內容相關的幾種作一簡單介紹,更詳細的資訊可參考W3C規範:
* 404 : 請求的網頁不存在(不排除日後該連結有效的可能性);
* 410 : 請求的網頁不存在(永久);
* 200 : 伺服器成功返回網頁
* 302 : 網址臨時重定向(跳轉)
* 301 : 網址永久重定向
需要說明的是,大部分搜尋引擎將「404」與「410」狀態同等對待,如Google。 (參見Matt Cutts的說明)
當搜尋引擎在請求某個Url時得到「404」狀態回應時,便會知道該網頁在網站內不復存在,從而在索引資料庫中將其刪除,——當然,這個刪除過程有可能需要很長時間——而當搜尋引擎得到「200」狀態回應時,則會認為該url是有效的 ,並將其回到到索引資料庫中。
404頁面返回「200」狀態碼的後果
如果網站的自訂404錯誤頁面在url無效時不返回「404」狀態碼而代之以「200」,會發生什麼情況呢?很明顯,搜尋引擎會認為這個「根本不存在的」網頁在網站內是存在的,這會導致很多問題,影響網站的最終SEO效果。
舉例來說,比如說對「HTTP://www.88106.com/a.html」、「HTTP://www.88106.com/b.html」這兩個在IT技術點評網站內並不存在的url而言,如果搜尋引擎得到的回應狀態碼是「 200」,那麼,便會將其收錄到索引資料庫,這樣的結果便是這兩個不同的url具有完全相同的內容:自訂404錯誤頁面的內容,這類重複文本(Duplicate Content)的現象對許多搜尋引擎而言都是大忌。 尤其是考慮到網站中不可能只有這兩個無效連結,畢竟在網站建設中,無論網站的內部連結還是外部連結,總會不可避免地出現許多比如說拼寫錯誤的情況,類似的重複內容會更多。 這樣,對搜尋引擎而言,特別是Google,不但很難獲得理想的網站信任指數,也會大大降低Google對網站品質的評定。
404錯誤頁使用Meta Refresh帶來的302問題
常常看到許多網站的自訂404錯誤頁面採取類似這樣的形式:首先顯示一段錯誤資訊,然後,通過Meta Refresh將頁面跳轉到網站首頁、網頁地圖或其他類似頁。 根據具體實現方式不同,這類404頁面可能返回「200」狀態碼,也可能返回「302」,但不論哪種,從SEO的角度看,均不是一種合適的選擇。
對「200」狀態的情況我們上面已經談過,那麼,當404頁面返回「302」時,搜尋引擎會怎麼對待呢?從理論上說,對「302」錯誤,搜尋引擎認為該網頁是存在的,只不過臨時改變了位址,仍然會索引收錄該頁,這樣,同樣會出現類似于 「200」狀態碼時的重複文本問題;其次,以google為代表的主流搜尋引擎對302重定向的適用範圍要求越來越嚴格,這類不當使用302重定向的情況存在很大的風險。
因此,儘量不要在404錯誤頁中使用這類Meta Refresh方法。 如果實現希望實現類似的功能,即讓顯示錯誤資訊幾(十)秒後跳轉到首頁或其他頁面,可以考慮在404錯誤頁中使用JAVA Script跳轉。 ——JAVA Script對搜尋引擎而言是無益同時也無害的。 :)
確保自訂404錯誤頁面能夠返回「404」狀態碼
在自訂404錯誤版面設定完畢後,一定要檢查一下其是不是能夠正確地返回「404」狀態碼。
檢查的方法也相當簡單,使用本站提供的Server Header檢查工具,或其他類似工具如這個,輸入一個網站內不存在網頁的url,查看一下HTTP Header的返回情況,確信其返回的是「404 Not found」。