基于 JavaScript 的网页可能会在 Google 的缓存中显示为空白或不完整,这是正常现象,并不表示有任何问题。
Google 的搜索倡导者 John Mueller 在 YouTube 上的 Ask Googlebot 视频系列的最新一期中说明了这一点。
个人提交了一个问题,询问为什么他们的 JavaScript 页面没有显示在 Google 的缓存视图中。
问题如下:
“React 页面的缓存版本显示一个空白页面。在使用 SSR 对 React 页面进行编码以使其对 Googlebot 友好时应考虑哪些参数?”
缓存页面是 URL 上次被 Googlebot 抓取时的样子的快照。
当缓存页面看起来是空的或缺少内容时,很自然会认为 Googlebot 在抓取它时遇到了问题。但情况并非总是如此。
正如 Mueller 解释的那样,Google 的缓存只捕获页面上的 HTML 元素。
并不是说谷歌不能缓存 JavaScript,更多的是谷歌受到浏览器限制的阻碍。
Google 的缓存仅显示 HTML
Mueller 说,缓存基于 JavaScript 的网页具有挑战性。
不是从技术角度,而是从安全角度。
Web 浏览器对访问内容的方式有限制,并且可能会阻止来自其他网站(如 Google 的缓存)的 JavaScript 文件请求。
“谷歌搜索有时会保留从服务器获取的 HTML 页面的副本,并以缓存页面的形式向用户显示。然而,这实际上只是 HTML 页面。
对于基于 JavaScript 的网站,这里有点复杂。由于浏览器的安全性,从页面访问内容的方式受到限制。
例如,如果某个页面需要来自您服务器的 JavaScript 文件,则当该请求来自其他网站时,浏览器可能会阻止该请求。在我们的例子中,另一个网站是谷歌的缓存。
实际上,这意味着基于 JavaScript 的网站在从 Google 的缓存中显示时通常会显示空白或不完整的页面。这是正常的,不是问题的迹象。”
虽然 Google 缓存中的空白页面可能令人沮丧,但对搜索而言真正重要的是页面如何被索引。
可以肯定的是,Google 可以单独处理 JavaScript,并会在用户看到页面时尝试将其编入索引。
穆勒继续说:
“特别是,对于索引,谷歌将单独处理 JavaScript,并尝试将用户直接访问您的网站时看到的内容编入索引。如果您想仔细检查,可以在 Google Search Console 的测试工具中看到这个呈现的页面版本。
在大多数情况下,Google 可以很好地在基于 JavaScript 的网站上呈现和索引内容。因此,简而言之,JavaScript 网站的缓存视图为空或不完整是正常的。这并不表示存在问题,这只是浏览器的技术限制。”
要更准确地了解 Google 如何查看您的网页,请使用 Search Console 中的网址检查工具。