#锚点或URL hash及ajax如何适应搜索

顺着#的问题,我们来js,ajax的世界,在满世界都rich内容时,为了便页面看起来更酷,我们就会采用#
看看google是怎么解决的,我们如何来设计url
https://developers.google.com/webmasters/ajax-crawling/docs/getting-started
顺着这篇文件了解办法总是有的。
如果有一个www.example.com/index.html#key=value 这样的一个请求,
那我们看到的源代码就是什么,那搜索就看到是什么,比如用firefox查看源代码,里面并没有实时生成的内容,只有js
好吧,搜索引擎只能看到我们看到是什么,有点笨。
https://developers.google.com/webmasters/ajax-crawling/docs/images/crawlerserver2.png 为此,我们需要这么办:
一。让你的网站支持爬虫的认识格式。#进化为#! 后面有一个!
www.example.com/ajax.html#key=value变成www.example.com/ajax.html#!key=value
二。让服务器支持请求_escaped_fragment_
因为爬虫一旦遇到 #! 就会请求到 www.example.com/ajax.html?_escaped_fragment_=key=value,所以让服务器支持这个请求返回
http快照。 有一点说明,所有我们能看到的url不能有_escaped_fragment_,因为爬虫会忽略掉。
这是蛮怪异的,不能直接把东西a给爬虫,必须给东西b,这样爬虫就把东西b当作a了。
三,怎么解决没有hash fragments
例如,你的url是 www.example.com ,如何让爬虫知道里面的http快照呢。
办法就是在 meta定义一个

<meta name="fragment" content="!" />

这样爬虫就会自动去爬 www.example.com?_escaped_fragment_=
四,使用站点地图更新url
记住, url 是http://example.com/ajax.html#!key=value
而不能是 http://example.com/ajax.html?_escaped_fragment_=key=value 谷歌会忽略掉这样的链接的。
五。用Fetch as Googlebot 查看爬虫看到的内容