这是一个存在多年、经常出现但又从来没有标准解决办法的问题:搜索引擎爬虫(尤其是百度)抓取JS、CSS、JSON文件,robots屏蔽依然抓取的情况。
这就引出了几个问题:
1、爬虫抓取JS、CSS是干什么的?
2、爬虫能否执行JS?
3、爬虫抓取JS对SEO有什么影响?
针对以上问题,怒熊网【重庆网站建设】说下自己的看法:
第一个,爬虫抓取CSS,用于判断页面元素的重要程度,及保证快照显示的完整性;抓取JS,用于发现新链接,及判断是否存在作弊的情况
第二个, 会执行JS,但不确定所有的JS是否都会执行。像网上好多人说的'搜索引擎会直接忽略JS、iframe什么的,只抓取纯文本信息”,这从实际情况上站不住脚啊,如果搜索引擎对JS、iframe鸟都不鸟,那内些做黑帽的同学岂不爽死了(不懂为什么爽?请看前两篇关于黑帽的文章,你就懂了!)
第三个,这个不知道。某些情况下,可能会占用抓取配额,不过我经历的几个存在蜘蛛抓取JS的站,流量上并没有什么异常。
说到这,我的现在工作的站在上半年出现过这种情况,百度疯狂的抓json,robots屏蔽各种无效,然而流量上并没有下降等异常状况,本来依我的心理承受能力是根本不会在乎这种情况的┏ (゜ω゜)=☞,但是一查json的抓取比例着实让我菊花一紧,接近40%,是的,你没有看错,40%,假设百度一天抓100万页面,40万都是json这玩意。
然后发现日志中百度的抓取总量跟百度站长工具的抓取频次对不上,几次检查后发现,日志中的抓取总量 = 百度工具的抓取频次 + 日志中json的抓取总量。也就是说,对于百度给出的抓取频次数据,抓取json的部分是没有计算在内的,等于说是附赠的抓取。从这点看,应该对SEO没什么影响,不存在占用抓取配额的问题么,但看抓取比例总是非常蛋疼,还是决定解决下这个情况。
经过排查,发现有些页面包含一个功能:当页面被请求时先判断来访用户是否登录,如果登录则返回该用户历史访问的其他产品,如果未登录,则返回指定的内容。返回的内容转换成一个json文件(没错,就是百度疯狂抓的那个),然后传递到前台的js,js通过解析json文件,将解析json后的数据显示在前端界面。
用的是异步加载,从业务逻辑上看,对该页面的任何访问者,如果不执行这个js,相当于页面没加载完。
json路径是明文写在js里的,也不知道百度是把json的路径识别出来了还是执行js了,反正只要抓了包含这个功能的页面,都会顺带抓对应的json文件。
综上,预定的解决办法有两种:
第一种是直接把这个功能对应的JS删了
第二种是面对搜索引擎访问,不返回这个js。所以蜘蛛根本看不到,也就不会抓了
最后因为这个功能上线多月,但数据表现一直不好,点击率低,直接把这个功能砍了.......然后转天在看日志,json抓取量为0......
A、觉得有帮助就转一下喽,转一下又不会怀孕(๑•́ ₃ •̀๑)
B、暂定了几个更新的主题,麻烦在对话框中输入对应的编号,我会统计需求最多的那个优先更新
1)网站被DDOS、CC,SEO如何处理?
2)黑帽:寄生虫程序原理
3)SEO数据的获取与分析技巧
4)关键词数据分析
5)其他,你们定,直接在对话框输入