Loading...

关于WordPress重复内容处理插件的问题

WordPress
5月的时候我写过一篇本站使用的WordPress插件, 介绍的最后一个插件名叫"Wordpress Duplicate Content Cure", 它的功能是"处理WordPress上的重复内容以增强SEO效果". 但是在试用了一周之后发现, 我发现在那些天写的一些文章没有被Google收录, 唯一能搜索到的相关信息只是http://hellobmw.com/feed, 即"RSS Feed输出过这些文章", 仅此而已. 思前想后最终将目光盯在了这款插件身上, 立刻禁用掉, 果然, 第二天, 之前没有被收录的文章已经出现在Google搜索结果中了. 这是为什么呢?

恰好昨天看到E-Space上的WordPress重复内容处理(有必要么?), 今天又看到OzhWordPress, Duplicate Content, and Wrong SEO Plugins, 顿时解开了对这款神秘的SEO插件的疑惑.

当我们写下一篇文章的时候, 除过文章本身, 在包含这篇文章的页面, 比方如首页, 当天归档页面, 当月归档页面, 当年归档页面, 目录页面中都会有"雷同"的内容, 而搜索引擎的机器人看到这样的4个, 5个或6个重复内容的时候, 它会试图找出最原始的内容而可能对其他重复内容降权处罚. 如果我们什么都不做, 让搜索引擎收录6次并自行决定哪个最优. 这是可行的. 不过由于以上原因, 可能会降低你在搜索引擎结果中的可见度, 如果想获得最佳的SEO效果, 不建议这样做.

因此, 诞生了这些处理重复内容的插件, 它们会在包含重复内容的页面上简单地加入元标签:

<meta name="robots" content="noindex, follow" />

这样搜索引擎机器人看到此标签后就只是follow此页面上的链接, 而不对页面进行索引. 这个方法看上去很美, 实际效果却未必. 插件很可能会误用此标签在实际需要被收录的地方, 拿我本文开始提到的问题来说, 插件居然把Feed中的内容当作原始内容, 而把包含此内容的其他所有页面包含原始文章本身都标记为"noindex". 导致搜索引擎收录完全错误. 与其相信这类低IQ的插件, 还不如让搜索引擎全部收录自行决定权重好了.

那么究竟如何做才能既处理好重要内容的问题, 又达到良好的SEO效果呢?

我们需要更聪明地处理掉这些重要内容. Ozh的方法是: 除了单篇文章页面本身, 其他页面显示文章的时候都不要全文输出, 而代之以摘要. 所以他认为对重复内容进行处理根本只是主题(Theme)的职责而非插件. 我们需要的只是设计优秀的主题: 视觉效果要好, 标记使用要恰当, 可以跨浏览器正常显示等等, 而这样的主题必不可少一个专门为各种归档设计的模板文件: archive.php.

很多人可能要说了, 我的主题目录里面没这个文件呀? 的确, 十有七八的主题都缺少这个文件, 因为当WordPress发现没有archive.php时会调用index.php, 再加上对archive.php重视的普遍不足, 主题作者们一般都忽略了这个文件. 为了避免内容重复, 最好使用一个只显示摘要的archive.php文件, 以下是Ozh提供的代码, 复制再另存为archive.php放到当前使用的主题目录下面.

<?php get_header(); ?>
    <div id="content">
    <?php if (have_posts()) : ?>
    <?php while ( have_posts() ) : the_post() ?>
        <div class="post">
        <h2><?php the_title(); ?></h2>
        <div class="storycontent">
        <p><?php
        $short = get_the_excerpt();
        if (strpos($short,'[...]') === false) $short.='[...]';
        echo $short;
        ?>

        &rarr; <strong><a href="<?php the_permalink() ?>">Read more</a></strong></p>
        </div>
        </div> <!-- post -->
    <?php endwhile ?>
    </div> <!-- content -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

这样, 搜索引擎不仅不会认为你的页面存在重复内容, 而且还会把归档页面也进行收录, 这才是SEO的最好方法. 喜欢看英文的朋友, 建议看看Ozh的这篇文章.

11Comment(s). Blabla or Trackback

  • fisio at 11:56 Jun 19, 2007 

    看了下我的 archive 果然是摘要 :em10:

  • 5只小鸟 at 13:32 Jun 19, 2007 

    端午节快乐!

  • 北极冰仔 at 17:27 Jun 19, 2007 

    也祝小鸟姐端午快乐. :em02:

  • hhalloyy at 16:53 Jun 20, 2007 

    其实我是觉得加meta标记最有效,不过要添加到header里还真要自己写语法,或者插件才行了。

    先去都搞成摘要吧。

  • hhalloyy at 17:34 Jun 20, 2007 

    刚才在header.php里写了点代码,现在单篇日志和page都已经加了index, follow的meata标记,而其它页面全弄成了noindex。应该符合robots的标准了。过两天看看搜索引擎抓取的结果吧。

    不过据说baidu根本不会管你robots,甚至还会换名字来强行抓取内容。

  • 北极冰仔 at 17:46 Jun 20, 2007 

    @hhalloyy
    这样写可以不?

    < ?php if(is_single() or is_page()) { ?>

    < ?php } else { ?>

    < ?php } ?>

  • hhalloyy at 17:55 Jun 20, 2007 

    对,就是这样写的,呵呵

  • 北极冰仔 at 17:57 Jun 20, 2007 

    好的, 我也试下看看疗效. :em01:

  • 北极冰仔 at 18:04 Jun 20, 2007 

    啊对了, 忘了首页了…

    < ?php if(is_single() or is_page()) { ?>

    应该改为

    < ?php if(is_single() or is_page() or is_home()) { ?>

  • hhalloyy at 18:10 Jun 20, 2007 

    嗯,其实主页内容还有重复的,但不收录你的域名主页真有点那个。。。。

    还好我的home是个page,这样刚好, :em01:

  • 北极冰仔 at 18:13 Jun 20, 2007 

    哈哈, 我想这样已经可以最大程度地减少重复了吧, 等过几天搜索一下最新收录的文章就可以看到效果如何啦. :em25:

Blabla ↓

Connecting to server...

4Pingbacks & Trackbacks