如果一个在进行SEO优化的站点,url中却有#号,那么这就是一个悲伤的故事了,看完这篇文章你应该会跺脚!
包含#的url是什么
如果一条url链接中包含#符号,那么这条url就是一个 Fragment URL。链接#后的内容是指定的在当前页面的一个位置。常见的情况如页面设置了锚点,#则可以用来定位锚点的位置。
为了帮助大家更好的理解就给大家举个栗子吧:
假设潘某人SEO站点的首页地址如下
https://www.chateach.com
假设在页面底部添加一个叫“panmourenseo”的锚点。
<div id="panmourenseo">锚点的内容div>
如果这个时候页面很长,想要快速跳到这个锚点内容的位置,只需要在页面显著的位置添加一条超链接,链接的地址为当前url地址加#加锚点名称如下。
https://www.chateach.com#panmourenseo
当你点击这条链接的时候你会发现页面不会跳转到一个新的页面,而是直接在当前页面滚动定位到了锚点所在的位置。
带#的url视为同一条链接
Http请求不包括#后面的内容,也就是说不管你在#后面加任何东西,进行常规方式访问的时候,浏览器向服务器请求的地址只有#号之前的内容。
同样的对于搜索引擎,也会忽略#号之后的参数。但是如果站点的路由是通过#号后面的参数来实现的,比如一些前端前端框架会有这种情况,所以站点们一定要注意,绝对不可以通过#号后参数来实现页面的加载。
#号让SEO成为徒劳
如果说站点内容通过#后参数来进行路由跳转,那么所有这类链接搜索引擎永远都不会抓取,只能收录不带#号的url。
#号的妙用
凡事都有双面性,基于#号内容不被抓取的特性,用好了对于SEO同样可以带来帮助。如果一些我们不想被抓取的内容,又希望给用户看到,就可以通过url#加参数的形式,让用户可以浏览到而不被搜索引擎抓取。
或者说一个着陆页,有很多推广渠道,我们就可以通过在着陆页url后面添加#号加统计标记来实现不同推广渠道数据的统计,对于搜索引擎这些地址都会视为同一个,就不会导致内容重复,权重分散的问题。
总之,带#的url绝对不可以承载需要被收录的内容,但是可以承载任何我们需要显示但不希望被搜索引擎抓取的内容。如果你的站点有大量优质内容的url带#参数来实现访问,那么恭喜你找到了造成站点收录低的原因之一。