网页设计师和工程师喜欢的Ajax构建单页应用(SPA)?与像角和应对流行的框架。 纯Ajax实现可提供平滑,交互式Web应用程序,执行更象一个专用的桌面应用程序。
随着SPA,一般的HTML内容不加载到浏览器上最初获取网页。?Ajax使用JavaScript来?与Web服务器通信,动态创建HTML渲染页面?并与用户进行交互。?(有一个名为“服务器端渲染”技术,其中的JavaScript实际上是在服务器上执行,并在页面请求与呈现的HTML返回。?但是,这种方法目前还不支持对所有的SPA框架,并增加了复杂性发展。)
一个与SPA的Ajax网站的问题一直是搜索引擎优化。谷歌实际上已经抓取了?JavaScript内容一会儿。事实上,这个最近的一系列试验证实谷歌的能力,通过JavaScript插入爬行环节,元数据和内容。与SEO然而,使用纯SPA Ajax框架的网站在历史上经历过的挑战。
早在2009年,谷歌想出了一个解决方案?使阿贾克斯抓取。?这种方法既创造了“逃跑片段”的URL(网址丑),或更近,干净的URL与元=“片段”页面上的标签。
转义片段网址或元片段标签指示谷歌走出去,让已经执行所有的JavaScript页面的预渲染的版本,具有完整的HTML,谷歌可以解析和索引。在该方法中,蜘蛛提供了一个完全不同的网页源代码(HTML VS。JavaScript的)。
随着这个词,谷歌抓取JavaScript的,很多网站都决定让谷歌抓取其SPA的Ajax网站。在一般情况下,已经不是很成功。在过去的一年里,我曾咨询了用Ajax实现角一对夫妇的网站。?谷歌取得了一些成功,和大约30在谷歌的缓存中的网页%是完全呈现。另外的70%是空白。
一种流行的食品网站切换到角度,认为谷歌可以抓取。他们失去了他们的有机流量的70%,仍从崩溃中恢复。最终,这两个网站去预渲染HTML快照,推荐阿贾克斯当时爬行解决方案。
然后,在10月14日,谷歌?这个说:
我们不再建议我们在2009年做回AJAX检索提案。
需要注意的是,他们仍然支持他们的老提案。(已经有一些文章,宣布他们不再支持它,但事实并非如此 – 它们只是不再推荐这种方法。)
在弃用老的建议,?他们似乎在说,他们现在可以抓取阿贾克斯。
然后,在消息公布后短短一周,与新推出的网站客户问我检查出来。?这是一个角部位,又是一个SPA Ajax实现。
经审查谷歌的索引和高速缓存,我们看到没有所有的内容越来越抓取的部分索引的网页。我重申我先前使用HTML快照或渐进增强的建议。
此网站有棱有角,这还不支持服务器端渲染建(再次,在这种情况下,服务器最初呈现一个页面就可以提供HTML文档),因此逐步增强将难以支持,HTML快照还在为他们的最佳解决方案。
她回答说,“但我whyEverything读取告诉我,谷歌可以抓取阿贾克斯。“
他们能? 让我们在新的建议,更深入地了解关于阿贾克斯。
在解释为什么他们废除了旧的建议,他们说(重点煤矿):
我们通常都能够渲染和了解您的网页就像现代的浏览器。
很多人可能会很快得出结论,他们现在可以抓取阿贾克斯不会有问题。?但是看的语言:“一般都能”? 你敢打赌,你的业务收入上?知识,谷歌是“一般都能”理解你的页面?
难道是我刚采摘的语义? 让我们进一步审查公告。后来在他们的公告,他们对于阿贾克斯声明:
由于我们2009年建议的假设不再有效,我们建议以下原则?渐进增强。
他们不拼出来在他们的公告,而是通过推荐渐进增强(其中负载一些HTML对于不支持JavaScript的浏览器),它们似乎暗示说,“做我们抓取您的JavaScript不算数。“为什么要推荐此方法如果确实是谷歌能够始终如一抓取SPA的Ajax网站?
我担心我也许overanalyzing谷歌的话,但随后 。。。
10月27日(谷歌的消息公布后不到两个星期),约翰·穆勒,在他的网站管理员中心的Hangouts,证实了谷歌确实仍然有问题阿贾克斯。
您可以查看有关周围1点08分00秒的交换到视频,那里有个问题?与特定角度的实现:
他们仍然有麻烦的渲染,?我希望随着时间的推移更好。约翰建议调试问题的一些行动,以帮助。
最后,他建议使用HTML快照,直到谷歌在阿贾克斯得到更好(是的,这只是正式弃用的方法)。
进步?增强。?服务器端渲染将需要逐步增强,这?它尚未被角支撑。然而,即将到来的2角。0将支持服务器端渲染。应对?确实,事实上,支持服务器端渲染今天。
这是,然而,超过简单地创建工作?HTML快照。?你需要确保你提供任何所需的链接,以便谷歌可以抓取并加载到页面索引附加内容。
然而,对于使用Ajax框架的网站,?这将是我推荐的方法。(而且,当然,这是谷歌的推荐方法。)
预渲染HTML快照。?再次,不要,如果你听到或困惑阅读,谷歌不再支持此方法。他们将继续支持它在可预见的未来。他们只是不再推荐它。
此方法效果; 然而,编写代码来预渲染和服务于快照不是小事。?好消息是,有几家厂商?在那里,如预渲染。IO谁将以较低的成本做的工作适合你。那?这可能是最简单的方法。
This method?不理想。?服务于不同的源代码来抓取工具VS。浏览器(HTML VS。JavaScript的)可能会出现问题。?它可以被认为是一个隐形技术,?它不一定有明显的得到服务什么机器人。?它监视谷歌的缓存,以确保他们没有得到服务的错误页面是非常重要的。
不过,如果你使用不支持服务器端渲染平台,那么这可能是你唯一的解决办法。
甚至?如果?我看到的证据表明,谷歌是一贯爬行阿贾克斯的网站,我仍然会持谨慎态度。它需要多得多的资源和更多的时间来完全呈现,而不是一个简单的网页服务的HTML。
会发生场所数百页十万或数百万什么? 它将如何影响爬行预算? 将抓取速度保持一致?
推荐这种方法之前,我宁愿观望强有力的证据表明谷歌能和做一致爬大的,纯粹的Ajax单页的应用程序与抓取速度,索引和排名没有负面影响。请不要分享自己的经验。
在这篇文章中所表达的意见是那些客人笔者并不见得搜索引擎土地。作者的工作人员在这里列出。