9月份,google站长博客发表了一篇讨论动态网址还是静态网址的帖子,却颠覆了这个说法。在这篇帖子里,google明确建议不要将动态url静态化,而是保留那种长长的,带问号参数的动态url。google黑板报和中文网站管理员博客都做了翻译和转载,大家可以查看。
从留言和我看到的博客来看,有不少人还真觉得有道理,准备按照google说的做了。
这是比较少见的,我十分不以为然的,google给的seo建议。
google的帖子有几个要点。
一是google完全有能力抓取动态网址,多少个问号也不是问题。这一点基本靠谱。
第二,动态网址更有助于google蜘蛛读懂url含义,并进行鉴别,因为网址中的参数有提示性。比如google举了这个例子:
www.example.com/article/bin/answer.foo?language=en&answer=3&sid=98971298178906&query=url
url里的参数都有助于google理解url及网页内容。比如language后面跟的参数是提示语言,answer后面跟的是文章编号,sid后面的肯定是session id。其他常用的包括color后面跟的参数指的是颜色,size后面跟的参数是尺寸等。有了这些参数的帮助,google更容易理解网页。
而将网址静态化后,这些参数的意义通常就变得不明显了。比如这个url:
www.example.com/shoes/red/7/12/men/index.html
就可能使google不知道哪个是产品序列号,哪个是尺寸等。
第三,网址静态化很容易弄错,那就更得不偿失了。比如通常动态网址的参数调换顺序,所得到的页面其实是相同的,比如这两个网址很可能就是同一个页面:
www.example.com/article/bin/answer.foo?language=en&answer=3
www.example.com/article/bin/answer.foo?answer=3&language=en
保留动态网址,google还比较容易明白这是一样的网页。而经过静态化后,这样两个网址google就不容易判断是不是同一个页面,从而可能引起复制内容:
www.example.com/shoes/men/7/red/index.html
www.example.com/shoes/red/7/men/index.html
再一个容易搞错的是session id,也可能被静态化进url:
www.example.com/article/bin/answer.foo/en/3/98971298178906/url
这样网站将产生大量url不同,但其实内容相同的页面。
所以,google建议不要静态化url。
但是我还是建议要静态化。原因是:
首先,google给的建议是从google自己出发,而没有考虑其他搜索引擎。google抓取动态网址没问题,并不意味着雅虎,百度,微软等等就都没问题。尤其是中文网站,google不是老大。
第二,google所说静态化的坏处,是基于静态化做得不正确的假设上。问题是要做静态化就得做正确,假设会做错是没有什么道理的。有几个人会静态化网址时还把session id放进去呢?
第三,google的建议是典型的有利于自己,而不利于用户。带有问号参数的url可能有助于google读懂内容,但是显然非常不利于用户在一撇之下理解网站结构及大致内容。看看这两个网址哪个更清晰,更容易读懂,更有可能被点击呢?
www.example.com/product/bin/answer.foo?language=en&productid=3&sid=98971298178906&cat=6198&&query=url
www.example.com/product/men/shoes/index.html
显然是第二个。
而且长的动态网址,也不利于记忆,不利于在邮件、社会化网站等地方抄给别人。
总之,虽然google这么明确的建议保留动态网址,我还是建议大家正相反,尽量将url静态化。