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