谷歌是否会抓取带有正文内容的JavaScript
历史上,像Googlebot这样的搜索引擎爬虫只能读取静态HTML源代码,无法扫描和索引使用JavaScript动态编写的材料。不过,随着富含JavaScript的网站和框架(如Angular、React和Vue.JS)以及单页应用(SPA)和渐进式网络应用(PWA)的崛起,这种情况发生了变化。为了在索引前正确显示网页,谷歌已经修改并停止了之前的AJAX抓取技术。虽然谷歌通常可以抓取和索引大多数JavaScript信息,但他们建议不要利用客户端解决方案,因为JavaScript “很难处理,不是所有的搜索引擎爬虫都能正确或及时地处理它。”
什么是Google Crawl
谷歌和其他搜索引擎使用称为谷歌爬虫的软件(也被称为搜索机器人或蜘蛛)扫描网络。换句话说,它在互联网上逐页 “爬行”,寻找谷歌数据库中尚未有的新鲜或更新内容。
每个搜索引擎都有一个独特的爬虫集合。关于谷歌,有超过15种不同的爬虫,其中谷歌机器人是主要的爬虫。由于Googlebot负责抓取和索引,我们将更详细地研究它的运作。
谷歌爬虫的功能是什么
没有任何一个搜索引擎,包括谷歌,保持着一个中央的URL登记册,在每次有新的页面出现时都会更新。这意味着谷歌必须在互联网上搜索新网页,而不是自动 “提醒 “它们。谷歌机器人不断地在互联网上闲逛,寻找新的网页来添加到谷歌已经存在的网页目录中。
找到一个新网站后,Googlebot通过加载所有的HTML、第三方代码、JavaScript和CSS,在浏览器中对其进行渲染(或 “可视化”)。搜索引擎使用这些保存在其数据库中的数据,对该网页进行索引和排名。如果一个页面被编入索引,它就会被添加到谷歌索引,这是一个额外的极其庞大的谷歌数据库。
JavaScript和HTML渲染
冗长的代码可能让Googlebot难以处理和呈现。如果代码不整齐,爬虫可能无法正确呈现你的网站,在这种情况下,它将被视为空的。
关于JavaScript的渲染,请记住,这种语言正在迅速增长,Googlebot可能偶尔会停止支持最新的版本。确保你的JavaScript是与Googlebot兼容的,以避免你的网站显示错误。确保JavaScript加载迅速。如果一个脚本的加载时间超过5秒,Googlebot就不会对其进行渲染和索引。
什么时候使用JavaScript进行抓取?
我们仍然建议在第一次分析网站时有选择地采用JavaScript抓取,以发现JavaScript,尽管谷歌通常会渲染每一个页面。JavaScript用于利用已知的客户端依赖性进行审计,并在部署巨大的网站时使用。
有选择地抓取所有资源(包括JavaScript、CSS和图片),必须在后台的无头浏览器中显示每个网页并建立DOM。JavaScript抓取的速度较慢,而且是劳动密集型的。
虽然这对较小的网站来说不是问题,但对拥有数百个甚至数百万个页面的大型网站来说,会有很大影响。如果你的网站没有严重依赖JavaScript来动态改变网页,就没有必要花费时间和资源。
爬虫在处理JavaScript和带有动态内容(DOM)的网页时,必须阅读和评估文档对象模型。在加载和处理所有的代码之后,还必须产生这样一个网站的完整显示版本。浏览器是我们查看显示的网页的最简单的工具。正因为如此,抓取JavaScript有时被描述为采用了 “无头浏览器”。
结论
在未来的几年里,将会有更多的JavaScript,因为它将会一直存在。只要在创建网站架构的早期与SEO讨论,JavaScript就可以与SEO和爬虫和平共处。爬虫仍然只是实际搜索引擎机器人行为的一个复制品。除了JavaScript爬虫之外,我们强烈建议使用日志文件分析、谷歌的URL检查工具或移动友好测试工具来了解谷歌可以抓取、渲染和索引的内容。