June 24, 2007
老调重谈:关于WordPress重复内容处理的方法
前些时候写过一篇《关于WordPress重复内容处理插件的问题》,我已经提过Ozh先生的方法:除了单篇文章页面本身,其他页面显示文章的时候都不要全文输出,而代之以摘要。原因也已经讲清楚了,让搜索引擎对Archives页面和Tag页面进行索引对SEO是有好处的,如果只是为了消除重复内容而将除单篇文章外的所有页面都设置“noindex”元标签,这会大大减少搜索引擎收录的数量,虽然不大可能再出现被搜索引擎降权的处罚,但此举无异于自身降权。
为了实现除单篇文章(single)外的所有页面都以摘要的方法显示,我试了两种方法:
一、使用 the_excerpt() 函数。除单篇文章外都使用此函数输出摘要,但效果很不理想,WordPress对非西方语系摘要输出支持不够好,输出内容名为摘要,实为无格式的全文。
二、在每篇文章中手动添加 more 标签(代码显示不正常,奇怪了)。这种输出摘要的方法很灵活,可以由作者自行决定从哪里截断文章,并且不破坏原文的格式,图片、超级链接等都很好地保留在摘要中。不过缺点也很明显,如果不是从最初就开始使用more标签,那么接下来几百篇或更多文章,每篇都得修改,我想应该没几个人有这种愚公移山的精神了吧;再者,自从WordPress升级到2.1版后,如果在原文中使用了more标签,那么在RSS中也会以摘要的形式输出,这才是最让人郁闷的,后面给出解决方法。
看来只能用第一种方法的思路了,找来找去就找到了这个东东:中文WordPress工具箱(桑葚),其他功能倒无所谓,我只在乎它拥有的“中文摘要输出”功能。不过在看过Yskin先生的这篇文章后,决定使用他写的 wp-CJK-excerpt 这个小插件,不仅与“工具箱”一样可以输出中文摘要,而且算法更先进一些,不以固定的字数而用段落来截断文章,还带个字数统计功能,具体效果看我的首页,推荐大家使用。
到这里就算是圆满解决了摘要输出这个功能,重复内容的问题过一段时间后相信可以看到积极的效果,“补充材料”应该会大大减少。
至于刚才提到的使用more标签后,RSS无法继续以全文输出,Yskin先生也给出了解决方法,又是一个小小的插件:WordPress 2.1 feed Tuneup,在最新的WordPress 2.2.1下也可正常使用,安装激活后就可以继续在RSS中输出全文啦。
还有一个问题,如果你仍然想试试添加元标签以阻止搜索引擎对存档页面收录的方法,可以在head标签之间加入以下代码,只保证搜索引擎收录Page页面(例如留言本、相册这样的页面,不是指一般的页面,具体差别可以参考WordPress Codex)和单篇文章:
<meta name="robots" content="index, follow" />
<?php } else { ?>
<meta name="robots" content="noindex, follow" />
<?php } ?>
不过这里却没有把首页添加进来,这个问题比较搞笑,如果在if判断的时候把is_home()加进来,首页上的元标签的确是“index”,但同时像第2页、第3页这样的分页的元标签也是“index”,这就有点背离我们的初衷了,过足够长的时间后,搜索引擎中搜索出来的结果除了我们需要的首页、单篇文章和页面外,还有一堆不想要的分页,因为从WordPress 2.1开始,这些分页统统跟首页同级别了,都is_home。(详情)如果不添加is_home(),收录你的网站却不收录首页是不是更说不过去?
有两个方法可以解决这个烦人的问题(感觉WordPress团队在WP2.1版本中经常耍小聪明 XD):
一、使用一个独立的首页,只在这个页面中添加“index”,不使用is_home()。具体方法可以参考E-Space的打造CMS教程。
二、使用is_frontpage这个插件,这样就可以准确地取到首页,那一页。
好了,到这里就介绍完了两种不同的对重复内容处理的方法。写下来当作一个总结吧,如果能对大家有那么一点点帮助就更好了。 ![]()

Angelived at 16:49 Jun 24, 2007 ₪
不错的解决方法,不过我这个人比较懒,就不打算用这个方法了,呵呵
stevenlichen at 20:06 Jun 24, 2007 ₪
:em16: 都是宝啊