Today I would like to announce the release of ‘SEO No Duplicate’ WordPress Plugin, a plugin that helps tell search engine bots the preferred version of a post page by specifying the canonical properly within your head tag.
Why would you do such a thing? Simply because many black-hat SEO consultants abuse duplicate content to gain search ranking and search engines try really hard to detect and penalize them. The last thing you want to do is present yourself as an SEO spammer to search engines.
This plugin is based on my previous post on how to automatically deal with duplicate content. Please feel free to use the comments section for bug reports, feature requests, and suggestions.
Description
This plugin improves your site’s search engine optimization by helping you manage your search engine duplicate content, by setting your post page’s canonical to the permalink.
Features
- Helps you get rid of search engine duplicate content problem.
- Easy implementation. Just activate and go.
Download
Installation
- Upload the plugin to your plugins folder: ‘wp-content/plugins/’
- Activate the ‘SEO No Duplicate’ plugin from the Plugins admin panel.
Documentation
Where do I file bugs, make feature requests, ask for support?
Please post any support requests on the official WordPress support forum. Some kind soul may help you there. All support requests on this comment form will not be responded to.
Like the plugin?
If you are impressed with the plugin and would like to give back, here are some ways you can support this plugin:
- Rate this plugin 5 stars in WordPress Plugin Directory.
- Buy me a cup of coffee or two.
- Spread the word about my plugin by writing about it on your blog, tweeting, digging, stumbling, etc.
- Help translate the plugin into another language.
commented on February 13th, 2009 at 9:17 pm
You mean like this: http://yoast.com/wordpress/canonical/ ?
Joost de Valk is a few steps ahead of you.
Now if you add the ability to set a custom field with a different URL from the posts page, you could one-up him…
commented on February 13th, 2009 at 9:21 pm
@redwall_hp
Darn that Joost! I must've missed that post from him.
Thanks for the tip. I'll add that feature soon.
commented on February 13th, 2009 at 10:42 pm
I don’t mind a bit of competition
i,ve seen your previous post, and it’s not as simple as you think, try to create proper output for tags, categories, paged pages, blog dubpages, and more using all different types of permalink settings.
commented on February 14th, 2009 at 12:17 am
Blog subpages I meant
commented on February 14th, 2009 at 11:34 pm
Thanks for the tip buddy!
commented on February 15th, 2009 at 9:34 pm
Released 0.2
- Added support for all types of WordPress pages
- Added canonical user overrides via custom fields
commented on February 17th, 2009 at 8:27 pm
All of the subsequent pages of the main page, category pages etc (ie xyz.com/blog/page/2/ etc) all have canonical=the first page (ie xyz.com/blog/).
commented on February 18th, 2009 at 11:03 pm
@abc
I intended it to be that way. Is it better to have it otherwise?
commented on February 26th, 2009 at 6:23 am
This the process from your plugin automated or needed manual work?
commented on February 26th, 2009 at 6:58 am
@gofree
It is automated with the option for manual override.
commented on February 26th, 2009 at 7:01 am
It's automated with the option of manual override.
commented on March 6th, 2009 at 2:59 am
I am sorry. I want to post I don't understand canonical properly.
commented on March 6th, 2009 at 9:13 am
@nop
Canonical settings just tell the Googlebot what the preferred URL for a certain page is. For example, by default Googlebot sees these pages as different pages:
http://example.com/2009/03/06/my-title/
http://example.com/my-category/my-title/
http://example.com/my-category/my-title/#comments
http://example.com/my-category/my-title/?key=valu…
and marks them as duplicate content. You need to set the canonical URL to something like "http://example.com/my-category/my-title/" so that the Googlebot knows that the other URLs are indeed the same page, so it will not index this duplicate content (and possible hurt your SEO score).
commented on March 11th, 2009 at 12:14 pm
Hi i just want to ask…I re-edited my permalink because I had one word misspelled..the problem with it is that google considered both the wrong spelling and the correct one…when I went to webmasters I have a duplicate content issue…will your plugin help?
commented on March 11th, 2009 at 9:21 pm
@johnray
When you install this plugin, the next time Google spiders both the wrong and the right version of the page, it will see the canonical settings at the top of the page being set to the right version of the page and correct the duplicate content issue for you. Now the hardest part is to tell Google to spider both the wrong and the right version of the page.
commented on March 19th, 2009 at 2:22 am
Can I test plugins & canonical properly is work on this page ?
commented on March 19th, 2009 at 12:55 am
You sure can! It's running right now.
commented on April 3rd, 2009 at 11:34 am
Not sure if I am understanding this right. Tested the plugin on a page entitled:
http://www.savercode.co.uk/category/sector/clothi…
In the custom feature I changed this to:
http://www.savercode.co.uk/uniqlo
But it still lists the original longer url in the source code:
<link rel="canonical" href="http://www.savercode.co.uk/category/alphabetical/u/uniqlo1/"/>
Should not the link rel be changed when using the manual override?
commented on April 5th, 2009 at 1:38 am
@Philip
That sounds like a bug to me. I will fix it in the next release. Please stay tuned to the RSS feed!
commented on April 23rd, 2009 at 3:37 am
Hi Philip, I could not reproduce this problem on my side. Is there anything special about your WordPress installation?
commented on April 23rd, 2009 at 7:49 am
Hello,
At Dashboard Of WP, I've received following error related with your plugin.
—————-
Warning: array_slice() expects parameter 1 to be array, null given in /home/site-name/public_html/wp-content/plugins/seo-no-duplicate/omninoggin-posts.php on line 41
# No items
—————-
commented on April 23rd, 2009 at 8:08 am
I have had another look and I am not sure this plugin does what I require. Please advise. I set a dummy canonical for this page http://www.savercode.co.uk/pyjama-room/ as http://www.savercode.co.uk/fred/ and it works fine. But where the content is duplicated such as http://www.savercode.co.uk/category/sector/clothi… there is no dummy canonical available. My WordPress installation is standard using hybrid-news theme.
commented on April 23rd, 2009 at 3:54 pm
My site is 2.7.1 but your version check says the plugin requires at least 2.7 and keeps the rest of my site from rendering. I had to disable the plugin. I hope you can fix this soon.
Thanks
commented on April 23rd, 2009 at 5:51 pm
That's odd. I have 2.7.1 and it works fine for me. Do you have a beta version of 2.7.1 or something? Can you try "echo $wp_version;" before the version check in seo-no-duplicate.php and see if it says "2.7.1"?
commented on April 23rd, 2009 at 6:06 pm
Ah.. I think I know why. Do you have any plugins that remove the WordPress version? The only reason I can think that is causing this is that your $wp_version global was unset somehow.
commented on April 23rd, 2009 at 6:06 pm
Ah.. I think I know why. Do you have any plugins that remove the WordPress version? The only reason I can think what is causing this is that your $wp_version global was unset somehow.
commented on April 23rd, 2009 at 6:45 pm
I've just checked in version 0.3.1. Hopefully this will fix your problem.
commented on April 23rd, 2009 at 6:45 pm
I've just checked in version 0.3.1. Hopefully this will fix your problem.
commented on April 23rd, 2009 at 6:46 pm
Released 0.3.1
- Fixed array_slice() warning in the admin dashboard.
- Fixed version check to not break page when $wp_version is empty.
commented on April 24th, 2009 at 1:44 pm
The update seems to be working just fine thank you very much. Sorry I didn't get a chance to reply to your questions earlier I was at work. I put in the echo of $wp_version. It displays the correct version when I am in the admin side but on the user side it doesn't display anything. I am not sure why that is. The check for empty works but now i'm very curious as to why the site doesn't have a version when it's not in the back end.
commented on April 25th, 2009 at 12:49 am
That's no problem. I suspect that it has to be one of your plugins doing that. I'm not sure why it would want to do that though.
commented on April 30th, 2009 at 7:16 am
this plugin best for seo and my blog