搜索引擎如何在网络上呈现页面?他们为什么以及何时这样做?这些问题以及更多问题都在这篇文章中得到解答。
搜索引擎如何(以及为什么)呈现页面
我们对索引的看法有一个有趣的转折——那就是渲染。
当我们考虑对页面进行排名时,我们通常会考虑索引。
也就是说,我们一般会考虑一个搜索引擎有以下时间点:
从历史上看,这是该过程中最重要的一组步骤,因为它是排名的触发因素。
但是,索引不是发现过程的最后阶段。
我认为它的权重会随着时间的推移而下降,而最后阶段 - 渲染 - 会增加,我怀疑会完全取代索引版本。
从本质上讲,索引和渲染之间的区别可以用以下两个图像来说明:
这是索引:
这是渲染:
这与索引 (HTML) 和渲染 (Chrome) 期间的内容基本相同。
渲染比您想象的更重要。
搜索引擎在最近将 JavaScript 用于网站之前呈现页面这一事实是一个很好的确认。
从本质上讲,它之所以重要,是因为渲染提供了真相。
通过代码,搜索引擎可以了解页面的内容以及大致发生的事情。
通过渲染,他们可以了解用户体验,并更多地了解哪些内容应该优先。
通过渲染,他们可以回答以下问题:
所有这些问题,以及更多问题,都在渲染过程中得到了解答。
这些答案对于正确理解页面以及如何排名非常重要。
2018 年,渲染耗时数周。
毫不奇怪,现在花费的时间要少得多。
事实上,几秒钟。
在音频中的18:20左右,你会听到谷歌的马丁·斯普利特(Martin Splitt)回答了这个问题。
中间是 5 秒,在几分钟内,90% 的索引页面将通过呈现队列。
需要注意的是,这是排队,不一定是渲染。
也就是说,如果您处于在 5 秒内开始的中等集的积极一侧,您的页面将在 5 秒内开始呈现,尽管它可能不会在该时间内完成。
如果渲染在 4 秒内开始,但需要 30 秒才能完成,则将被视为中等集正向的渲染之一。
2019 年 5 月,Googlebot 的 Web 渲染服务 (WRS) 组件得到了更新,实现了巨大的飞跃。
在此之前,Web 渲染服务使用的是 Chrome 版本 41。
虽然这对兼容性很有帮助,但对于依赖 JavaScript 现代功能的网站来说,这是一场噩梦。
2019 年 5 月,Web 渲染服务升级为 evergreen,这意味着它使用最新版本的 Chrome 进行渲染(无论如何在几周内)。
从本质上讲,现在当你的页面被谷歌呈现时,它或多或少会呈现你在浏览器中看到它的方式。
我想快速回答一个问题,我发现自己并没有完全理解这个问题,直到我意识到我的想法完全错误。
欢迎你嘲笑我,因为我脑子里打嗝的明显性。
首先,让我们考虑一下 Web 渲染服务从哪里获得指令以及如何获取指令。
以下是渲染的生命周期:
因此,该过程的一个关键且不言而喻的元素是渲染队列。
当页面到达渲染队列的顶部时,引擎将向其发送所谓的无头浏览器。
这是我遇到困难的步骤。
无头浏览器是没有图形用户界面的浏览器。
出于某种原因,我很难把我的大脑包裹起来。
比如,如果它没有以图形方式显示,谷歌怎么知道那里有什么?
显而易见的答案是:
“机器人也没有眼睛,所以…嗯…是的。
在那个心理问题中,我开始接受它作为“浏览器灯”,它为搜索引擎呈现页面,以便了解页面上出现的内容、位置和方式——即使他们没有眼睛看到它。
一切顺利后,呈现的版本在 Googlebot 中的显示效果将与在图形浏览器中的显示相同,如果不是,则可能是因为该网页依赖于不受支持的功能,例如用户权限请求,或者某个脚本或其他资源出错。
预渲染是使用像 Puppeteer(我最熟悉的库,用作示例)来创建 JavaScript 页面的缓存 HTML 副本,并将这些缓存提供给 Google。
基本上,这是一种关于伪装的道德形式,您可以复制页面,因为它在 DOM 中显示,并将其提供给搜索引擎,以确保他们看到的内容与用户在停下来索引内容时所做的内容相同。
随着索引和渲染之间的时间延迟急剧下降,我想到了一个明显的问题——我还需要预渲染我的 JavaScript 网站吗?
你可能会问自己,为什么要首先进行渲染?如果一个网站不是 JavaScript 或以其他方式依赖于呈现来“查看”内容,为什么 Google 需要呈现页面?
渲染使引擎能够根据人类可能与页面交互的方式确定内容的优先级。
它让引擎知道内容在浏览器中的位置以及不同元素的可见度,因此当他们试图判断或确定内容的优先级或权衡可用性时,他们正在使用访问者所在的同一产品。
时间滞后的变化和穆勒的预渲染声明将文字写在了墙上。
从SEO的角度来看,索引可能会成为一个功能上无关紧要的步骤,就Web内容发现而言,渲染占据了前台。