具有历史API的单页网站与谷歌不喜欢重复内容

时间:2014-03-23 16:30:36

标签: javascript single-page-application google-search history.js html5-history

我正在研究SPS。

它由垂直放置的许多部分组成,并通过滚动访问。除动态新闻部分外,所有页面内容都在服务器端呈现。

不需要多个可索引页面,但是我使用History.js来实现不同部分的网址:

example.com/introduction
example.com/about
example.com/news/some-story
example.com/news/another-story

这一切都很顺利。我必须支持IE9,所以如果URL不是root,我会在客户端重定向到root并使用History.js的哈希回退:

example.com/#/introduction
example.com/#/about
example.com/#/news/some-story
example.com/#/news/another-story

所有这一切都很有效。

我担心Google会如何为网页编制索引。如果Google点击任何正确的网址(新闻故事除了意味着服务器会呈现初始故事),则每个网址的内容都是相同的。

我担心Google会对网站进行处罚,因为它会看到多个内容重复的网页。

如果不为每个页面提供不同的内容(这不是必需的),我怎么能避免受到谷歌的惩罚?使用rel='canonical'是否足够?:

<link rel="canonical" href="http://www.example.com">

为了澄清,我并不关心使用哈希的后备链接。我在谈论使用HTML5历史API(通过History.js)操纵的正确URL。

1 个答案:

答案 0 :(得分:0)

Google可以抓取并正确索引单页应用程序,但您需要支持其语法:

例如,生成的动态内容:

example.com/#!about

必须在静态版本(快照)中提供:

example.com?_escaped_fragment_=about

_escaped_fragment_部分取代#!

你可以read all about it here