自訂404錯誤頁面是增強使用者體驗的很好的做法,但在應用過程中往往並未注意到對搜尋引擎的影響,譬如:錯誤的伺服器端配置導致返回“200”狀態代碼或自訂404錯誤頁面使用Meta Refresh導致返回“302”狀態代碼。正確設定的自訂404錯誤頁面,不僅應當能夠正確地顯示,同時,應該返回“404”錯誤碼,而不是 “200”或“302”。雖然對訪問的使用者而言,HTTP狀態代碼究竟是“404”還是“200”來說並沒有什麼區別,但對搜尋引擎這則是相當重要的。
搜尋引擎蜘蛛在請求某個URL時得到“404”狀態回應時,即知道該URL已經失效,便不再索引該網頁,並向資料中心反饋將該URL表示的網頁從索引資料庫中刪除,當然,刪除過程有可能需要很長時間;而當搜尋引擎得到“200”狀態代碼時,則會認為該url是有效,便會去索引,並會將其收錄到索引資料庫,這樣的結果便是這兩個不同的url具有完全相同的內容:自訂404錯誤頁面的內容,這會導致出現複製網頁問題。輕則被搜尋引擎降權,重則會K掉網站。
可見不容忽視,一不小心則有散命的危險。那麼接著注重的話題就是:如何製作一個有利於使用者體驗,有利於SEO,能留住使用者的404頁面;還有就是在伺服器上如何設定。
第一:如何製作?說之前讓大家看幾個案例:
把以上三個案例與預設404頁面相比下,哪個更有親和力,哪個更能留住使用者,其答案是不言而明。從經典的案例我們可以總結出製作404頁面的幾個要點:
1、 要告訴使用者所在的處境——沒找到資訊,出錯。
2、 要告訴使用者出錯的原因。
3、 用生動的語言或圖片來緩解使用者的情緒。
4、 告訴使用者下一步該如何解決問題。
5、 留住使用者,增強親和度。
第二:說下如何在伺服器上設定的問題,其實這個問題在網上很多地方都可以找到。
1. 對於存在的網頁內容由於路徑改變而導致訪問不了時,可在IIS 中定義404錯誤指向一個動態網頁面,在頁面裡面使用301永久重新導向跳轉到新的地址,此時伺服器返回301狀態代碼。
2、設定404指向一個設計好的html 檔案,此時頁面返回的404狀態代碼。 現在的idc供應商基本都提供404設定的功能,直接上傳檔案設定即可。在IIs中設定方法:開啟IIS管理器-->點擊要設定自訂404的網站的屬性-->點擊自訂錯誤選項-->選中404頁-->選中並開啟編輯屬性-->設定成 URL --> URL 裡填寫“/err404.html”-->按確定退出再把做好的err404.html 頁面上傳到網站根目錄下。此處在“訊息類型”中一定要選擇“檔案”或“預設值”,而不要選擇“URL”,不然,將導致返回“200”狀態代碼。
3、404指向一個動態網頁面,比如error.asp,如果不在頁面裡面進行設定,僅僅是返回提示的HTML 程式碼,將導致頁面返回200 狀態代碼,這是不正確的,我們可以在顯示完提示內容後,增加語句: Response.Status="404 Not Found" ,這樣就保證頁面返回404狀態代碼。
4、Apache下設定404錯誤頁面。為Apache Server設定404錯誤頁面的方法很簡單,只需在.htaccess 檔案中加入如下內容即可,ErrorDocument 404 /notfound.php。
最後幾點注意:
1、 切記不要將404錯誤自動轉向到網站首頁,否則可能會導致首頁在搜尋引擎中消失。
2、 在robots.txt檔案把404頁面屏蔽掉。