在过去的20年里,谷歌的搜索引擎发生了很大的变化。如果我们把技术和web开发作为一个整体来看,我们可以看到变化的速度是相当惊人的。
这个自一九九八年开始的网站内容丰富,但不太吸引人或不易使用:
现代网站不仅看起来更好看,而且还配备了强大的功能,比如推送通知、部分脱机工作和眨眼就能加载。
但如果我们想要准确,我们应该使用“应用程序”而不是“网站”,因为网站是交互式的,动态的,用JavaScript构建的。
JavaScript改变了游戏规则
在很长一段时间里,谷歌无法执行JavaScript,但到了2015年,公司在处理JavaScript方面迈出了一大步。
需要强调的是,搜索引擎的发展比web开发的发展要慢得多,这可能就是为什么谷歌仍然是唯一可以执行JavaScript的搜索引擎的原因。
一开始,当万维网只是由静态的超文本标记语言(HTML)组成的网站建立时,谷歌有一个简单的任务要完成:
向服务器发出请求→获取静态HTML响应→索引页面
我知道这是一个超级简单的过程描述,但我想展示处理网站过去和处理网站今天的区别。
当开发人员开始使用JavaScript (JS)在网站上添加交互性时,问题就出现了;当使用JavaScript创建整个网站时,对JavaScript的依赖性变得更大时,问题就出现了。
JavaScript应用程序和网站对谷歌来说是一个挑战,因为在初始请求被发送到服务器后,Googlebot会收到一个空的或几乎空的HTML文件。内容、图像和链接是在JS执行后添加的。
谷歌通过渲染他们访问的几乎所有页面解决了这个问题。所以现在的过程大致是这样的:
向服务器发出请求,获取静态HTML响应,发送到索引器,渲染页面
索引并将提取的链接发送到谷歌机器人(Googlebot)—谷歌机器人可以抓取下一个页面。
JavaScript的执行给爬行、渲染和索引的过程增加了很多低效和延迟,因为:
谷歌机器人的爬行速度变慢了。它在JS网站的源代码中看不到超链接,所以它需要等待索引器渲染页面,然后将提取的url发送回来。
执行JavaScript需要很多资源。即使对于谷歌的数据中心来说,它也很累人。
尽管存在这些障碍,我们需要为开发动态JS应用程序的大繁荣做好准备,因为人们对诸如React、vuv . JS或Angular等开源框架的兴趣会持续高涨。越来越多的网站将使用JavaScript建立。所以作为seo,我们需要能够发现使用它的网站上的问题。
适当的方法
在我们开始深入挖掘JavaScript和一些与它相关的混乱之前,让我们看看三个方面将调整我们分析网站的方法:
问题的规模有多大?
我们需要理解并清晰地区分使用JavaScript构建的网站(应用程序),比如单页应用程序(SPA)和部分依赖JavaScript的网站(应用程序)。下面是一些可能的场景,以及如何分辨什么是用SPA构建的,什么是部分依赖:
没有JavaScript的依赖关系。访问我们的网站和关闭JS在浏览器-没有什么改变。
部分JS依赖性。参观角。io网站和关闭浏览器中的JS——主导航不工作(但链接在文档对象模型[DOM]中可用,我将在后面讨论)。
有意义的JS依赖性。访问AutoZone并关闭JS——主导航可能不工作,链接可能在DOM中不可用。
完整的JS依赖性。访问YouTube,关闭JS,注意到所有的内容都消失了!
正如您可能猜到的那样,如果您部分依赖于JavaScript,那么需要解决的问题就更少。
网站建在哪里?
静态HTML网站建立在你的服务器上。在收到Googlebot(以及用户)的初始请求后,它会收到一个静态页面的响应。
动态web应用程序(DWA)是在浏览器中构建的,因此在初始请求之后,我们会收到一个空的或几乎空的HTML文件,并使用JavaScript以异步方式加载内容。从更大的角度来看,当涉及到JS和搜索引擎优化(SEO)问题时,我们可以假设客户端渲染是真正的反派。
谷歌的极限是什么?
不久前,谷歌透露了它是如何呈现网站的:共享网络撕裂服务(WRS)负责页面的呈现。在他们背后是一个基于2015年推出的Chrome 41的无头浏览器,所以它有点过时了。谷歌使用了三年前的浏览器这一事实对呈现现代web应用程序有真正的影响,因为它确实如此