网站地图    收藏   

主页 > 前端 > 网站SEO >

搜索引擎会不会抓取带#号(哈希值)的URL - 搜索优

来源:自学PHP网    时间:2015-04-15 10:59 作者: 阅读:

[导读] 在我的网站各个地址中,难免出现一些带#的URL,一般是通过点击某个链接,跳转到网页的某个位置,实现信息内容的快速定位。本站使用的文章内目录就是这样做的。但是,这种带#的...

 

  在我的网站各个地址中,难免出现一些带#的URL,一般是通过点击某个链接,跳转到网页的某个位置,实现信息内容的快速定位。本站使用的文章内目录就是这样做的。但是,这种带#的URL搜索引擎会被收录吗?

  1、什么是哈希值?

  在阮一峰的博客中有一篇文章可以很好的解释哈希值,#值不是http请求,而是一个浏览器动作。通过#,可以快速定位到网页中的某个具体位置。例如http://www.souluseo.com/post/122.html#comment-121,就会快速定位到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的个人信息不会被抓取。

  文章来自:嗖录网;原文地址:http://www.souluseo.com/search-engine-dont-catch-hash-url/ 欢迎大家来嗖录网交流SEO经验与技术。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论