在我的网站各个地址中,难免出现一些带#的URL,一般是通过点击某个链接,跳转到网页的某个位置,实现信息内容的快速定位。本站使用的文章内目录就是这样做的。但是,这种带#的URL搜索引擎会被收录吗?
1、什么是哈希值?
在阮一峰的博客中有一篇文章可以很好的解释哈希值,#值不是http请求,而是一个浏览器动作。通过#,可以快速定位到网页中的某个具体位置。例如,就会快速定位到id="comment-121"或这个位置。
2、搜索引擎会不会抓取带#号(哈希值)的URL
答案是一般不会。搜索引擎抓取页面首先要遵循http协议,可是#不是协议内的内容。而实际上也是这样,我们没有见过搜索引擎的搜索结果中,哪一条记录可以快速定位到网页内的某个位置的。因此,希望通过在网站内外添加带#的锚链接来让搜索引擎第一次访问时快速定位是不现实的。当然,搜索引擎蜘蛛为了模拟真实用户,在进入网站之后,会通过一些技术实现模拟鼠标点击的效果,这个时候,页面的锚链接还是起作用,但任何链接在搜索结果中时,都不会带#。
3、URL 中的 #! 有什么作用?
这是一个违反2中的特例,谷歌会抓取带有#!的URL。Google规定,如果你希望Ajax生成的内容被浏览引擎读取,那么URL中可以使用"#!"(这种URL在一般页面一般不会产生定位效果),Google会自动将其后面的内容转成查询字符串_escaped_fragment_的值。例如/#!/username等效于/?_escaped_fragment_=/username,而带?的URL是会被抓取的,所以#!的URL会被谷歌收录。
4、搜索引擎会不会抓取带#号(哈希值)的URL给我们的启示
一、不要试图用robots.txt屏蔽#的网址。我之前翻过一个错误,即在嗖录网的robots.txt中加入了disallow:/*#*规则,以试图屏蔽这些带#的URL被抓取。但实际上,这个做法是错误的,首先#在robots.txt是注释符号,它后面的内容会被注释掉,所以这条规则变成了disallow:/*,即阻止收录本站所有页面,幸好我在今早发现,并马上进行了修改。其次,搜索引擎不会抓取带#的URL,因此没有必要加一条这样的规则。
二、可以利用#和ajax结合来隐藏不想被抓取的内容。在我们的一些网页中,可能有些内容是我们不想直接告诉搜索引擎的,或者一些隐私不希望被抓取,因此我们可以采用#来控制这些信息的显示。例如我们增加一个按钮,当URL中带#show-info-123时,显示123的个人信息,而不带时不显示。而对于搜索引擎来说,会自动忽略带#的URL,因此123的个人信息不会被抓取。
文章来自:嗖录网;原文地址: 欢迎大家来嗖录网交流SEO经验与技术。
申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!