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