小议:rel='external nofollow' 和external标签

提供及时全面的经典资源 nofollow标签是一两年前由Google领头新创的一个标签,目的是尽量减少垃圾链接对搜索引擎的影响。这个标签的意义是告诉搜索引擎这个链接不是经过作者自己编辑的,所以这个链接不是一个信任票。

这个标签通常是用在博客的评论或论坛帖子中,因为这些地方是最多垃圾链接出现的地方。现在主流的博客和论坛软件都自动在评论和帖子的链接中加上了这个标签。几乎所有wordpress博客和Z-blog,当然Yo2博客也在内。

新站点的推广少不了用这种方法,在一些权重比较高的、流量大的博客或论坛发表评论并留下签名链接是新站长的一惯做法。如此说来,这种做法似乎毫无作用了,因为没用nofollow标签的博客太少了。 这个博客也是新站,前段时间做小量的这类工作,看来成效确实不大,至少在谷歌网站管理员工具中的反向链接统计中没有反应出任何有效链接。

很多文章都说Google,Yahoo,MSN表示支持这个标签,唯独百度不支持,所以垃圾链接仍然被计算在内。 是不是真的如此文所说的一样,我们来做个测试。本文第一个链接名称直接用网址,因为百度的domain查询不支持文字链接。另外,刚好要测试的网址在各大搜索引擎中反向链接都几乎为0。

external就是指外部站点,我们要在新窗口中打开链接传统的通常做法是在链接后面加target="_blank",我们采用过渡型的 DOCTYPE(xhtml1- transitional. dtd) 时没有问题,但是当我们使用严格的DOCTYPE(xhtml1-strict.dtd)时,这个方法将通不过 W3C的校验,会出现如下错误提示:

div css xhtml xml Example Source Code Example Source Code
"there is no attribute target for this element(in this HTML version)"

原来在HTML4.01/XHTML1.0/XHTML1.1严格DOCTYPE下,target="_blank"、target="_self"等等语法都是无效的,为什么不允许使用target="_blank"呢?因为老外觉得不经过用户同意,没有明确提示就打开一个新窗口是不礼貌的。所以就通过 rel="external"来声明此链接是外部站点。至于如何在新窗口中打开,可以使用javascript实现:
复制内容到剪贴板 代码:function externallinks() {
  if (!document.getElementsByTagName) return;
  var anchors = document.getElementsByTagName("a");
  for (var i=0; i<anchors.length; i++) {  
    var anchor = anchors;
    if (anchor.getAttribute("href") &&  anchor.getAttribute("rel") == "external nofollow")      anchor.target = "_blank";  
    }
    }
  window.onload = externallinks

把上述代码保存成一个.js文件(比如external.js),然后通过外部联接方法调用:<script type="text/javascript" src="external.js"></script>