SEO优化之--权威链接标记(解决链接重复导致降权)

2016-07-07 15:01 来源:www.chinab4c.com 作者:ecshop专家



很久没有发帖了今天上来看到有人问到 canonical
说实在的还真不知道什么玩意儿 于是GG了一下
网站内容CP重复太多,镜像内容,以及采集站一直是搜索引擎和用户最大的忧虑。

重复内容有两种表现形式,一种是不同网站之间的重复,另外一种是同一个网站上不同URL的重复。比如http://beijing-soo.com.cn/read.php/6.htm和http://beijing-soo.com.cn/read.php?id=6两个URL不一样,但是内容一模一样。重复内容容易造成搜索引擎的惩罚,所以作为网站管理员和SEO人,需要考虑如何避免重复内容的产生。

最近,谷歌,雅虎和微软宣布了一项解决这个问题:一种新的方式使用HTML链接的因素。链接元素是用来指定一个两页之间的关系。它可用于指定的东西就像一个样式或简易信息聚合饲料的网页。

这是Google的官方通知,这是Yahoo的官方通知,这是微软的官方通知。

新的规范新的“权威链接标记”(Canonical Link Tag)标准在HTML中的表现形式如下:
<a rel="canonical" href="http://beijing-soo.com.cn/read.php/6.htm"/>
将此标记放到你认为任何可能有重复的页面,比如:

http://beijing-soo.com.cn/read.php/6.htm
http://beijing-soo.com.cn/read.php?id=6
http://beijing-soo.com.cn/read.php?id=8@id=6

如果这三个网页还有相同的重复的内容,那么将被搜索引擎识别,当搜索引擎发现这个它就不会把这几个混淆,而不至于把你网站降权了。


终于知道原因了 之前也有很多朋友提到 ecshop 中存在大量的重复链接 特别是分类
由于比较闲就尝试做了一下

方法如下
ps:常规测试正常 有待进一步测试

找到 lib_common.php
大约1767行
  1. if ($rewrite)
  2. {
  3. if ($rewrite == 2 && !empty($append))
  4. {
  5. $uri .= '-' . urlencode(preg_replace('/[\.|\/|\?|&|\+|\\\|\'|"|,]+/', '', $append));
  6. }

  7. $uri .= '.html';
  8. }
  9. if (($rewrite == 2) && (strpos(strtolower(EC_CHARSET), 'utf') !== 0))
  10. {
  11. $uri = urlencode($uri);
  12. }
  13. return $uri;
复制代码
修改为
  1. if ($rewrite)
  2. {
  3. if(count(explode('-',$uri))==2){
  4. $canonical='" rel="canonical';
  5. }
  6. if ($rewrite == 2 && !empty($append))
  7. {
  8. $uri .= '-' . urlencode(preg_replace('/[\.|\/|\?|&|\+|\\\|\'|"|,]+/', '', $append));
  9. }

  10. $uri .= '.html'.$canonical;
  11. }elseif(!strstr($uri,'&')){
  12. $uri .='" rel="canonical';
  13. }
  14. if (($rewrite == 2) && (strpos(strtolower(EC_CHARSET), 'utf') !== 0))
  15. {
  16. $uri = urlencode($uri);
  17. }
  18. return $uri;
复制代码

回答:
支持!!!!

顺带一提,百度的官方说法是它不支持这个标签。。。不过根据一些现象判断事实上多半还是支持的。

谢谢分享,EC加入静态后应该不会再有动态URL链接的出现吧?

是有许多重复链接。

谢谢 已使用

好东西呀。伪静态 和之前的动态地址 算是重复网页吗

不错,学习seo中

好东西,学习一下。

有人测试吗。 能不能用啊这个

才听说可以canonical 谢谢了

谢谢分享,ECSHOP确实对SE不太友好

使用之后对排名影响很大,我看很站的排名都掉了,还有些是被GG惩罚了.

楼主你的代码似乎有问题?在FEED里生成的URL变成了xxxx.html" rel="canonical</guid> 这种格式.

查看了一下GG网站管理员中心里关于canonical的介绍,里面提到的用法是:
-----------------------------------------------------------------------
如何指定规范网页?

要指定指向网页 http://www.example.com/product.php?item=swedish-fish 的规范链接,请按以下形式创建 <link> 元素:

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>
将上述链接复制到该网页所有非规范版本的 <head> 部分,如 http://www.example.com/product.p ... fish&sort=price。

如果您在 http://www.example.com/product.php?item=swedish-fish 和 https://www.example.com/product.php?item=swedish-fish 上都发布了内容,则可以指定该网页的规范版本。创建 <link> 元素:

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>
将上述链接添加到 https://www.example.comproduct.php?item=swedish-fish 的 <head> 部分。
--------------------------------------------------------------------------------------------
是要放在<head>部分,而不是你所说的这种用法,

求解~~~

这个的确不能使用。 用了以后 百度收录剧减。 最近一直找不到原因,发现就是这个问题。
修改以后,feed.php生成的链接全部都带goods.php?id=1263"%20rel="canonical&from=rss
请楼主再核实