很多時候,日誌檔案只在網站出現問題的時候才會被查閱,在SEO方面,更是容易被大家忽略的一塊內容。殊不知通過蜘蛛日誌檔案,我們可以獲取各種資訊並能發現站點存在的一些問題,對於SEO其實是至關重要的。
什麼是蜘蛛日誌
假設我們的站點使用了nginx做反向代理,一旦有請求到達網站伺服器,nginx會生成相應的日誌檔案。蜘蛛日誌就是當搜尋引擎向伺服器傳送請求時產生的訪問記錄檔案。
蜘蛛日誌在哪
nginx會生成名為access.log
的日誌檔案,蜘蛛產生的瀏覽記錄就儲存在這裡。這個檔案預設記錄了一天內的訪問記錄,之前的日誌會被自動分割壓縮,當然,這個分割時間是可以自己手動修改的,需要根據自己的日訪問量做決定。
使用find / -name access.log
命令可以找到訪問日誌檔案所在的位置。這條命令的意思是從根目錄裡查詢名為access.log
的檔案。
我這裡的日誌位於/var/log/nginx/
目錄下,使用命令cd /var/log/nginx/
進入該資料夾。
這裡需要提的一點是如果access.log
檔案比較大,比如多達幾十兆,就不建議在伺服器上直接檢視了,而是應當把它下載到我們自己的機器上去分析,因為分析日誌需要的一些命令比較佔用資源,很可能會因此影響生產環境中的正常業務。
日誌內容分析
我們首先看一下日誌的組成部分。日誌的格式和內容是可以通過配置自己定義的,我們在這裡只分析預設情況下的日誌格式。
221.221.153.47 - - [25/Jun/2018:11:39:13 +0800] "GET / HTTP/1.1" 200 19285 "https://www.baidu.com/from=844b/bd_page_type=1/ssid=0/uid=0/pu=usm%401%2Csz%401320_2001%2Cta%40iphone_1_11.3_3_604/baiduid=6EC3CDA4AF6......" "Mozilla/5.0 (iPhone; CPU iPhone OS 11_3 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/67.0.3396.87 Mobile/15E216 Safari/604.1"
複製程式碼
- 221.221.153.47 - 客戶端的IP地址
- [25/Jun/2018:11:39:13 +0800] - 訪問時間
- GET - 請求方式
- /news/7fcfca6a-0e14-42a0-a9f8-c0ffca0d8ab5 - 請求地址
- HTTP/1.1 - 請求協議
- 200 - HTTP狀態碼,關於狀態碼的內容請搜尋查閱,這裡不再贅述
- 19285 - 請求的頁面大小
- https://www.baidu.com/from=844b/bd_... - 來源地址
- Mozilla/5.0 (iPhone; CPU iPhone OS 11_3 like Mac OS X) App... - 客戶端瀏覽器的相關資訊,我們簡稱為Agent
這裡列出一些常見的搜尋引擎Agent資訊,這部分的內容來源於網路,且與時效性有關,僅供參考,建議在使用的時候查詢最新的Agent資訊。
Google蜘蛛 :Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Baidu蜘蛛 :Baiduspider+(+http://www.baidu.com/search/spider.html)
Yahoo!蜘蛛 :Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)
Yahoo!中國蜘蛛 :Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)
微軟Bing蜘蛛 :msnbot/2.0b (+http://search.msn.com/msnbot.htm)
Google Adsense蜘蛛 :Mediapartners-Google
有道蜘蛛 :Mozilla/5.0 (compatible; YoudaoBot/1.0; http://www.youdao.com/help/webmaster/spider/)
Soso搜搜部落格蜘蛛 :Sosoblogspider+(+http://help.soso.com/soso-blog-spider.htm)
Sogou搜狗蜘蛛 :Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)
Twiceler爬蟲程式 :Mozilla/5.0 (Twiceler-0.9 http://www.cuil.com/twiceler/robot.html)
Google圖片搜尋蜘蛛 :Googlebot-Image/1.0
俄羅斯Yandex搜尋引擎蜘蛛 :Yandex/1.01.001 (compatible; Win16; I)
Alexa蜘蛛 :ia_archiver (+http://www.alexa.com/site/help/webmasters)
Feedsky蜘蛛 :Mozilla 5.0 (compatible; Feedsky crawler /1.0)
韓國Yeti蜘蛛:Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)
複製程式碼
看到這裡,我們就可以通過客戶端Agent來過濾掉我們不想要看到的日誌。由上面的列表我們知道,百度的Agent資訊為Baiduspider+(+http://www.baidu.com/search/spider.html)
,因此我們可以根據Baiduspider
關鍵詞來對日誌進行過濾,以此來篩選百度蜘蛛的訪問記錄。
怎樣檢視蜘蛛日誌
在這裡總結一些常用的分析命令。
cat access.log | grep Baiduspider
獲取百度蜘蛛的詳細爬取記錄cat access.log | grep Baiduspider | wc -l
統計百度蜘蛛的爬取次數cat access.log | grep Baiduspider | grep "GET url"
統計百度蜘蛛爬取某個頁面的記錄,命令中的url為頁面的相對地址- ......
上面命令中的grep
是個比較強大的文字搜尋工具,我們可以使用這個工具來匹配搜尋文字,精確找出我們想要看的日誌內容,減少篩選時間,提升工作效率。所以,可以根據實際的場景,輸入關鍵詞來過濾日誌,靈活地進行擴充。
如何利用蜘蛛日誌
- 通過蜘蛛日誌,我們可以知曉蜘蛛是否對站點進行了抓取,以及抓取是否成功。我們可以以此來判斷我們的網站程式是否符合搜尋引擎的抓取規範,發現抓取失敗的原因。
- 通過蜘蛛日誌我們可以統計蜘蛛的抓取頻次。有些惡意蜘蛛會頻繁對網站抓取,如果蜘蛛訪問頻度過高,很可能會正常服務的執行,可以通過對日誌的分析,發現惡意蜘蛛的足跡,並限制其訪問頻率甚至禁止其訪問,以保障伺服器的穩定。可以通過
robots.txt
檔案制定蜘蛛的訪問規則,搜尋引擎的蜘蛛會嚴格遵守這個檔案。 - 通過日誌檔案,我們可以分析蜘蛛的訪問路徑,優化我們的站點結構。
挖掘日誌更多資訊
- 排查網站錯誤。可以通過日誌中的狀態碼分析網站是否存在問題,例如存在死鏈、程式錯誤、頁面失效等;
- 分析使用者行為習慣。通過日誌檔案,我們可以發現使用者對整站頁面的訪問次數、訪問時間和訪問路徑。以此得出使用者的行為習慣和關注點;
- 獲取使用者畫像。通過分析日誌,可以知道使用者的地理區域、來源地址、瀏覽裝置以及搜尋引擎等資訊;
- 防範惡意攻擊。對日誌中高頻訪問的使用者進行鑑定,阻止非正常的高頻度訪問,避免不必要的資源浪費。
結語
本文只給出了日誌分析的方法和操作,更多的細節需要結合站長工具做深入的研究。紙上得來終覺淺,需要各位讀者去在實際場景中摸索更多的技巧和解決方案。SEO非一日之功,比的就是誰能做到更極致!