SEO实战密码-4.8 URL静态化- 高飞网

4.8 URL静态化

2016-07-26 19:43:12.0

4.8.1 为什么静态化

    现在的网站绝大多数是数据库驱动的,页面由程序实时生成,而不是真的在服务器上有一个静态HTML文件存在。当用户访问一个网址时,程序根据URL的参数调用数据库,实时生成页面内容。因此动态页面相对应的URL原始状态主也是动态的,包含问号、等号及参数,如下面这种典型论坛的URL:

    http://www.domain.com/viewthread.php?tid=7037&extra=page=1

    搜索引擎在发展初期(其实也就是10年前到三四年前布局)一般不愿意爬行和收录动态URL,主要原因是可能陷入无限循环或收录重复内容,造成资源极大浪费。最典型的无限循环就是某些网站上出现的万年历,很多博客都按时间存档,一些宾馆、航班查询网站都经常出现万年历形式。

    搜索引擎蜘蛛碰到万年历,如果一直跟踪上面的链接,可以不停地点击下一月,下一年,无穷无尽陷入无限循环,每一个日期对应的页面内容也没什么区别。真实用户一眼就能看出这是个日历,但搜索引擎蜘蛛面对的只是一串代码,不一定能判断出其实这是个万年历。

    或者由于参数的位置颠倒,其实是一个页面,但搜索引擎会认为是两个url。或者url上带有时间缀。所以以前的搜索引擎对动态URL敬而远之,要想网站页面被充分收录,站长需要把URL转化为静态URL。

4.8.2 怎样静态化URL

    最常见的方法是使用服务器的URL重写模块,在LAMP服务器上一般使用mod_rewrite模块,Windows服务器也有功能相似的ISAPI Rewirte等模块,或者nginx的重写模块。如果是Java Web服务器,会有个urlrewritefilter的类库,都可以做静态化,如:

    http://www.domain.com/products.php?id=123

    静态化为:

    http://www.domain.com/products/123

    严格来说,这里所说的URL静态化,应该称为“伪静态化”,也就是说服务器上还是不存在相应的HTML文件,用户访问时还是动态生成页面,只不过通过URL重写技术使网址看起来像是静态的。也有CMS系统可以实现真正静态化,站长境添产品或文章后,系统会自动生成真实存在的静态的HTML文件。对搜索引擎来说,真正的静态与伪静态没有区别。

4.8.3 URL不需要静态化吗

    近两三年搜索引擎对动态URL的抓取有了很大进步。一般来说,URL中有两三个参数,对收录不会造成多大影响。权重高的域名,再多几个问题也不是问题。不过一般来说还是建议将URL静态化,既能提高用户体验,又能降低收录难度。

    2008年9月,Google站长博客发表了一篇讨论动态网址和静态网址的帖子,颠覆了这个SEO界的传统观念。在这篇帖子里,Google明确建议不要将动态URL静态化。

    Google的帖子有几个要点。

    (1)Google完全有能力抓取动态网址,多少个问题都不是问题
    (2)动态网址更有助于Google蜘蛛读懂URL含义并进行鉴别,因为网址中的参数有提示性。
    (3)URL静态化很容易弄错,那就更偿失了。

    但是目前还是建议尽量要静态URL,原因如下:

    (1)Google给的建议是从Google自己出发,没有考虑其他搜索引擎。Google抓取任何动态网址没问题,并不意味着百度、雅虎、必应、搜狗、搜搜等都没问题。
    (2)Google所说的静态化的弊端,基本上是基于静态化做得不正确的假设。问题是要做静态化就得做正确,假设会做错是没有什么道理的。
    (3)用户体验。带有参数的URL可能有助于Google读懂内容,但是显示非常不利于用户一瞥之下理解页面大致内容。


上一篇:4.7 nofollow的使用
下一篇:4.9 URL设计