URL静态化还是不静态化?

数据库驱动的网站需要将URL静态化,一直以来都是SEO最基本的要求,可以算是个常识性的东西。现在恐怕也没有不是数据库驱动的网站了吧。

近几年SEO行业一致认为,URL中带2-3个问号不是问题,搜索引擎通常都能收录,尤其是权重高点的域名,更多几个问号也不是问题。但无论如何一般还是建议URL静态化。

2008年9月份,Google站长博客发表了一篇讨论动态网址还是静态网址的帖子,却颠覆了这个说法。在这篇帖子里,Google明确建议不要将动态URL静态化,而是保留那种长长的,带问号参数的动态URL。Google黑板报和中文网站管理员博客都做了翻译和转载,大家可以查看。

从留言和我看到的博客来看,有不少人还真觉得有道理,准备按照Google说的做了。

这是比较少见的,我十分不以为然的,Google给的SEO建议。

Google的帖子有几个要点。

一是Google完全有能力抓取动态网址,多少个问号也不是问题。这一点基本靠谱。但如果URL中出现个十几二十个问号和参数呢?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不是老大。实际上,百度直到现在,2021年,对多个问号的URL还是不太愿意抓取的。

第二,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静态化。

------首次发布日期: 2008年12月9日

作者: Zac
版权属于: SEO每天一贴
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。



66 条评论 “URL静态化还是不静态化?

  1. 静态化不只是为了搜索引擎,还可以减轻服务器的压力,如果在线人数比较多的话优势比较明显,视情况而定,也不能一概而论吧

  2. 看来看待问题的时候需要辨证的观点,GOOGLE说的不一定全是好的,非常赞同ZAC的观点,因为无论是从链接结构和长度来说,静态化的URL应该比动态化的URL更容易理解,而且也更容易记忆,GOOGLE不是一直宣称一切以用户为主,这次改行道而为之呢?

  3. 对于参数短的,比如www.example.com?show.php?id=123和 http://www.example.com/show/3 来说,如果仅仅是伪静态化,我觉的对于se来说,区别不大;伪静态化还会造成文件(如图片)路径的困惑。
    除非真正静态化,但真正静态化后,互动性的效果就差;
    比如要改一些小地方 就要重新生成,也是一个弊端。

  4. 我觉得Google的意思是:如果静态化做的不好,还不如不要静态化;如果静态化能做好的话当然可以做
    Google举的那些静态化做的不好的例子应该不是凭空捏造的,而是实际碰到的例子,世界上那么多站,显然不是每个人都知道怎么静态化才是正确的 :)

  5. 同意zac的观点。静态化的时候可以加一些和页面内容想吻合的关键字进去,也方便用户记住页面

  6. 支持真实静态化,反对伪静态化
    有一点是肯定的:站在用户的角度去做网站。
    不管搜索引擎有多牛,它最终还会围着用户转。

  7. 我觉得,程序员在开发网站时,尽量少在网址中带参数这才是正道,如果参数不多的话,比如只有一两个,做不做静态化,对于seo的效果来说,可能都差不多。

  8. URL静态化是在建站时基础,不过我个人认为,如果网站在建站时没有静态化,而目前动态的路径又非常简单,如:view.asp?id=152,这种特别简单的动态就无需要静态化了,因为这种路径也是很清晰的,各个搜索引擎收录也是没有问题的。

  9. 谢谢解惑,我以前一直觉得动态和静态其实没什么所谓,但是看了以后茅塞顿开,静态地址起码可以方便能看懂url的用户,也能方便copy传播。

  10. 对于大型网站页面多,你想静态化的话,坐起来估计要费事一些,有的程序可以自动生成伪静态地址,即使不能生成,照google的说法是在seo的时候就没必要太偏执于静态化。

    但是静态化url面向人的时候,可读性比较好,这一点zac说的我很赞成,我自己的网站实践是主要目录的引导页面是用伪静态url,而普通的内容页面有时候我就按照程序给出的地址,而且文章多,每一个文章你都要给它一个静态地址的话,要先规划好不同内容的不容目录结构,我有时候嫌累就不写了。

    程序在处理可读性差的数据时,依靠程序的自动识别模式,而人是不喜欢的,人喜欢理解分层的结构化url。

  11. Zac说得很对,我也不支持SEO动态化,一个长的,不知所谓的域名很容易让人感到是垃圾,所以还是静态化比较用户友好。

  12. 具体情况具体分析,综合用户、SE和站点维护者去考虑。
    另:你的大作还没出版吗?不会在新加坡也要买书号吧?

  13. 其实针对这一点,我觉得应该根据个人的网站来说明的。
    如果你的网站的流量从谷歌来的比较多,可以考虑下谷歌的建议。
    但是如果像我的网站,www.whshuma.com 百度来的流量多,我可能会采取 zac大哥的做法。而且我也正式这么做的。呵呵
    其实想我们电子商务的网站,这么做比较靠谱。呵呵

  14. 动态、伪静态、静态 在SEO、系统负载、交互等方面各有优势,要综合分析,不是简单的好或不好。看你的需求而定。确实如此的!

  15. 靠.搜索引擎连动态页面的URL都不认识还叫搜索引擎,你也太小看搜索引擎了吧!提取URL字符串是大部分程序员都能搞定的(正则表达式一行搞定),更不用说是搜索引擎了!

  16. 博主分析的很透彻,补充一点,如果是生成静态页面的纯静态还有个大家共识的好处就是数据库压力减小了,同样的性能就相当于增加了,呵呵

  17. 文章提到的可以链接到别的网站的瞄文字都无法链接到,而链接到内站的就可以,这样想进而了解相关内容都没办法

  18. 我个人认为并不是非要做URL静态化就一定好,要根据自己网站系统,服务器等原因 或者技术等实际情况选择适合自己的优化方案

留个言呗:

您的邮箱不会被显示在页面上。标有*的是必填项。