最近遇到一個網站被百度蜘蛛抓取首頁後大量返回304狀態碼的問題,以前遇到過301和302,就是沒了解過304,剛好可以對這個情況進行一下分析和觀察,以便比較深入的了解該問題的出現以及應對之策。
百度百科對304狀態碼是這麼解釋的:如果客戶端發送了一個帶條件的 GET 請求且該請求已被允許,而文檔的內容(自上次訪問以來或者根據請求的條件)並沒有改變,則服務器應當返回這個304狀態碼。簡單的表達就是:客戶端已經執 行了GET,但文件未變化,也就是我們所理解的頁面沒更新。
GET /index.html - 80 - 220.181.135.120 Sosospider+(+http://help.soso.com/webspider.htm) 304 0 0
GET /index.html - 80 - 123.129.209.113 Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html) 304 0 0
但網站每天都有較多內容的更新,怎麼會返回未更新的狀態碼呢,查看了網站進幾天的網站IIS日志,發現這幾天對首頁的抓取都是返回的304狀態碼,一般情況下大概會是一下幾種可能:
1、服務器緩存緣故
設置緩存的作用一般都是為了加速網站的提前加載,就像我們在浏覽器上訪問網站的時候也比較容易出現緩存問題,當你打開一個網站之後,如果該網站有更新 或者有 變化,直接點擊首頁會發現還是之前訪問的頁面,而ctrl+F5重新加載後才會顯示新的頁面,這其實就是緩存的緣故。另外,有的時候和一些較大的網站換友 情鏈接也會遇到,對方加了友鏈之後首頁不會馬上顯示,會因為緩存而需要過一段時間才能顯示。
2、網站結構問題
如果網站結構不能有效的讓蜘蛛順利爬行,也就是說雖然蜘蛛有抓取,但由於網站結構問題導致蜘蛛前後兩次抓取內容相同,或者說蜘蛛每次抓取首頁都只抓了那塊固定的內容,那麼就勢必導致蜘蛛對首頁的抓取返回304狀態碼。
3、網站速度問題
谷歌就針對網站的加載時間更 新過算法,把網站加載時間納入了排名因素,就算搜索引擎排名不重視這點,對於用戶體驗也是有很大影響,誰也不會願意多花時間在一個需要加載幾十秒甚至幾分 鐘的網站上面。而對於搜索蜘蛛也是如此,網站的加載速度也會影響蜘蛛的正常抓取,一般情況下網站都是從上往下的加載,而有的時候由於速度因素導致網站只加 載了頭部,後面部分而沒有及時顯示出來,也可能導致蜘蛛只抓取了頭部部分內容,而由於一般網站的頭部都是相同的,也就容易出現了抓取返回沒更新的狀態碼。
另外,網絡線路的互通也是一個因素。
4、網站內容問題
網上查找了下關於304狀態碼的一些內容,不少人都認為是網站內容長期采集或是偽原創也能導致蜘蛛返回該狀態碼,因為網站內容采集或偽原創的確會降低 網站質量,導致百度不收錄等情況,搜索蜘蛛也會認為網站內容不具備收錄的意義,那麼也就不會抓取新的內容而返回沒有更新的狀態。
5、重視該狀態碼
既然304狀態碼是表示未更新的情況,那麼經常出現就需要引起重視,同時也需要觀察出現該狀態碼的同時網站各方面數據的變化和趨勢,以便對該狀態碼的影響有較好的了解。
暫時網站出現304狀態碼之後經過百度更新收錄有所減少,前幾天有過斷斷續續的網站無法訪問的情況,第二天網站首頁就被K掉,在更換服務器之後恢復網站正常訪問,次日首頁再次恢復,目前仍需要觀察和分析,才能更好掌握該狀態碼。
文章為肖俊博客原創,原文地址:http://xiaojunseo.com/seo-watch/235.html