這篇文章分享一個SEO的問題,軟404。我們在網(wǎng)站中經(jīng)常見到的一個狀態(tài)碼就是404。無論我們是否開發(fā)一個網(wǎng)站,這都是要面對的一個問題

何謂軟404

在說軟404之前,我們首先要了解什么是404。404 是一個 ??HTTP狀態(tài)碼??,表示網(wǎng)頁未找到。簡單來說,當我們訪問一個網(wǎng)頁的時候,如果我們請求的網(wǎng)址沒有對應的資源,則網(wǎng)站就會返回給我們 “404 網(wǎng)頁不存在”

關于HTTP不是我們這篇文章的目的,可以查看??HTTP教程??了解更多HTTP基礎知識。下面我們看一個 404的通用頁面

 

在SEO過程中,如何避免網(wǎng)站中出現(xiàn)軟404_web服務器

 

默認情況下,如果我們訪問了一個不存在的鏈接,web服務器會返回給我們上面這樣一個頁面(Nginx)。但是,如果我們是一個網(wǎng)站運營者,我們會發(fā)現(xiàn)直接把這種頁面返回給用戶,肯定會降低我們網(wǎng)站的逼格。

鑒于此,一般我們都會自己定義一個404頁面,我自己網(wǎng)站的404頁面是下面這樣子的。

訪問 https://www.jiyik.com/a.html

在SEO過程中,如何避免網(wǎng)站中出現(xiàn)軟404_web服務器_02

軟404

關于404我們就介紹這么多,下面我們主要說一下軟404。剛開始做網(wǎng)站的時候對軟404的概念也不了解。最開始只想著自定義404頁面來提升用戶的體驗。 但是有一個問題沒有注意到,如果是純靜態(tài)的,可以直接通過Ningx或者Apache等web服務配置自己的404頁面。這種是沒有什么問題的。但是如果是那種動態(tài)的頁面,我們是需要在代碼中判斷用戶所請求的資源是否存在,如果不存在的話,我們是直接通過模版引擎渲染了一個404頁面。 簡單看一下代碼

if (count($res) <= 0) {
$this->displayError("404");
return;
}

這里我訪問一篇不存在的一篇教程內容,會返回一個404頁面

在SEO過程中,如何避免網(wǎng)站中出現(xiàn)軟404_web服務器_03


那么問題來了,這里返回給了用戶一個404頁面,但是我們給的??HTTP狀態(tài)碼??卻是??200??。 雖然用戶沒有什么感覺,但是要做SEO,對于搜索引擎來說,它會認為你這是赤裸裸的欺騙。(其實我是一個SEO小白,我真不是存心要欺騙你的)

上面這種情況也就是我們今天要介紹的主角,軟404。所謂軟404,就是給用戶展現(xiàn)的是一個404的頁面,但是實際的HTTP狀態(tài)碼卻是200。

所以要解決軟404,其實很簡單,就是返回給用戶一個404頁面的同時,把響應的狀態(tài)碼也改成404或者410即可。這個要看你的網(wǎng)站所用的編程語言了。然而不管是什么語言,最核心的還是HTTP協(xié)議。

對于PHP來說,其實是比較簡單的,可以通過 ??header?? 來修改響應狀態(tài)碼

header("status: 404 Not Found");

修改之后,再請求相同地址的時候,在返回了自定義404頁面的同時,狀態(tài)碼也變成了404。


總結

開發(fā)維護一個網(wǎng)站真心不是容易,如果只是開發(fā)出來對于一個程序員來說不是什么難事。但是其中很多的細節(jié)是需要我們用心去做的。我個人是一個開發(fā)者,對于SEO真心是一個小白,邊做邊學習邊修改吧。 如果不是開發(fā)人員,要想做好一個網(wǎng)站,不論是用cms還是其他的框架,都希望能了解一下HTTP協(xié)議。現(xiàn)在已經(jīng)進入了HTTP2.0的時代了。有興趣也可以了解一下 ??HTTP2的前世今生?? 以及 ??HTTP1.1的不足??

推薦閱讀: