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