导读:URL中#号(井号)的作用,是一个锚点的标志位,这样的url打开之后,会将访问者的视线定位在指定位置上,令访问者直接看到网页中间的一段内容。链接URL上使用#号对SEO有效,有权重传递。它的有效链接是#前面的一段url。
目前搜索引擎对带#号URL的收录策略是:去掉#号后面的内容,仅对#号前面的url进行建库。案例:
https://www.testtest.com/post1/#type=fashion
说明:搜索引擎比如谷歌仅对去掉“#type=fashion”后的https://www.testtest.com/post1/进行抓取。
一、#在HTML页面中的含义
#代表网页中的一个位置。在它右边的字符内容,就是该位置的标识符。比如,http://www.testtest.com/aaa.html#download就代表网页aaa.html的download位置。浏览器读取这个URL后,会自动将download位置滚动至可视区域。
为网页位置指定标识符,有两个方法。第一是使用锚点,比如<a name="download"></a>,第二是使用id属性,比如<div id="download">。
二、HTTP请求排除#
#是用来指导浏览器动作的,对服务器端完全无用。所以,HTTP请求中不包括#。
比如,访问下面的网址,http://www.testtest.com/aaa.html#download,浏览器实际发出的请求是这样的:
GET /aaa.html HTTP/1.1Host: www.testtest.com
三、#后面的字符内容
在第一个#后面出现的任何字符,都会被浏览器读取为位置标识符。也就是说,这些字符都不会被发送到服务器端。
例如,下面URL的原本是指定一个颜色值:http://www.testtest.com/?color=#fff,但是,浏览器实际发出的请求是:
GET /?color= HTTP/1.1Host: www.testtest.com
四、改变#后面字符不触发网页重载
仅仅只改变#后的内容部分,浏览器只会滚动到相应位置,不会重新加载网页。
比如,从http://www.testtest.com/aaa.html#I am here 改成http://www.testtest.com/aaa.html#I am there,浏览器不会重新向服务器请求aaa.html。
五、改变#后面内容会改变浏览器的访问历史
当改变#后的部分时,每次改动都会在浏览器的访问历史中增加一个记录,使用"后退"按钮,就可以回到上一个位置。这对于ajax应用程序特别有用,可以用不同的#值,代表不同的访问状态,接着向用户给出可以访问某个状态的链接。需要注意的是,以上规则对IE 6和IE 7不成立,它们不会因为#的改变而增加历史记录。
六、Google谷歌搜索引擎抓取#的机制
一般情况下,谷歌的爬虫蜘蛛忽视URL的#部分。
但是,谷歌还规定,如果你希望Ajax生成的内容被浏览引擎读取,那么URL中可以使用"#!",谷歌搜索引擎会自动将其后面的字符内容转成查询字符串_escaped_fragment_的值。
比如,Google爬虫发现新版twitter的URL:http://twitter.com/#!/username
它会自动抓取另一个URL:http://twitter.com/?_escaped_fragment_=/username
利用这种机制,Google就可以索引动态的网页内容了。
以上就是井号#在对于一个链接地址的seo是否有效和影响分析。欢迎报错探讨!!
联系客服