Googlebot 可以读取 JavaScript – SEO 应该如何反应?
已发表: 2017-12-11传统上,搜索引擎只读取和呈现网站的 HTML 代码。 这意味着优化 HTML 代码是 SEO 必须关注的。 如果 Googlebot 现在也能够抓取和索引 JavaScript,这对搜索引擎优化意味着什么? 我们请了几位行业专家来找出答案。

Googlebot 和 JavaScript:专家怎么说
为了获得有关 Googlebot 和 JavaScript 主题的一系列观点,我们向专家询问了以下问题:
- 谷歌表示,Googlebot 可以抓取基于 JavaScript 的网站——您认为 SEO 面临哪些挑战和机遇?
- 如果有人计划重新启动 JavaScript 网站,他们应该考虑哪些特定方面?
- 您预计 Chrome 中的 Web 渲染更新会在效率和准确性方面发生哪些变化?
答案就在这里。
马丁陶伯
Marketing Factory GmbH 管理合伙人
基于 JavaScript 的网站在用户体验方面提供了巨大的机会,因为它们使用起来更快、更具交互性。
然而,Googlebot 在解释 JavaScript 方面仍然存在困难,这意味着开发必须非常干净,并且必须与 SEO 部门密切合作,才能避免不愉快的意外。
多米尼克·沃西克
董事总经理,信托代理人
有机会现在您没有两个独立的编程世界(例如转义片段),让您专注于干净的代码和干净的 Web 环境。 只要开发人员考虑渐进式增强并相应地开发他们的网络应用程序,谷歌应该能够应付得很好。
然而,隐藏的挑战也存在。 使用的是哪个框架? 会有客户端渲染还是可以实现服务器端渲染? 甚至有可能实现同构 JavaScript 吗? JavaScript 是在内部实现还是在外部实现? 作为 SEO,我们将不得不做大量的测试并尝试不同的事情,以确保谷歌按照我们的意愿索引和加权我们的页面。
在重新启动之前,应仔细决定要使用的框架。 应同时考虑可抓取性和性能。 理想情况下,如果正在使用客户端渲染,则应创建一个测试环境,以便可以从外部测试当前开发。 也就是说,我强烈建议也使用服务器端渲染。 这会影响服务器性能,但应将风险降至最低。 最重要的是,您确实必须测试、测试和测试,使用 fetch & render 来查看 Googlebot 发现、索引和抓取的内容。
如果 Google 最终确实切换到了高于 V49 的 Chrome 版本,那么我们可以将 headless Chrome 与 Rendertron 之类的东西结合使用来创建测试环境,让我们模拟类似于 Googlebot 的设置。 这将有助于我们更好地了解 Google 可以如何解释以及解释什么。 这将使我们 SEO 的事情变得更容易
巴托什·戈拉尔维茨
Elephate 联合创始人兼 SEO 负责人
在 2017 年 11 月的 Searchmetrics 峰会上,来自 Elephate 的 Bartosz Goralwicz 谈到了 Googlebot 和 JavaScript 之间的关系:
斯蒂芬·齐施
Trust Agents 创始人兼董事总经理

我们不希望 SEO(或代理机构)听到人们说:“顺便说一下,我们很快就会切换到 JavaScript。 在 SEO 方面我们有什么需要考虑的吗? 不应该,应该有吗? 但是,如果您能在我们周一使用新网站之前快速浏览一下,那就太好了。” 这种情况将不可避免地以彻底的混乱告终。 Bartosz [在上面的视频中] 对 JavaScript 和 SEO 主题进行了精彩的介绍。

除了询问 Google 可以呈现什么之外,SEO 还应该在重新启动网站时查看机器人可以看到的内容,并确定与旧网站的不同之处。 我最近处理了一个网站,其中完整的内部链接系统在 JavaScript 重新启动后被搞砸了,因为旧网站的链接逻辑没有被继承。 还有hreflang问题。 因此,必须使用所需的“SEO 功能”清单。 此外,您应该询问 JavaScript 渲染对您的使用真正意味着什么:他们使用什么样的硬件来访问您的网站以及这将如何影响加载时间? 有关此主题的更多信息,可以推荐 Addy Osmani 的这篇文章。
塞巴斯蒂安·阿德勒
搜索引擎优化顾问,leap.de
即使爬取 JavaScript 的能力有所提高,Google 也会更喜欢纯 HTML 内容,因为它占用的资源更少。 问题不在于 Google 是否可以读取和渲染 JS,而在于您是否可以并且想要将部分工作从 Google 手中拿走。 如果我的内容可以在没有 JS 的情况下很好地阅读、运行和加载,那对我来说还是更好的。
渲染能力始终取决于其背后的技术,正如 Bartosz 所说(尊重他在实验和研究中付出的所有努力!),如果您要充分利用该技术,就必须充分了解它. 这里的绝佳机会是通过以 HTML 形式提供重要内容并仅按预期使用 JS 来最大程度地降低风险:用于附加功能。 如果你完全致力于 JavaScript,最大的困难是发现错误。
重新启动页面时,请确保您想要排名的内容在没有 JavaScript 的情况下工作。 这不仅包括主要内容,还包括导航元素。 停用 JS 后,许多页面没有菜单。 不包括每一个花哨的功能,而是询问您的业务和目标受众是否真的需要某个功能是有意义的。 如果某个功能不起作用,会有什么影响? 然后进行相关测试。
除了我不希望 Google 能很好地向网站管理员传达网络渲染更新这一事实之外,我预计将发生变化的主要事情将是对错误的敏感性。 Chrome 和框架开发得非常快,随着新版本的推出,RWS 很可能会出现新的错误。
有些事情肯定会处理得更快或更干净。 但主要问题保持不变。 无法解释错误缠身的代码(从正在使用的引擎的角度来看)。 我们必须找出引擎如何解释我们的代码。 在开发过程中,这改变了我们必须用于调试的工具。 但是,如果您拥有最重要的资产作为快速加载 HTML(等)文件,那么您不必担心——您可以专注于适当的 SEO 工作。
比约恩·贝丝
Searchmetrics 专业服务总监

我们必须区分抓取和索引。 Google 可以抓取 JavaScript,但它比抓取纯 HTML 需要更多的资源。 对于在 Web 呈现服务 (WRS) 的帮助下呈现从爬虫接收到的链接 (URL) 的索引器来说,问题更大,其方式类似于 Search Console 中的 Fetch & Render。 为此,Google 使用了自己的 Chrome 浏览器(版本 41)。 在浏览器的帮助下,它尝试创建一个文档对象模型 (DOM) 并以与在浏览器中显示相同的方式解释页面。 这可能会导致问题,例如谷歌(如 Distilled 和 Bartosz Goralewicz 运行的测试所示)无法处理代码中的问题,或者在渲染时出现其他大问题,因此谷歌在五秒后停止在页面中渲染. 这在 Screaming Frog 进行的测试中得到了证明。
基本上,JavaScript 使抓取和索引变得更加复杂,并在两者之间建立了一种非常低效的关系。 如果 SEO 对您很重要,您应该始终确保机器人可以尽可能快速有效地阅读您的页面。
在从基于 HTML 的网站重新启动到基于 JavaScript 的框架或库之前,您应该确保包含服务端渲染。 例如,React 自带了自己的解决方案,称为 renderToString。 这使用了一个独立于浏览器的 DOM 接口,该接口在服务器上呈现 JavaScript,创建 DOM 并将其发送到机器人。 AngularJS 使用 Angular Universal。 这向客户端证明了所有重要的预渲染 HTML。 然后,客户端会根据需要获取 JavaScript。 但是,您也可以在服务器上使用无头 Chrome 并将预渲染的 HTML 发送到机器人。
最重要的是,我希望 Chrome 59 能够提供更快、更高效的渲染,从而实现与纯 HTML 相媲美的性能。 只有测试才能判断这是否真的发生。
在泥泞中爬行:评估您网站的健康状况
使用站点结构优化分析 HTML 和 JavaScript,包括现在使用 Searchmetrics 的 JavaScript 爬虫! 您的好处:
- 爬取所有相关的 JavaScript 框架,包括 Angular 和 React
- 通过技术问题的优先列表提高网站性能
- 比较使用和不使用 JavaScript 爬取的爬取情况
阅读有关我们的 JavaScript 抓取的更多信息
你觉得怎么样?
这就是这五位专家的想法,但是我们有更多的专家阅读这个博客。 那么你对 JavaScript 有什么看法呢? 您是否已经对您的网站进行了更改? 您是否已经在测试中发现了一些有趣的东西?
