但是我太高兴了。我关闭了预渲染服务,让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内容的网站。
有没有人有类似的经历?这个问题可能有解决方案吗?
答案 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。