很多初学者在看一些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或做成静态页面。