如何利用百度蜘蛛referer找到報錯頁面入口?

大傢應該都知道百度已經全站https並取消referer關鍵詞顯示瞭(詳情可查看站長之傢文章:百度站點屬性功能升級 全面取消referer關鍵詞顯示),那麼百度蜘蛛referer又是什麼?有什麼妙用嗎?藝龍SEO負責人劉明發現通過百度蜘蛛referer可以快速定位部分站內url的報錯(4xx或者5xx)原因。

註:由社區版主飛鷹正義也對文章做瞭補充修正。

什麼是百度蜘蛛的referer

百度蜘蛛的referer,是指當百度蜘蛛抓取某一個URL的時候,在HTTP頭中帶的Referer字段。請註意,這個定義和百度最近聲明去除Referer中關鍵詞數據沒有任何關系。這次講的是spider發起的HTTP請求,百度而去除的是用戶發起的。如果百度蜘蛛抓取百度首頁的logo,會發起這樣的請求:

上面Referer字段很明確的表示瞭他是從這個頁面上發現並抓取瞭/img/bd_logo1.png。而大傢在服務器訪問日志中也應該能看到相應的記錄。目前發現隻有當百度抓取一個網頁的同時,又抓取瞭網頁中的:img、js和css才會帶上referer字段。這部分額外的抓取量,應該不會占用百度分配的抓取配額,屬於買1送1。

對於站長的意義

如果你發現有一批URL(僅限於img,js,css)報錯(4xx或者5xx),但是一直找不到入口在哪,也就是說你不明白百度蜘蛛是從哪裡發現這些錯誤URL的。這個字段可以幫助你迅速定位。

舉個例子

比如我們的SEO日志分析系統中可以看到,符合下面這種URL Pattern的路徑每天有6萬到10萬的抓取而且全部報404。

從發現問題至今過瞭1個月,查遍整個網站我也沒找到入口。今天偶然仔細查瞭一下日志,想起瞭百度蜘蛛的referer,馬上就能定位問題瞭。這些404的URL來自於一套沒人維護也沒人關註的頁面(往往是這樣)。收錄流量都不錯。由於最近公司圖片系統更新,圖片的URL全部更改瞭,但這套頁面並沒有跟著更新。

如果站點沒有記錄referer怎麼辦?

iis請在這裡勾選cs(Referer):

apache請參考:

apache log配置Combined Log Format章節

apache log配置的官方鏈接

Nginx請參考:

nginx log配置

nginx log配置的官方鏈接

結束語

很多SEO問題並不是立即致命的,所以沒有及時解決。流量就像螞蟻啃大象一樣一點一點啃掉瞭。

系統性的知識積累還是會在關鍵時刻發揮作用的。

延伸閱讀:

  • 百度取消referer關鍵詞顯示會對誰產生影響?
  • 百度https化、取消referer關鍵詞顯示有何影響?
  • 怎麼看待百度取消referer關鍵詞一舉?
  • PHP偽造referer實例代碼