Google更新和AngularJS / JavaScript网站

时间:2014-05-28 11:33:06

标签: javascript ajax angularjs seo

谷歌今天(2014年5月28日)宣布,JavaScript内容将由谷歌机器人呈现。哇好消息!因此,无需为爬行目的提供一些预渲染页面。在http://googlewebmastercentral.blogspot.de/2014/05/understanding-web-pages-better.html

上详细了解相关信息

但是我太高兴了。我关闭了预渲染服务,让google使用网站站长工具抓取我的网站。在查看呈现的HTML代码后,我发现:

<div ng-view></div>

很明显,谷歌没有正确渲染ng-view(希望目前)。所以我打开我的预呈现服务并再次抓取该网站。这是第二个问题:Google不会在网址中翻译hashbang(#!),这会向Google显示网站上的AJAX内容,并自动转换为?_escaped_fragment_=。有关AngularJS和SEO的更多信息,请访问:http://www.yearofmoo.com/2012/11/angularjs-and-seo.html

到目前为止,我所知道的所有prerender服务都会检查URL中的?_escaped_fragment_=字符串。如果字符串存在,prerender服务将服务该站点的html快照。但谷歌不再这样做了。总而言之:目前,Google无法抓取带有JS / AJAX内容的网站。

有没有人有类似的经历?这个问题可能有解决方案吗?

2 个答案:

答案 0 :(得分:2)

我的建议是,如果您的网站过于复杂而导致Google遇到困难 - 您需要大幅简化。

现在已经做了超过15年的搜索引擎优化 - 如果我能给出一个推荐,那就是:不要让谷歌变得困难。不要依赖于解决问题的方法。只是让事情变得简单。易于阅读的HTML。每个人都是赢家。

答案 1 :(得分:0)

来回顾你的发现,我没有看到Google正确地预呈现ajax内容 - 至少在webmastertools渲染器中没有。谷歌之前正在按照他们自己的“制作Ajax可抓取”指南(更多内容在https://developers.google.com/webmasters/ajax-crawling/docs/getting-started)以及在webmastertools服务中的搜索索引中正确呈现ajax内容,从“?_escaped_fragment_ =”获取内容

由于这似乎是Googles网站的错误,我们在这里找不到答案,但要通知Google。