什麼是404錯誤?404的處理方式及對SEO的影響

2021-09-05 21:47:40 字數 3350 閱讀 8493

**:

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」狀態碼

當搜尋引擎蜘蛛在請求某個url時得到「404」狀態回應時,即知道該url已經失效,便不再索引該網頁,並向資料中心反饋將該url表示的網頁從索引資料庫中刪除,當然,刪除過程有可能需要很長時間;而當搜尋引擎得到「200」狀態回應時,則會認為該url是有效的,便會去索引,並會將其收錄到索引資料庫,這樣的結果便是這兩個不同的url具有完全相同的內容:自定義404錯誤頁面的內容,這會導致出現複製網頁問題。對搜尋引擎而言,特別是google,不但很難獲得信任指數trustrank,也會大大降低google對**質量的評定。(為什麼會出現返回「200」狀態碼的情況??請參看下面內容「自定義404錯誤頁面的基本原則」)

(二)自定義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錯誤頁面

<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」狀態碼。

附:server-header檢測工具

nginx Git 404 error 錯誤處理

在使用ngnix git搭建http訪問git的環境的時候出現404 not find error,究其原因是因為建立git repository的時候忘記執行git update server info 命令,導致使用http或者https訪問git resository的時候找不到檔案。解決方法...

有趣的404錯誤頁

每個web server都可以為某個錯誤 比如常見的404,500錯誤 定義乙個錯誤頁面.有個 專門收集了各個 的有趣的404錯誤,更絕的是還按 有趣 粗魯 友好 等分了類.摘幾個如下 粗魯型 http clint.ca oops index.htm 內疚型 http dirtdirt.nother...

有趣的404錯誤頁

每個web server都可以為某個錯誤 比如常見的404,500錯誤 定義乙個錯誤頁面.有個 專門收集了各個 的有趣的404錯誤,更絕的是還按 有趣 粗魯 友好 等分了類.摘幾個如下 粗魯型 http clint.ca oops index.htm 內疚型 http dirtdirt.com no...