我正在开发一个基于hashchange事件实现导航的应用程序。内容大部分是在散列更改后通过ajax调用加载的(并通过DOM注入显示)。

从SEO角度看,搜索引擎是否可以索引此注入的内容?
搜索引擎是否能够跟随我的哈希链接(ex href =“#page = 1”)吗?

如果不是-仅出于SEO原因,除了在我的页面中包含静态内容之外,还有其他解决方法吗?

Thx

我在SO上找到了一些类似的线程,但是没有找到满意的答案,因此请原谅我再问一次。

#1 楼

检查此Wiki。
^深入了解哈希URL和hashbang URL的优缺​​点,并提供替代解决方案

#2 楼

可以使Google跟踪您的哈希链接,但需要进行一些服务器端更改。

#3 楼


搜索引擎是否可以索引此注入的内容?


答案-是和否。标签,那么爬网程序将无法为内容建立索引。这些正常的#标签是用于相同的页面导航(远在AJAX出现之前),而不是用于更改页面的状态。因此,为了防止多次对同一页面重新编制索引,爬网程序被故意编程为忽略url中的#标签之后的所有内容。

是的:您有两种解决方法:


使用Hashbangs / Shebangs代替普通的#标签来更改url
使用push-state

就SEO而言,两种解决方法/解决方案如果正确实施,效果也一样好。但是,除了SEO之外,两者中哪一个更好呢?

#4 楼

要完成Legoscia的答案(https://stackoverflow.com/a/11582278/1518423),您可以在服务器端使用无头浏览器库,将静态html提供给Google bot。大量使用ajax,似乎您喜欢javascript,因此这是可从node.js使用的javascript无头浏览器:http://zombie.labnotes.org/

希望这对您有用,玩得开心!

#5 楼

尽管有些搜索引擎支持抓取Ajax内容,但传统的url和静态页面内容对于提高搜索引擎可见性仍然更加可靠。通常希望ajax内容是可爬网的。但是,在这种情况下,重定向通常是一种可行的(但不理想的)替代方法。

我建议最初对页面进行编码,以便在必须对页面的大/重要部分进行更改时进行重定向。重新加载(第1步)。意思是,我们用传统的网址<a href="/page/1">(或类似的网址)而不是<a href="#page=1">定位锚。

然后,编写javascript(jQuery)拦截重定向并使用ajax重新加载页面的一部分更改页面是否重定向(第2步)。动态(避免包含静态内容)。