数据库驱动的网站需要将URL静态化,一直以来都是SEO最基本的要求,可以算是个常识性的东西。近几年SEOer一致认为,URL中带2-3个问号也不是问题,搜索引擎通常都能收录,尤其是权重高点的域名,更多几个问号也不是问题。但无论如何一般还是建议URL静态化。 从留言和我看到的博客来看,有不少人还真觉得有道理,准备按照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静态化。
|