樂思蜀的博客,包括但不限于SEO&SEM研究、应用中的心得体会,互联网、搜索引擎观察与思考。

Google解说动态、静态、伪静态网址

2008年10月16日 by 樂思蜀

近日,Google搜索质量组发布文章,详细解说了对于Google搜索引擎,动态、静态、伪静态网址的区别及利与弊(原文/译文)。

Google发布的文章,可能由于翻译过来的原因,加之诸多问题不便言明,感觉一向都很含糊,樂思蜀简明的引用原文如下。

动态、静态、伪静态

  • 动态网址:内容存于数据库中,根据要求显示内容,URL中以 ? # & 显示不同的参数,如:news.php?lang=cn&class=1&id=2
  • 静态网址:纯静态HTML文档,能使用 filetype:htm 查询到的网页。
  • 伪静态网址:使用 Rewrite 将动态网址进行重写,使动态网址看起来像静态网址。

动态、静态、伪静态之间的利与弊(新)

Google此文从Google新的算法、机制出发,解说了三者之间的利与弊,解释了一些错误的认识。

动态网址

首先,动态网址目前对于Google来说,“不能被抓取”的说法是错误的,Google能够很好的处理动态网址并顺利抓取;其次“参数不能超过3个”的说法也不正确,Google能够抓取参数超过3个的动态网址,不过,为了避免URL太长应尽量减少参数。

其次,动态网址有其一定的优势,以上面所说的 news.php?lang=cn&class=1&id=2 为例,网址中的参数准确的告诉Google,此URL内容语言为cn、隶属于分类1、内容ID为2,更便于Google对内容的识别处理。

最后,动态网址应尽量精简,特别是会话标识(sid)和查询(query)参数,容易造成大量相同页面。

静态网址

首先,静态网址具有的绝对优势是其明晰,/product/nokia/n95.html和/about.html可以很容易被理解,从而在搜索结果中可能点击量相对较高。

其次,静态网址未必就是最好的网址形式,上述动态网址中说到,动态网址能够告诉Google一些可以识别的参数,而静态网址如果文档布置不够恰当(如:过于扁平化,将HTML文档全放在根目录下)及其他因素,反而不如静态网址为Google提供的参考信息丰富。

最后,樂思蜀觉得Google此文中是否有其隐藏含义?“更新此种类型网址的页面会比较耗费时间,尤其是当信息量增长很快时,因为每一个单独的页面都必须更改编译代码。”虽然所说的是网站,但在Google系统中是否同样存在这样的问题呢?

伪静态网址

首先,伪静态网址不能让动态网址“静态化”,伪静态仅仅是对动态网址的一个重写,Google不会认为伪静态就是HTML文档。

其次,伪静态可取,但应把重心放在去除冗余参数、规范URL、尽可能的避免重复页上。

最后,伪静态有很大潜大危险,最好在对网站系统、网站结构、内容分布、参数意义熟悉的情况下使用。

在写伪静态规则时,应保留有价值的参数,不要将有价值的参数全部精简掉,如前面例子中的 news.php?lang=cn&class=1&id=2 最好重写为 news-cn-class1-id2.html,而不是过份精简重写为 news-2.html。

再就是伪静态中一定不能包含会话标识(sid)和查询(query)参数,/product.asp?sid=98971298178906&id=1234 这样的动态网址,其中的sid本来Google能够识别并屏蔽,但如果重写为 /product/98971298178906/1234,Google不但无法识别,还在整站中造成无限重复页面(每个会话都会产生一个新的会话ID)。

上面就是Google发布文章内容的简述,文中将动态、静态、伪静态解说的很清楚,有些观点甚至彻底颠覆了之前的认识。建议站长、SEOer多了解搜索引擎最新动态,公布的一些文档,并从中获取已说明的和未明确说明的信息,善加利用。

网站结构深度的正确理解

2008年03月09日 by 樂思蜀

由于种种因素,目前国内SEO资料趋于“老龄化”,很多已经过时的、就目前来说已经不正确的理论,让初学者产生错误的理解。

比如Zac前几天在SEO每天一贴中写道,Google其实已经不跳舞了,但很多文章中还在大说Gooogle Dance。

樂思蜀最近在交流中发现,很多朋友对网站结构深度的理解是不正确的,或已经过时的。

早期由于技术原因,搜索引擎会避免索引多级物理目录下的网页,甚至目录级数会影响排名。随着搜索技术完善,目前这种情况已经不存在了,一个网站中,“/1/2/3/4/5/6/7/8/9/0/a.html” 这样物理目录的网页,如果在首页有它的链接,搜索引擎索引、排名,与根目录下的网页没有任何区别。

网站结构深度取决于链接策略,直观的理解就是到达点击次数。即从网站首页开始,到达点击次数越少,结构深度就越浅;反之,需要点击多次才能到达的,结构深度就深。

另据有关文章称,搜索引擎对有条理、有特征的URL结构比较喜欢,如WordPress常见的“/年/月/日/标题/”结构。

这有待确认,但我觉得不是没有可能。

动态URL的问题与优化

2008年01月08日 by 樂思蜀

很多初学者在看一些SEO教程时可能经常见到,优化就要将网站URL静态化,甚至将这一点列入非常重要的行列。个人不赞成此观点,选择动态URL还是静态页面,只要根据网站需要就可以了。

为什么很多SEOer强调使用静态页面?

早期由于搜索引擎Spider的不完善,网站程序不合理,或部分人故意造成一种蜘蛛陷阱(spider traps),导致Spider爬行时进入一个死循环。搜索引擎为避开这种死循环,减少对动态URL的读取,特别是带“?”符号的URL。

随着搜索引擎的完善,这种现象目前已经基本得以解决,Spider已经能够正常并顺利的读取动态URL地址,以及带“?”符号的URL。但是,目前对带过多环境变量(query string)的URL地址(如new.php?a=1&b=2&c=3&d=4……)仍不够理想(据相关资料称,Spider基本不读取带3个以上的环境变量的URL)。

如果动态URL与静态页面存在差别,差别在哪里?

樂思蜀认为,就目前搜索引擎技术而言,如果动态URL与静态存在差别,这种差别主要表现在下面两个方面:

1、Spider爬行效率:如上所说,多重环境变量的URL;Cookie数据导致访问页面的变化;给予不同的访问者Session ID等。这些因素会导致Sipider爬行效率较低,将制约着动态URL在搜索引擎中的表现。

2、页面信任问题:这个问题目前还没有一家搜索引擎公开表示,对网页有信任值。但通过本人的实验及参考相关资料,静态页面在搜索引擎中,同等条件下一般优于动态URL。

静态页面在搜索引擎中优势有多大?

对于搜索引擎而言,静态页面还是优于动态URL的,但优势能有多大?樂思蜀认为,差距很小,如果我们再把握好站内链接策略,并对URL进行适当的优化处理,这种差距会极小。

我的SEO论坛(www.seobbs.net)一直使用的动态URL,而且URL并没有做太多的优化处理,从2005年开站至今,SEO一词基本在前1~2位之间。

动态URL的静态化:伪静态

动态URL在网站目录中并不存在具体的文件,而是根据用户请求,从数据库中返回请求的结果。我们可以把这个过程模拟成静态页面或目录,就是常见的“伪静态”。

目前主流的很多程序都支持伪静态,我们也可以根据需要,对程序进行DIY,再对网站环境进行相应设置。Apache下mod_rewrite的重写模块就能很轻松的实现,Windows环境下也有rewrite组件。网上关于这方面的教程很多,大家可以搜索一下,查看相关的资料来实现。

动态URL的站内优化策略

如何让动态URL表现更好,樂思蜀从站内角度提出下面3个要点:

1、导航很重要:完善的站内导航,有利于Spider高效率的爬行。整站尽可能做到:从首页出发,较重要的位置,不超过3次点击就能到达;最重要的位置,应该在首页出现相应的链接;必要时,可以单独制作一个静态导航页。

2、制作网站地图:首先网站内应该有一个网站地图页面,将常用位置在这个页面中做上链接,用户可以最快的了解网站结构,搜索引擎Spider可以快速高效的对网站爬行;其次XML格式的网站地图目前已经不仅适用于Google,应尽可能的保持XML地图更新;最后,建议制作一份URL列表(urllist.html和urllist.txt),对网站是有益而无害的。

3、URL统一、规范:同一URL出现多个版本(如read.php?id=1和read.php?id=1&page=1),同一位置出现多个URL形式(如list.php?companyname=xxx和list.php?companyid=123),及大小写问题等都可能导致在搜索引擎中出现相似页面,从而影响网站在搜索引擎中的表现。

总之,个人认为动态URL不一定比静态页面差,只要优化得当,在搜索引擎中同样有好的表现。而且很多只能或最好用动态程序的时候(如论坛、订单系统等交互性很强的站点),没必要刻意要求生成HTML,或做成静态页面。

用.htaccess实现网址规范化

2007年11月20日 by 樂思蜀

网址规范化在SEO中是一个比较重要的环节,同时存在不同的网址版本,不但可能造成复制,还不能正确的集中权重。

目前大多数网站,绑定域名都有带WWW和不带两个版本,甚至很多网站同时绑定多个域名。经过处理(跳转、CNAME……),对于访问者来说可能没有任何影响,看到的都是同样的内容;但对于搜索引擎,就无法确定哪一个网址是真正的主页。

可控因素,网站内容链接应该保持同一个版本,比如整站中,返回首页的地址为固定的一个版本。但还有一个不可控的因素,就是别人链到你的网站,所使用的网址。很多自发链接或交换链接时,别人可能会省略掉WWW,或采用绑定的另一域名。

外界因素不可控,我们可以从网站内部来控制。利用Apache的.htaccess,使用301重定向,规范网址。

新建一个空文件,文件名.htaccess,填入重定向规则后,上传到网站根目录。

用301将不带WWW的域名重定向

rewriteEngine on
rewriteCond %{http_host} ^lesishu.com [NC]
rewriteRule ^(.*)$ http://www.lesishu.com/$1 [R=301,L]

用301将绑定的其他域名重定向到主域名

RewriteEngine on
RewriteCond %{HTTP_HOST} ^其他域名.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.其他域名.com$
RewriteRule ^(.*)$ http://www.主域名.com/$1 [R=301,L]

当然,也可以再扩展一下,将index.html、index.php等也重定向一下:

RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://www.lesishu.com/ [R=301,L]

可以用这个免费工具检查一下转向的效果:

http://www.internetofficer.com/seo-tool/redirect-check/