2

  很多时候,日志文件只在网站出现问题的时候才会被查阅,在SEO方面,更是容易被大家忽略的一块内容。殊不知通过蜘蛛日志文件,我们可以获取各种信息并能发现站点存在的一些问题,对于SEO其实是至关重要的。

什么是蜘蛛日志

  假设我们的站点使用了nginx做反向代理,一旦有请求到达网站服务器,nginx会生成相应的日志文件。蜘蛛日志就是当搜索引擎向服务器发送请求时产生的访问记录文件。

蜘蛛日志在哪

  nginx会生成名为access.log的日志文件,蜘蛛产生的浏览记录就保存在这里。这个文件默认记录了一天内的访问记录,之前的日志会被自动分割压缩,当然,这个分割时间是可以自己手动修改的,需要根据自己的日访问量做决定。

  使用find / -name access.log命令可以找到访问日志文件所在的位置。这条命令的意思是从根目录里查找名为access.log的文件。

image

  我这里的日志位于/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"
  1. 221.221.153.47 - 客户端的IP地址
  2. [25/Jun/2018:11:39:13 +0800] - 访问时间
  3. GET - 请求方式
  4. /news/7fcfca6a-0e14-42a0-a9f8-c0ffca0d8ab5 - 请求地址
  5. HTTP/1.1 - 请求协议
  6. 200 - HTTP状态码,关于状态码的内容请搜索查阅,这里不再赘述
  7. 19285 - 请求的页面大小
  8. https://www.baidu.com/from=84... - 来源地址
  9. 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关键词来对日志进行过滤,以此来筛选百度蜘蛛的访问记录。

怎样查看蜘蛛日志

  在这里总结一些常用的分析命令。

  1. cat access.log | grep Baiduspider

获取百度蜘蛛的详细爬取记录

  1. cat access.log | grep Baiduspider | wc -l

统计百度蜘蛛的爬取次数

  1. cat access.log | grep Baiduspider | grep "GET url"

统计百度蜘蛛爬取某个页面的记录,命令中的url为页面的相对地址

  1. ......

  上面命令中的grep是个比较强大的文字搜索工具,我们可以使用这个工具来匹配搜索文本,精确找出我们想要看的日志内容,减少筛选时间,提升工作效率。所以,可以根据实际的场景,输入关键词来过滤日志,灵活地进行拓展。

如何利用蜘蛛日志

  1. 通过蜘蛛日志,我们可以知晓蜘蛛是否对站点进行了抓取,以及抓取是否成功。我们可以以此来判断我们的网站程序是否符合搜索引擎的抓取规范,发现抓取失败的原因。
  2. 通过蜘蛛日志我们可以统计蜘蛛的抓取频次。有些恶意蜘蛛会频繁对网站抓取,如果蜘蛛访问频度过高,很可能会正常服务的运行,可以通过对日志的分析,发现恶意蜘蛛的足迹,并限制其访问频率甚至禁止其访问,以保障服务器的稳定。可以通过robots.txt文件制定蜘蛛的访问规则,搜索引擎的蜘蛛会严格遵守这个文件。
  3. 通过日志文件,我们可以分析蜘蛛的访问路径,优化我们的站点结构。

挖掘日志更多信息

  1. 排查网站错误。可以通过日志中的状态码分析网站是否存在问题,例如存在死链、程序错误、页面失效等;
  2. 分析用户行为习惯。通过日志文件,我们可以发现用户对整站页面的访问次数、访问时间和访问路径。以此得出用户的行为习惯和关注点;
  3. 获取用户画像。通过分析日志,可以知道用户的地理区域、来源地址、浏览设备以及搜索引擎等信息;
  4. 防范恶意攻击。对日志中高频访问的用户进行鉴定,阻止非正常的高频度访问,避免不必要的资源浪费。

结语

  本文只给出了日志分析的方法和操作,更多的细节需要结合站长工具做深入的研究。纸上得来终觉浅,需要各位读者去在实际场景中摸索更多的技巧和解决方案。SEO非一日之功,比的就是谁能做到更极致!


志如
333 声望5 粉丝