SEO: 避免复杂的URL

2009-06-22
  • 2849
  • 11

Stephan Spencer 2006年1月

搜索引擎不能完全地索引动态网站(也就是基于数据库提供内容的网站)。

搜索引擎处理那些太过复杂的URL结构会产生很大的麻烦,包括有很多参数的URL(被很多“&”符号,“=”还有一些Session ID,用户ID和来源跟踪代码标记)。Google的高级工程师Matt Cutts在一次Search Engine Strategies会议时说,如果URL中的变量控制在一到两个就很安全,除非其中一个变量是以ID命名(或是类似于Session ID的变量),这样的情况就不行了。

过于复杂的URL不仅对那些想要将URL发送给朋友的人很不方便,对于那些想在自己网站上加入一个链接指向那个层级很深页面的人来说也不方便。同时这样的URL更会给搜索引擎爬虫带来困难,这些对搜索引擎不友好的动态URL可能会将搜索引擎带入“爬虫陷阱”。

“爬虫陷阱”的情况是指当搜索引擎爬虫根据链接爬行一个看起来与以前爬行的不同URL,尽管他们的内容是一致的。

设想如下的例子,一个搜索引擎爬虫来到一个网站,被指定了一个Session ID,然后这个ID被嵌入到以后所有在该网站中被爬行的页面。下一次,一个搜索引擎爬虫来到这个页面,得到另一个全新的session ID,因为您的网站服务器不能探测到这是同一个搜索引擎爬虫,而且它在几分钟以前来过。这就导致了同一个页面被索引了很多次,无论对于搜索引擎自身,或是对于搜索引擎的用户都是很坏的结果,因为这些都是重复的。

最坏的“爬虫陷阱”会使搜索引擎陷入一个无止境的多样URL,但却是同样的一些页面。每个搜索引擎对于URL中的参数都有自己的容忍度。解决方法是消除那些动态URL的元素,换句话说,移除所有URL中的问号,&,等号,cgi-bin,用户ID和Session ID,将所有页面变得让这些爬虫满意。

一个简介明快的URL不仅可以消除页面索引的潜在问题,而且作为奖励,您更可能获得一些外链指向深层级页面,因为URL看起来对用户友好,稳定,容易复制粘贴等。

最好的做法是将那些动态页面用搜索引擎友好的的URL替代。不要禁不住诱惑而走捷径,创建一个网站地图页面,包含所有指向这些对搜索引擎友好URL的链接。将剩余的链接完整无缺的留在那里。因为还没有修改好的URL不能提升那些有搜索引擎友好URL页面的链接获益。通过降低每个URL的多样性,您想将链接获益最大化。URL的多样性会削弱链接获益,因为不是所有的链接对为同一个页面“投票”。他们中的一些会分散到其它的版本的拥有不同URL的同一页面。

假设您有一个动态网站,现在由于URL的问题没有达到搜索引擎友好,但是您想要将其优化,那么这里有三种选择。

第一个选择是用URL重写服务器module来进行URL重写,比如mod_rewrite(运用于Apache)或ISAPI_Rewrite(运用于IIS服务器)。

第二种选择时重新编写您的电子商务平台,使其不同“query strings”传递信息,而是用“path info”。换句话说,您要重新编写脚本来寻找嵌入在目录名字或文件名字的变量,这种方法看起来要更加复杂一点。

第三种选择是运用第三方提供的代理服务器。

通常来说第一种方法是最受欢迎的,假设您拥有IT资源来执行,您的服务器也支持这样的URL重写技术。第二种方法适用于如下的情况-您不能做URL重写但是有编程资源同时可以进入电子商务平台的源代码。

如果由于某些原因上述两种方法都无法实现的话,您可以借助第三方的处理方式,由此来自动的将URL改写。这种方法尤其适用在“code freeze”(不允许任何改动在一部分或全部的变成代码)期间,例如假期。

您可能想知道Google新的网站地图项目会如何介入到这个问题中呢。现在这仍然是个不完全的解决方法,直到Google网站地图支持传递哪些URL变体指向同一个内容的能力。因为它不能将分散在不同版本的PageRank聚集。您可能有五种不同版本的产品页面被Google索引,而网站地图只会使问题恶化,因为它会产生第六个版本,而不是将这五个版本融为一个版本而获得更多的链接获益。

不论您使用哪种方法,将URL改写成搜索引擎友好的形式是值得的。