我正在研究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。
答案 0 :(得分:0)
Google可以抓取并正确索引单页应用程序,但您需要支持其语法:
例如,生成的动态内容:
example.com/#!about
必须在静态版本(快照)中提供:
example.com?_escaped_fragment_=about
_escaped_fragment_
部分取代#!
。