很多时候,日志文件只在网站出现问题的时候才会被查阅,在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非一日之功,比的就是谁能做到更极致!