404 Not Found錯誤頁面的解決方法和注意事項


最近這段時間一直忙於整理網站的錯誤頁面,期間整理了很多關於404 Not Found錯誤頁面的知識,加之最近也在幫團隊新來的人員培訓seo優化知識,所以在此借助馬海祥博客的平台就拿出來跟大家一起分享一下。

404 Not Found錯誤頁面的解決方法和注意事項-馬海祥博客

據說在第三次科技革命之前,互聯網的形態就是一個大型的中央數據庫,這個數據庫就設置在404房間里面。那時候所有的請求都是由人工手動完成的,如果在數據庫中沒有找到請求者所需要的文件,或者由於請求者寫錯了文件編號,用戶就會得到一個返回信息:room 404 : file not found。后來互聯網興起后,人們也就習慣了用404作為服務器未找到文件的錯誤代碼了。當然實際考證傳說中的room 404是不存在的。

一、404 Not Found是什么意思?

404頁面就是當用戶訪問某網站時,點擊了錯誤的鏈接時,所返回的頁面。最常見的出錯提示:404 Not Found。其目的就是告訴瀏覽者其所請求的頁面不存在或鏈接錯誤,同時引導用戶使用網站其他頁面而不是關閉窗口離開。錯誤頁面的文字可以自定義,有些網站沒有設置404錯誤頁面,或者是直接采取的跳轉到首頁,這樣一般都說對搜索引擎不是很友好。

HTTP 404或Not Found錯誤信息是HTTP的其中一種“標准回應信息”(HTTP狀態碼),此信息代表客戶端在瀏覽網頁時,服務器無法正常提供信息,或是服務器無法回應且不知原因。404錯誤信息可能與“server not found”(無法找到服務器)或其他類似信息產生混淆。

二、404錯誤頁面對網站的影響

404頁面是網站必備的一個頁面,它承載着用戶體驗與SEO優化的重任。404頁面通常為用戶訪問了網站上不存在或已刪除的頁面,服務器返回的404錯誤。如果站長沒有設置404頁面,會出現死鏈接,蜘蛛爬行這類網址時,不利於搜索引擎收錄。

可以說,404錯誤頁面是增強用戶體驗的很好的做法,但馬海祥發現很多站長在應用過程中往往並未注意到對搜索引擎的影響,譬如:錯誤的服務器端配置導致返回“404”狀態碼或自定義404錯誤頁面使用Meta Refresh導致返回“302”狀態碼。

正確設置的自定義404錯誤頁面,不僅應當能夠正確地顯示,同時,應該返回“404”錯誤代碼,而不是“200”或“302”。雖然對訪問的用戶而言,HTTP狀態碼究竟是“404”還是“200”來說並沒有什么區別,但對搜索引擎這則是相當重要的。對這點大家可以查看馬海祥博客的《你真的懂404頁面設置嗎》,文章中有具體詳細的介紹。

總的來說,搜索引擎蜘蛛在請求某個URL時得到“404”狀態回應時,即知道該URL已經失效,便不再索引該網頁,並向數據中心反饋將該URL表示的網頁從索引數據庫中刪除,當然,刪除過程有可能需要很長時間;而當搜索引擎得到“200”狀態碼時,則會認為該url是有效的,便會去索引,並會將其收錄到索引數據庫,這樣的結果便是這兩個不同的url具有完全相同的內容:自定義404錯誤頁面的內容,這會導致出現復制網頁問題。輕則被搜索引擎降權,重則會K掉網站。

三、導致404 Not Found錯誤頁面的原因

HTTP 404錯誤意味着鏈接指向的網頁不存在,即原始網頁的URL失效,這種情況經常會發生,很難避免,當Web服務器接到類似請求時,會返回一個404 狀態碼,告訴瀏覽器要請求的資源並不存在。其導致這個錯誤的原因一般來說有幾種情況:

1、無法在所請求的端口上訪問Web站點。

2、Web服務擴展鎖定策略阻止本請求。

3、MIME映射策略阻止本請求。

4、網站更新改版,但某些局部板塊沿用原來的模塊,而原有的模塊調用的文件已經被刪除或轉移了路徑。

5、跟蹤訪問的各類腳碼或CSS文件無效但調用代碼依然存在。

6、某個目錄直接刪除(導致一段時間該目錄的文件在被爬行時全部報404 Not Found錯誤)

7、網頁URL生成規則改變、網頁文件更名或移動位置、導入鏈接拼寫錯誤等,導致原來的URL地址無法訪問

四、404頁面的使用誤區

404 Not Found錯誤頁面的解決方法和注意事項

雖然404錯誤頁面是為了用戶體驗而顯示的一個錯誤頁面引導的作用,並不參與網站的排名。但是錯誤的使用404頁面,也會導致網站的被降權,比如以下2種情況:

1、錯誤的服務器端配置導致404錯誤頁面返回“200”狀態碼

當搜索引擎蜘蛛在請求某個URL時得到“404”狀態回應時,即知道該URL已經失效,便不再索引該網頁,並向數據中心反饋將該URL表示的網頁從索引數據庫中刪除,當然,刪除過程有可能需要很長時間;而當搜索引擎得到“200”狀態回應時,則會認為該url是有效的,便會去索引,並會將其收錄到索引數據庫,這樣的結果便是這兩個不同的url具有完全相同的內容:自定義404錯誤頁面的內容,這會導致出現復制網頁問題。對搜索引擎而言,特別是Google,不但很難獲得信任指數TrustRank,也會大大降低搜索引擎對網站質量的評定。

2、自定義404錯誤頁面使用Meta Refresh導致返回“302”狀態碼

常常看到許多網站的自定義404錯誤頁面采取類似這樣的形式:首先顯示一段錯誤信息,然后通過Meta Refresh將頁面跳轉到網站首頁、網頁地圖或其他類似頁。根據具體實現方式不同,這類404頁面可能返回“200”狀態碼,也可能返回“302”,但不論哪種,從SEO技術角度看,均是一種錯誤的選擇。

對“200”狀態的情況我們上面已經談過,那么,當404頁面返回“302”時,搜索引擎會怎么對待呢?從理論上說,對“302”錯誤,搜索引擎認為該網頁是存在的,只不過臨時改變了地址,仍然會索引收錄該頁,這樣,同樣會出現類似於“200”狀態碼時的重復文本問題;其次,以google為代表的主流搜索引擎對302重定向的適用范圍要求越來越嚴格,這類不當使用302重定向的情況存在很大的風險。

五、解決404 not found錯誤的方法

1、對於存在的網頁內容由於路徑改變而導致訪問不了時,可在IIS 中定義404錯誤指向一個動態頁面,在頁面里面使用301永久重定向跳轉到新的地址,此時服務器返回301狀態碼。

2、設置404指向一個設計好的html 文件,此時頁面返回的404狀態碼。 現在的idc提供商基本都提供404設置的功能,直接上傳文件設置即可。在IIs中設置方法:打開IIS管理器-->點擊要設置自定義404的網站的屬性-->點擊自定義錯誤選項-->選中404頁-->選中並打開編輯屬性-->設置成 URL --> URL 里填寫“/err404.html”-->按確定退出再把做好的err404.html 頁面上傳到網站根目錄下。此處在“消息類型”中一定要選擇“文件”或“默認值”,而不要選擇“URL”,不然,將導致返回“200”狀態碼。

404 Not Found錯誤頁面的解決方法和注意事項-馬海祥博客

3、把404指向一個動態頁面,比如error.asp,如果不在頁面里面進行設置,僅僅是返回提示的HTML 代碼,將導致頁面返回200 狀態碼,這是不正確的,我們可以在顯示完提示內容后,增加語句:Response.Status="404 Not Found" ,這樣就保證頁面返回404狀態碼。  

4、Apache下設置404錯誤頁面。為Apache Server設置404錯誤頁面的方法很簡單,只需在.htaccess 文件中加入如下內容即可,ErrorDocument 404 /notfound.php。

六、如何制作404頁面

對於404頁面的制作,常規來說分以下兩種情況:

1、Apache

為Apache Server設置404錯誤頁面的方法很簡單,只需:

(1)、在.htaccess文件中加入如下內容:ErrorDocument 404 /notfound.php,將.htaccess文件上傳到網站根目錄。

(2)、制作一個404頁面,隨便您設計,命名為notfound.php,同樣上傳到網站根目錄。

馬海祥博客提醒大家一定要注意以下2點:

(1)、切記不要將404錯誤轉向到網站主頁,否則可能會出現主頁在搜索引擎中消失的情況。

(2)、切記不要使用絕對URL,如果使用絕對URL會返回302+200的狀態碼。

2、IIS/.net

首先,修改應用程序根目錄的設置,打開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狀態碼。如何大家覺的這個404頁面太過於簡單的話,可以查看馬海祥博客上的《如何正確設置多樣性的404頁面》一文中的相關介紹來重新自定義網站的404頁面。

七、制作404頁面的注意事項

404 Not Found錯誤頁面的解決方法和注意事項-馬海祥博客

1、不要使用絕對URL

如果使用絕對URL,會導致返回的狀態碼是302+200。

2、不要把404頁面設置成自動跳轉

404頁面不要自動跳轉,讓用戶來決定去向。這涉及到404頁面的制作,提供用戶體驗很重要。

3、不使用專業術語

“404錯誤”這個詞的使用一直非常規范,但這並不是你使用專業術語嚇跑訪客的理由。“找不到網頁”這個說法相比來說更准確也更易於接受。

4、不要責備訪客

你的訪客很有可能是從其他網站鏈接或者是你網站上一個舊鏈接而來。看到這個錯誤頁面並不是他們的錯,所以要善待他們。撰寫的措辭要充滿歉意並盡量提供有益的幫助,而不是一些讓訪客們感到糟糕的文字。

5、提示訪客檢查拼寫

還有一個可能:訪客看到404錯誤頁面是由於他們自己在輸入URL網址時出現了拼寫錯誤。提示訪客檢查他們的拼寫,但不要失禮。就像我們在上面提到的,你的措辭不要讓訪客們感到你是在責備他們。

6、讓頁面返回404

每個網頁都有一個服務器響應代碼。代碼200是指頁面一切正常,404則是指頁面無法被找到。如果你已經指定了自定義的404錯誤頁面,則需要確保頁面的標題是返回正確的響應代碼。有幾種不同的方法可以做到這一點,最簡單的就是用你的htaccess文件來指定錯誤頁面。更多關於服務器返回代碼的介紹,可查看馬海祥博客的《解讀IIS日志中搜索引擎蜘蛛名稱代碼及爬尋返回代碼》相關介紹。

7、明確表明404錯誤

清楚地向訪客聲明他們正在搜尋的頁面無法找到,且不要讓錯誤頁面看起來與正常的內容頁(如:加入過多的文本和鏈接)太過相似。你是想要表明這是一個錯誤頁面,所以就不要羞於向訪客們聲明這一點。

8、幫助訪客找到頁面

404錯誤頁面已經呈現在訪客面前,表明這個頁面並不是他們正在搜尋的。所以你應該設法幫助他們找到原來的頁面。確保你的錯誤頁中包含一個選項來協助用戶尋找他們想要的頁面,甚至可以包括有過更改的頁面的鏈接。

9、放置網站主頁鏈接

不要讓訪客無處可去或是無法找到你的網站信息。至少應該有一個鏈接鏈回你的網站主頁。這樣一來,從其他網站鏈接而來的訪客就可以了解你以及你的網站,甚至他們可能在你的網站中找到一些他們喜歡的內容。

10、讓訪客方便反饋信息

如果訪問者點擊了你網站上的一個錯誤鏈接,你會想了解這個鏈接故障。如果通過404頁面給他們提供一個反饋信息的便捷方式,讓他們可以報告這個故障以便你去解決。這只需要一個非常簡短的形式來提示訪客告訴你他們來自哪個頁面及哪個鏈接。通過這個方法,你可以獲取到所有你需要的信息。

訪客們可能依然因為無法找到他們想要的頁面而感到困惑和煩惱,因此給他們一個發泄不滿的地方,同時也給你一個做出回應並提供幫助的機會。這很可能會為你挽回一個潛在客戶。

11、保持品牌風格

我們都看過非常酷的404頁面設計。但千萬不要使這個頁面的設計與你網站的其他頁面相差太大,否則會看起來這個頁面不像你網站的設計,會讓訪客產生疑惑,誤以為自己已經被帶到了一個外部網站。

12、注意404頁面的語言版本

如果你的網站是多語種的,404錯誤頁面將從你所有語言版本的網站中獲取錯誤信息。無論你想要顯示任何信息,都需要將其翻譯成各個語言版本,使每個人都能理解。同時還需提供一個鏈接返回到訪客所對應的語言版本的網站。

13、讓訪客搜索想要的

如果訪客正在訪問的頁面已被移動,你可能想給他們一個途徑來搜索頁面被移動到了何處,可以考慮在頁面增加一個搜索框。

14、修復你的無效鏈接

如果你得到的數據顯示有大量的訪客訪問您的404頁面(檢查你的網站的分析數據來確定數量),這表明你的網站上有很多無效鏈接。你完全可以通過修復這些鏈接來阻止訪客進入404頁面。利用一些網站測試工具可以幫助檢查是否有無效鏈接,使你能夠迅速找到並修復他們而不必等待別人來告訴你。

15、不要把404頁面重定向到主頁

不要將404錯誤頁面直接重定向轉到網站主頁,否則可能會導致主頁在搜索引擎中消失。一些404錯誤頁面會立刻重定向到網站主頁,這樣做非常不好。你的訪客不知道他們已經鏈接到了錯誤的頁面,而且他們會感到困惑因為被無緣無故地鏈回到了網站主頁。

16、檢查404頁面設置效果及返回狀態

404頁面設置完成,一定要檢查是否正確。但http頭信息返回的一定要是404狀態。這主要是對搜索引擎有關系,因為如果你網站產生較多頁面時候但搜索引擎看到的是很多一樣的正常頁面,有可能會誤被認為作弊。

馬海祥博客點評:

盡管404頁面被用戶看到的概率相對全站的其他頁面要小很多,但隨着網站的長期積累,頁面難免會出錯(如馬海祥博客,雖然現在頁面不是很多,但最近也曾出現過錯誤的鏈接)。無論是用戶的誤操作還是服務器的原因,這是一個極少數才會出現的錯誤情況,作為網頁的設計者或者開發者,有時候我們無法控制錯誤頁面的出現,但我們可以通過使用一個定制的404錯誤頁面將損害降到最低。好的用戶體驗是我們不能放過任何一個小的細節,一我們需要在這個頁面很好的把信息傳達給用戶,二引導用戶下一步的操作,引導用戶留在我們的網站而不是沮喪的關閉窗口。

本文為馬海祥博客原創文章,如想轉載,請注明原文網址摘自於http://www.mahaixiang.cn/seoyjy/404.html,注明出處;否則,禁止轉載;謝謝配合!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM