数据库驱动的网站需要将URL静态化,一直以来都是SEO最基本的要求,可以算是个常识性的东西.
数据库驱动的网站需要将URL静态化,一直以来都是SEO最基本的要求,可以算是个常识性的东西。近几年SEOer一致认为,URL中带2-3个问号也不是问题,搜索引擎通常都能收录,尤其是权重高点的域名,更多几个问号也不是问题。但无论如何一般还是建议URL静态化。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静态化。