相似页面
如果有一些非常相似的产品保存在多个URL地址,请考虑修改WEB应用程序,使得在每个页面上包含这些产品的不同排列。考虑一个产品有几种不同颜色的例子。产品的结果页面通常包括不同的图片,但是大部分是重复描述。业务逻辑可能认为这些不同产品有不同的SKU,但是仍可以在一个页面上显示它们,用下拉菜单选择不同的商品颜色/SKU,再添加到购物车中。
电子商务网站的购物车页面、登录页面以及其他类似页面,也不应该被索引,因为通常这样的页面中并没有有价值的内容。例如,对以下的购物车URL地址,就很容易看到重复内容是怎样产生的。
具有重复Meta标签或Title值的页面
有一种常见错误,就是把WEB网站的meta关键字、meta描述或者title值都设置为相同的默认值,这些都是对每个页面程序化进行的。Aaron Wall在他的网站优化(SEO)图书中这样说,“如果对整个站点中任何元素(页标题、mata关键词、mata描述)都复制成一样,那么即使做得再好它的机会也被浪费了,并且还可能损害在一些搜索引擎里获得索引或获得更好排名的能力。”如果时间和资源不允许创建唯一的meta标签,那么就应该干脆根本不创建它们,因为在每个页面上使用同样的值是肯定不利的。为网站中的每个页面取个完全相同的标题也是特别不利的。很多编程人员会犯这样的错误,因为它不太容易被注意到。
URL规范化
很多WEB站点由于URL地址标准化问题,会展现出细微的但有时候隐蔽的重复内容问题。这些问题中,常见的两个就是“URL地址标准化:www.edo2008.com 对于 edo2008.com”和“URL地址标准化:/index.php 对比 /”小节中所讲述的。
基于URL的会话ID
基于URL的会话管理引起的主要问题是,对搜索引擎而言,因为每次当搜索引擎蜘蛛遍历WEB站点时,它都会收到一个不同的会话ID,并因此而收到一组有相同内容的新URL地址。不用说,这会产生大量的相同内容。PHP能够使用一个查询字符串参数自动跟踪用户会话,这个特性被称为“trans_sid”。可以禁用这个特性,并只允许基于cookie的会话支持。
基于URL的会话在大型电子商务站点或在某些个人口统计网站中可能很重要,因为一小部分用户在共浏览器中禁用cookie。
为了关闭基于URL的会话ID,需要在.htaccess文件中添加这些行:
php_value session.use_only_cookies 1
php_value session.use_trans_sid 0
使用以下PHP代码可以达到同样效果:
<?PHP
@ini_set('session.use_only_cookies',1);
@init_set('session.use_trans_sid',0);
?>
其他导航链接参数
一般说来,URL地址中的参数,比如那些能指示用户是从哪个特定页面而来的参数,能产生大量重复内容。涵盖所有例子不可能,但考虑以下虚构的URL地址:
http://www.example.com/Some-Product.html?from_url=about-us.php
http://www.example.com/Some-Product.html?from_url=contact-us.php
根据有多少页面链接到那个产品,列表可以很长。在实际中,只要可能,使用基于会话或基于HTTP_REFERER的数据来跟踪这些的方法是明知的,即使它不是最完美的解决方案。