很多站長在做網站診斷的過程中,往往會查看網站有沒有做404頁面,一般判斷的方法很簡單,就是在搜索引擎地址欄隨便輸入一個該域名錯誤鏈接,然後看有沒有404頁面。這樣對嗎?404頁面存在的意義就是告訴浏覽者和搜索引擎所請求的頁面不存在或是鏈接錯誤,你這檢查只能說明用戶看到的是404頁面,而對於搜索引擎呢?會對這個頁面返回404狀態碼嗎?
先來來看看下面二張圖,你眼中的404頁面未必返回404狀態碼。
危害
可以看到該網站盡管對用戶返回了404頁面,但是對於搜索引擎而言卻是一個正常的頁面,這往往是由於錯誤的服務器端配置而導致返回“200”狀態碼,雖然對訪問的用戶而言,HTTP狀態碼是“404”還是“200”並沒有什麼區別,一樣是提高了用戶體驗,但對搜索引擎而言,這則是相當重要的,甚至是致命的。
當搜索引擎蜘蛛在請求某個錯誤URL地址得到“404”狀態回應時,即知道該URL地址已經失效,便不再索引該網頁,並向數據中心反饋將該URL地址表示的網頁從索引數據庫中刪除,而當搜索引擎對於這個404頁面得到的是“200”狀態回應時,則會認為該url地址是有效的,便會去索引,並會將其收錄到索引數據庫,這樣你的所有錯誤頁面對於搜索引擎來說都是不同url地址內容相同的頁面,這會導致出現大量重復頁面,會大大降低網站質量的評分,甚至直接降權。
所以正確設置的自定義404錯誤頁面,不僅應當能夠正確地顯示,同時,應該返回“404”錯誤代碼,而不是200或其他的。不僅要告訴用戶該頁面不存在,也要正確的讓搜索引擎知道這是404錯誤頁面而不是一個正常的頁面。
404頁面如何正確設置
1、ISS中404錯誤頁面設置
打開IIS管理器-->點擊要設置自定義404的網站的屬性-->點擊自定義錯誤選項-->選中404頁-->選中並打開編輯屬性-->設置成文件或默認值-->URL 裡填寫“/404.html”,按確定退出。再把做好的404.html頁面上傳到網站根目錄下。此處在“消息類型”中一定要選擇“文件”或“默認值”,而不要選擇“URL”,不然,將導致返回“200”狀態碼。
2、Apache下設置404錯誤頁面很簡單,一般都是有一個404錯誤頁面設置的功能,只需要自己做好一個404頁面,上傳到對應的目錄就可以了。
3、一些主機的空間默認就是返回值320或200狀態碼,怎麼辦呢?我們可以通過下面的代碼來解決:
ApacheServer下設置404錯誤頁面
建立一個.htaccess 文件,在其中加入如下內容:ErrorDocument 404/notfound.php,然後將.htaccess文件上傳到網站根目錄,最後制作一個404頁面,命名為notfound.php,和上面的名字一定要統一,同樣上傳到網站根目錄就OK了。這裡切記不要使用絕對URL,如果使用絕對URL返回的狀態碼是302或200了。
IIS/asp。net下設置404錯誤頁面
首先,修改應用程序根目錄的設置,打開 web.config 文件,引用以下內容:
<configuration>
<system.web>
<customErrors mode=OndefaultRedirect=error.asp>
<error statusCode=404″ redirect=notfound.asp/>
</customErrors>
</system.web>
</configuration>
error.asp為系統默認的404頁面名,notfound.asp為自定義的404頁面,使用時請修改相應文件名。
然後,在自定義的404頁面notfound.asp中加入以下代碼,便可以保證IIS服務器能夠正確地返回404狀態碼。
<% Response.Status