无法被谷歌抓取的JavaScript链接不能传递“信任票”
无法被谷歌抓取的JavaScript链接不能传递“信任票”
但是随着谷歌整体功能的完善,越来越多的特殊操作能够被谷歌识别,在抓取和呈现JavaScript等方面有了显著的进步,绝大部分用JavaScript制作的链接都能够被正确识别并进行渲染展示。
这4种超链接即外链并不能完全被谷歌识别。第一种和第四种外链构成形式没有问题,能够被谷歌正确识别并在页面前端正常地渲染其效果。但是第二种和第三种外链的构建方式显然不能够被谷歌正常地抓取和索引,所以如果想以相关的JavaScript技术来实现外链目标的话,需要避免上图中两种不正确的方式。
这就涉及了使用JavaScript的网页内容在被谷歌爬虫抓取的时候与常规的HTML网页之间存在差别。理论上当谷歌爬虫在抓取某个HTML网站页面的时候,先下载HTML的DOM文件,从源码中提取相关的链接,然后下载对应的CSS文件,随后将这些页面资源发送到谷歌的indexer(也就是谷歌的索引器)。
但是谷歌爬虫在抓取JavaScript的网站页面的时候,当它下载了HTML的DOM文件之后,因为JavaScript尚未下载执行所以在源码中找不到对应的链接,再去下载对应的CSS和JS文件,谷歌爬虫必须使用google web rendering service来解析、编译和执行JavaScript部分内容。
都知道JavaScript通常需要执行的是外部的动态内容,所以在使用google web rendering service的时候会从外部的API、数据库等渠道获得对应的数据,此时谷歌索引器才能够执行后续的索引动作和相关内容。索引完毕之后谷歌才能发现网站页面上的相关链接并将其添加到内容待抓取队列中。
JavaScript在执行解析、编译和运行JavaScript文件时都比较耗时,并且在具体执行JavaScript内容渲染任务的时候也会遇到很多问题,甚至有些并不是代码方面的原因,有可能是浏览器版本等外界因素造成的问题,也有可能是Cookie、本地缓存等外界因素造成的渲染效果差异。此外,谷歌爬虫的抓取和染行为与真正的浏览器(Chrome、Firefox等)也存在着不同,它的目的是抓取有价值的资源,而后者是如实地反应某个网站页面的具体内容。这就造成了谷歌爬虫有时候会选择性的加载相关资源而不一定对全部资源都进行完整性加载。所以才说无法被谷歌抓取渲染的JavaScript链接不能够传递“信任票”。此外,还要及时删除有害的外链。