一般来说,url当中的#号是一个锚点的标志位,这样的url打开之后会将访问者的视线定位在指定位置上,令访问者直接看到网页中间的一段内容。自从推特流行开始,#号被赋予了新的意义——话题。很多站长直接在#号后面加参数且参数是有效的,即#号去掉与不去掉,打开的网页完全不同。
目前百度对带#号URL的收录策略是:去掉#号后面的内容,仅对#号前面的url进行建库。这样就导致一些站长认为有意义有价值的页面,百度却无法收录,继而影响新链接的抓取和整体SEO效果。
所以站长在建站的时候对#号的使用一定要慎谨,百度站长平台不建议在有独特内容价值的url上使用#号。下面我们来看两个case:
case1:
y.qq.com/#type=toplist&p=top_2
说明:
百度仅对去掉“#type=toplist&p=top_2”后的y.qq.com进行抓取,导致爬虫获取到的页面与浏览器打开的页面不一致;优质页面无法收录,而且无法follow到该网页上的新链接。
case2:
lvyou.baidu.com/changbaishan#/scene-remark-anchor
说明:
虽然该url有着极优质的点评内容、用户可以通过访问该地址获得大量有用信息,但被百度建库的lvyou.baidu.com/changbaishanh并没有针对景点评论相关关键词进行优化,导致其很难在“长白山怎么样”之类的长尾query下有好的表现。除此之外,该页面所有点评内容都是通过JS异步加载实现的,导致百度根本不知道该页面上有这么优质的原创内容,这些内容自然也无法通过搜索引擎获得流量。
这个# 蕞常见的是VUE开发的网站,这是由于路由模式是h ash模式,如果不想要#,可以使用路由的history模式,这种模式充分利用了history.pushState API来完成URL的跳转而不需要重新加载页面,使用这种模式之后,就没有#了,而是可以像使用正常的url进行访问了。
如果改了路由后,复制链接到浏览器地址会报404错误,想解决这个问题,具体配置方法可查阅配置文档。
总结,不管开发语言是什么,url中的#一定要处理,这将会有利于SEO的优化,不处理带有#的页面就会一直没有收录,更别想有排名。