如果你有一个单页面应用程序(SPA),其中包含大部分通过Ajax加载的JavaScript内容,谷歌建议guide如何使这些应用程序可以抓取。
你必须使用#!在您的页面片段中,使片段对搜索引擎可见。
www.example.com/ajax.html#!mainpage
现在,如果您使用HTML5 PushState History API,则可以将网址更改为
www.example.com/ajax.html/mainpage
此网址看起来必须比第一个更好。搜索引擎可以轻松访问该页面,因为网址中没有哈希#。问题是它仍然是一个必须解释的JavaScript页面,搜索引擎不会这样做。
我有以下想法,但不知道如何实施它或是否有任何解决方案。
答案 0 :(得分:2)
我认为你的两个想法都在按计划进行。
无论哪种方式,您都需要在服务器上捕获搜索引擎“?_escaped_fragment_ =”作为“#!”的代理。为此,您可以查看this SO并查找GWT official reference。
由于性能原因(无头浏览器很慢,它可能会超出javascript完成的结束),你也可以缓存生成的静态html页面(那些不依赖于你的例子中的动态参数的页面)并提供那些但是在升级代码时需要小心保持同步,以避免被视为Doorway Page。