URL静态化与否

关于URL需不需要静态化,是一个比较模糊的概念。以前Google是建议将URL进行静态化处理,因为动态URL中还有很多的参数,可能产生很多重复内容,而且也不利于Google抓取。但是在去年Google又建议保留URL中的动态参数,不要进行静态化处理。原因是Google现在能够识别和抓取动态URL中的内容,如果将动态URL静态话的化,就使得Google不容易理解各个参数的意思。比如a.php?color=red&price=10&size=20这样的URL被静态化为a/red/10/20之后,参数的名词都被省略了,Google就很难理解这个URL了。

那么我们到底要不要进行URL静态化呢?

先举个例子吧。如http://www.jiadingqiang.com?p=123静态化之后为http://www.jiadingqiang.com/article/123.html。这两个URL对于Google来说基本是没有区别的。以前之所以要进行URL静态化,是因为当时Google还没有能力识别URL中的参数,但现在可以了,就说明这两个URL已经没有什么区别了。而且这两个URL都没有具体含义在里面,只是文章的ID。也就是说对于这样的URL静态化是没有意义的。

那么对于什么样的URL静态化与非静态化是有区别的呢?

  • 一,我认为是带有session ID的。比如a.php?color=red&sid=920897834,这样的URL静态化为a/red/920897834.html,使得Google不知道最后参数是session ID,从而收录了很多不同session ID的重复页面。
  • 二,我认为是前面讲过的多面导航问题。比如用户先选颜色,再选大小,再选价格产生的URL是a.php?color=red&size=20&price=10,与用户先选价格,再选大小,再选颜色产生的URL:a.php?price=10&size=20&color=red实际上是重复内容,Google可以根据这些参数将其中的重复内容识别。但是经过静态化之后的两个URL分别为 a/red/20/10.html和a/10/20/red.html,Google将无法知道这两个URL实际上是一个内容。

从以上两个方面来看,静态化确实存在问题。但非静态化也存在问题。

  • 首先是Google是有能力识别动态URL了,但其他的搜索引擎则不一定,比如百度,而我们又不能只做Google搜索引擎吧。
  • 其次是从用户角度来看,带有很长参数的URL是用户不友好的,也不容易记忆和转发。

也就是说静态化和非静态化都有一定缺点,这就要看你能否避开缺点,发扬优点了。我的建议是将URL静态化,但是不要将session ID静态化到URL中,而是采用cookie代替session。然后就是为每个URL都通过canonical属性指定一个唯一的版本,避免重复内容的产生。通过这两点,你就可以避开URL静态化的缺点,然后享受URL静态化带来的其他搜索引擎的流量以及用户的良好体验了。

贾定强微信

微信扫一下,或点击链接添加好友