我们在很多案例中都能发现重复页面的问题。网站重复页面产生的原因分几种,但不管是哪一种,对于网站本身都是不利的。重复页面会造成站内竞争,既浪费搜索引擎资源,又不利于页面排名。所以,对于重复页面的处理,是我们优化网站过程中必须要首页解决和考虑到的问题。
一般的,两个或两个以上页面内容完全一致,但URL不同,我们可以说它们是纯粹的重复网页。重复页面的产生,大概可以分为以下几种情况:
1. 属性筛选顺序引起的重复页面:
这种情况多见于电商网站,英文站中尤为常见。用户在选购产品进行属性筛选的时候,由于前后选择属性的顺序不同,会导致页面内容重复。
例如:
选择条件顺序1:男鞋 >跑步鞋 > 李宁 URL:/m-paobu-lining.html
选择条件顺序2:男鞋 > 李宁 > 跑步鞋 URL:/m-lining-paobu.html
这样就会产生由于选择的顺序不同而引起重复页面的问题。
一般的,这类问题需要我们重写url规则。将所有属性的属性都固定好位置,这样,就算选择的顺序不一样,也不会造成url的差异。
2. 多个url引起的重复;
很多网站由于在规划的时候没有标准化,会导致同一个url会产生多种形式,例如:
www.example.com
example.com
www.example.com/
www.example.com/index.php
这种重复页面的处理,可以用301重定向,在服务器端对标准url进行定义。将不标准的url都301重定向至标准的url即可。
3.跟踪代码等引起的重复
很多网站会在url上做跟踪代码,以便于统计。这类带跟踪代码的url也会造成重复的页面,对主页面产生竞争危机。例如:
http://www.pandahallstock.com/special-offer.html?home=BN01_20120515
http://www.pandahallstock.com/b-12-bracelet-bangle-p1-s1843.html?showMode=2&sortIndex=4&home=BN03_20120515
针对类似这种情况,我们不能做301跳转,要不就没办法实现跟踪统计的功能了。一般的,我们可以采取以下几种方式来解决这个问题:
- URL中跟踪代码开头的?用#代替。搜索引擎在识别url的时候,遇到#就不往后读取了,所以带#的跟踪代码对于搜索引擎来说,就是一个正常的url. 但同时需要注意的是,#的出现也可能给统计带来障碍。所以,针对不同的网站,这个需要不同对待。
- 针对google,我们可以在非标准的页面(即重复页面)的meta head之间增加canonical属性,执行标准的url。
http://www.example.com/products
http://www.example.com/products?sessionid=123456
http://www.example.com/products?trackingid=feed
可以在head meta部分加入如下代码:
<link rel="canonical" href="http://www.example.com/products" />
后两个页面的内容会被搜索引擎认为是重复内容,就是告知搜索引擎把相关的搜索信号都传递到第一个网址。
- 可以在robots文件中定义不让搜索引擎抓取这些带跟踪代码的链接