Dealing With Duplicate Content Issues on WordPress Comments Pages

I saw a tweet today about WordPress comment page duplication issues related to SEO. While the word is still out as to just how much damage it does or doesn’t do to your ability to get found by the Great G, this specific problem is relatively easily fixed — and not by disabling the paged comments feature that the Wizards of WordPress have so kindly coded for us (you ever had a post with 300 comments? you’ll understand what I mean…).

All it takes is a little bit of code in the functions.php file in your theme. If you’re uncomfortable editing your theme files or don’t know how, leave a comment and I’ll whip up a little plugin. This may be a good time to learn to edit your files, though 🙂

This little bit of code doesn’t affect anything but WordPress comment pages. If you use WordPress for something other than a plain-vanilla blog, you may need the horsepower of Yoast’s Canonical URLs plugin for WordPress.

So in your functions.php file, insert the following code (I split the echo lines up for clarity, normally they’d be all on one line):

function canonical_for_comments() {
 global $cpage, $post;
 if ( $cpage > 1 ) :
  echo "\n";
  echo "<link rel='canonical' href='";
  echo get_permalink( $post->ID );
  echo "' />\n";
 endif;
}
add_action( 'wp_head', 'canonical_for_comments' );

Make sure you paste the code before the last ?> characters at the end of the file.

For those of you who care, here’s a quick explanation of what the above code does — you’ll get a short intro into the behind-the-scenes functioning of WordPress.

When a visitor navigates beyond the first page of comments, the variable $cpage contains the page # that’s being displayed. The $post variable contains all of the information about the post. The function tests to see if we’re on a comments page greater than 1, if so, it spits out the <link rel=…./> characters. But where does it spit them?

That’s controlled by the add_action line. We’re telling WordPress that when it’s building the head section (‘wp-head’), to add our special ‘canonical_for_comments’ function.

Simple, easy schmeezy.

Comments

  1. says

    The use of canonical meta tag is really good instead of using the trick that i have given in my blog. You have given amazing illustration for the WordPress people to save the Google penalty bcoz of duplicate content.
    But still i think this is not for the new users, who don’t want to edit the PHP pages.
    But still its really helpful and easy to implement. 🙂 G8 work

  2. says

    I used to publish my articles, but now I wander should I stop doing this, because the risk of duplicate content penalty. Should I stop publish my articles on article directories?

    • Steve says

      NO! Don’t stop! You may want to reword them some, or run them through a GOOD spinner (I don’t generally like article spinners; I haven’t found one yet that works well). The duplicate content penalty is a myth. There is no penalty.

      The danger with duplicate content is that an article on a directory may rank higher than the article on your main site. This happens often because of the weight that Google gives some of the bigger article directories.

Trackbacks

  1. […] To apply this link automatically to every page with comments, I added some lines of code to the functions.php file of my theme. Steve came up with a simple solution in his article Dealing With Duplicate Content Issues on WordPress Comments Pages: […]

  2. […] you to break pages with number of comments without harming the SEO. Take a look at the post : Dealing With Duplicate Content Issues on WordPress Comments Pages. The post is giving information about the Canonical URL meta, which allows us to redirect the bot […]

  3. […] To apply this link automatically to every page with comments, I added some lines of code to the functions.php file of my theme. Steve came up with a simple solution in his article Dealing With Duplicate Content Issues on WordPress Comments Pages: […]

  4. […] to I like WordPress for the useful tip! If you enjoyed this article, please consider sharing it! tweetmeme_style = […]

  5. […] Gefunden habe ich diese Code bei I like WordPress. […]

Leave a Reply