我正在开发一个新网站,我想尽可能多地使用 AJAX。基本上,我希望用户几乎永远不会离开主页,所有内容都显示在弹出窗口、 slider 、部分等中。
现在我们现有的网站已经排名很高,所以我也想让 Google 满意。我一直在阅读 Making AJAX Applications Crawlable Google 并了解我必须通过 _escaped_fragment_ 为抓取工具提供相同的内容。
问题
我想使用 Umbraco 开发这个网站,它已经提供了 SEO 友好的 URL。 即
但问题是,如果不破解 Umbraco 核心(至少这是我的知识)并使用我在下面发布的解决方案(答案),我没有一个简单的方法来实现 _escaped_fragment_也将使没有 Javascript 的用户满意。双赢局面?你告诉我! =)
更新
昨天有另一位用户的回答(现已删除),他建议 Google 不再使用 _escaped_fragment_ 方法,并建议将其排除在外。这是真的? Google 真的会运行 AJAX 来查看内容吗?
谢谢
马尔科
最佳答案
我采纳了@Daniel Pryden 的 评论中的建议并将其作为答案发布。
我考虑过这个问题并想到 - 为什么不以老式方式、实际页面和所有内容创建网站,然后执行以下步骤。
- 使用 jQuery 拦截主页上的所有内部链接,并在
window.location.pathname
之前添加一个哈希 (#),从而触发 hashchange 事件。 (见第 3 步) - 在除主页之外的所有页面上添加 javascript 重定向以将页面重定向回主页,但在井号 (#) 后附加
window.location.pathname
。比如谷歌抓取http://www.domain.com/about-us.aspx但是当用户访问该页面时,他们将被重定向到 http://www.domain.com/#/about-us.aspx - 在主页上,使用 jQuery BBQ 或类似插件监听 hashchange 事件,包括页面加载时间,以便加载动态内容。 Umbraco 可以配置为根据请求是否为 AJAX 请求提供部分或完整页面内容。
这样,没有 Javascript 的用户将拥有一个成熟的(半好看的)网站,谷歌将毫无问题地抓取所有页面,但使用 Javascript 的用户将始终留在主页上——这个很酷的概念将实现拥有 Web 应用程序而不是网站。
关于jquery - 去hashbang还是不去hashbang?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6756695/