在「通過http狀態碼檢視搜尋引擎蜘蛛如何爬行你的**」一文中,我介紹了一些經常涉及到的http狀態碼及含義,譬如大家經常**並且與本文相關的http狀態碼:
404:伺服器找不到指定的資源,請求的網頁不存在(譬如瀏覽器請求的網頁被刪除或者移位,但不排除日後該鏈結有效的可能性);
410:請求的網頁不存在(注意:410表示永久性,而404表示臨時性);
200:伺服器成功返回請求的網頁;
301:**永久性重定向
302:**臨時性重定向
注意:大部分搜尋引擎將「404」與「410」狀態同等對待,如google。(參見matt cutts的說明)
對http404狀態碼的理解
http 404 錯誤意味著鏈結指向的網頁不存在,即原始網頁的url失效,這種情況經常會發生,很難避免,比如說:網頁url生成規則改變、網頁檔案更名或移動位置、匯入鏈結拼寫錯誤等,導致原來的url位址無法訪問;當web 伺服器接到類似請求時,會返回乙個404 狀態碼,告訴瀏覽器要請求的資源並不存在。但是,web伺服器預設的404錯誤頁面,無論apache還是iis,均十分簡陋、呆板且對使用者不友好,無法給使用者提供必要的資訊以獲取更多線索,無疑這會造成使用者的流失。
因此,很多**均使用自定義404錯誤的方式以提供使用者體驗避免使用者流失。一般而言,自定義404頁面通用的做法是在頁面中放置**快速導航鏈結、搜尋框以及**提供的特色服務,這樣可以有效的幫助使用者訪問站點並獲取需要的資訊。
http404對seo的影響
自定義404錯誤頁面是提供使用者體驗的很好的做法,但在應用過程中往往並未注意到對搜尋引擎的影響,譬如:錯誤的伺服器端配置導致返回「200」狀態碼或自定義404錯誤頁面使用meta refresh導致返回「302」狀態碼。正確設定的自定義404錯誤頁面,不僅應當能夠正確地顯示,同時,應該返回「404」錯誤**,而不是「200」或「302」。雖然對訪問的使用者而言,http狀態碼究竟是「404」還是「200」來說並沒有什麼區別,但對搜尋引擎而言,這則是相當重要的。
(一)自定義404錯誤頁返回「200」狀態碼
(二)自定義404錯誤頁使用meta refresh返回「302」狀態碼
常常看到許多**的自定義404錯誤頁面採取類似這樣的形式:首先顯示一段錯誤資訊,然後,通過meta refresh將頁面跳轉到**首頁、網頁地圖或其他類似頁。根據具體實現方式不同,這類404頁面可能返回「200」狀態碼,也可能返回「302」,但不論哪種,從seo技術角度看,均不是一種合適的選擇。
對「200」狀態的情況我們上面已經談過,那麼,當404頁面返回「302」時,搜尋引擎會怎麼對待呢?從理論上說,對「302」錯誤,搜尋引擎認為該網頁是存在的,只不過臨時改變了位址,仍然會索引收錄該頁,這樣,同樣會出現類似於「200」狀態碼時的重複文字問題;其次,以google為代表的主流搜尋引擎對302重定向的適用範圍要求越來越嚴格,這類不當使用302重定向的情況存在很大的風險。
確保自定義404錯誤頁面能夠返回「404」狀態碼
在自定義404錯誤頁面設定完畢後,一定要檢查一下其是不是能夠正確地返回「404」狀態碼。可以使用server header檢查工具,輸入乙個不存在網頁的url,檢視一下http header的返回情況,確信其返回的是「404 not found」。
404錯誤的處理方式
(一)定製404錯誤頁面的基本原則
首先應明確的是,404錯誤應工作在伺服器級而不是網頁級。對定製使用動態頁面如php指令碼型別的404頁時,必須確保在php執行前伺服器已經順利地送出「404」狀態碼,不然,一旦執行到了isapi級別,返回的狀態碼便只能是「200」或其他如「302」之類的重定向狀態碼了。
其次,在自定義**的404錯誤頁面時,對設定的錯誤頁面url鏈結應使用相對路徑而不是絕對路徑,而且自定義404頁面應該放在**根目錄下。儘管無效鏈結可能是多種形式的url,但當發生404訪問錯誤時,web伺服器會自動將其轉到自定義的當404錯誤頁中,這跟url的形似沒有關係。
(二)apache下設定404錯誤頁面
為apache server設定 404錯誤頁面的方法很簡單,只需在.htaccess 檔案中加入如下內容即可:
errordocument 404 /notfound.php
注意:1.切記不要將404錯誤轉向到**主頁,否則可能會導致主頁在搜尋引擎中消失
2.切記不要使用絕對url(例如:形式),如果使用絕對url返回的狀態碼是「302」+「200」(已測試)
(三)iis/asp.net下設定404錯誤頁面
首先,修改應用程式根目錄的設定,開啟 「web.config」 檔案編輯,在其中加入如下內容:
<configuration>
<system.web>
<customerrors mode=」on」 defaultredirect=」error.asp」>
<error statuscode=」404″ redirect=」notfound.asp」 />
</customerrors>
</system.web>
</configuration>
注:上文例中「error.asp」為系統預設的404頁面,「notfound.asp」為自定義的404頁面,使用時請修改相應檔名。
然後,在自定義的404頁面「notfound.asp」中加入:
<%response.status = 「404 not found」
%>這樣,便可以保證iis能夠正確地返回「404」狀態碼
(四)在iis/asp.net下設定404靜態頁面
設定靜態404錯誤頁面的方法則比較簡單,在iis管理器中右鍵單擊要管理的**,開啟「屬性」中的「自定義錯誤資訊」頁,為「404」設定相應的錯誤資訊頁即可。不過,此處在「訊息型別」中一定要選擇「檔案」或「預設值」,而不要選擇「url」,不然,將導致返回「200」狀態碼。
404錯誤的處理方式及對SEO的影響
在 通過http狀態碼檢視搜尋引擎蜘蛛如何爬行你的 一文中,我介紹了一些經常涉及到的http狀態碼及含義,譬如大家經常 並且與本文相關的http狀態碼 404 伺服器找不到指定的資源,請求的網頁不存在 譬如瀏覽器請求的網頁被刪除或者移位,但不排除日後該鏈結有效的可能性 410 請求的網頁不存在 注意...
404錯誤的處理方式及對SEO的影響 更新
在 通過http狀態碼檢視搜尋引擎蜘蛛如何爬行你的 一文中,我介紹了一些經常涉及到的http狀態碼及含義,譬如大家經常 並且與本文相關的http狀態碼 410 請求的網頁不存在 注意 410表示永久性,而404表示臨時性 200 伺服器成功返回請求的網頁 301 永久性重定向 302 臨時性重定向 ...
什麼是404錯誤?404的處理方式及對SEO的影響
404 伺服器找不到指定的資源,請求的 網頁不存在 譬如瀏覽器請求的 網頁被刪除或者移位,但不排除日後該鏈結有效的可能性 410 請求的 網頁不存在 注意 410表示永久性,而404表示臨時性 200 伺服器成功返回請求的網頁 301 永久性重定向 302 臨時性重定向 注意 大部分搜尋引擎將 40...