PDA

View Full Version : Add-On Releases - SEOvB - Link Canonicalization for vBulletin Stop Duplicate Content NOW!


SEOvB
02-15-2009, 10:00 PM
Squash vBulletin Duplicate Content Completely with Canonical URL's!
Courtesy of SEO vBulletin Services (http://seovb.com)
tags: seo, vbulletin, vbulletin seo, link canonical, canonical

Google, MSN, and Yahoo have just relased a new tag for stopping duplicate content even further. Combining a good and valid vBulletin Robots.txt (http://seovb.com/use-robotstxt-to-prevent-vbulletin-duplicate-content) file along with the new canonical tag can destroy any duplicate content penalty your vBulletin powered forums may have had going on.


Carpe diem on any duplicate content worries: we now support a format that allows you to publicly specify your preferred version of a URL. If your site has identical or vastly similar content that's accessible through multiple URLs, this format provides you with more control over the URL returned in search results. It also helps to make sure that properties such as link popularity are consolidated to your preferred version


Canonical Link URL Faq
Is rel="canonical" a hint or a directive?
It's a hint that we honor strongly. We'll take your preference into account, in conjunction with other signals, when calculating the most relevant page to display in search results.

Can I use a relative path to specify the canonical, such as <link rel="canonical" href="product.php?item=swedish-fish" />?
Yes, relative paths are recognized as expected with the <link> tag. Also, if you include a <base> link in your document, relative paths will resolve according to the base URL.

Is it okay if the canonical is not an exact duplicate of the content?
We allow slight differences, e.g., in the sort order of a table of products. We also recognize that we may crawl the canonical and the duplicate pages at different points in time, so we may occasionally see different versions of your content. All of that is okay with us.

What if the rel="canonical" returns a 404?
We'll continue to index your content and use a heuristic to find a canonical, but we recommend that you specify existent URLs as canonicals.

What if the rel="canonical" hasn't yet been indexed?
Like all public content on the web, we strive to discover and crawl a designated canonical URL quickly. As soon as we index it, we'll immediately reconsider the rel="canonical" hint.

Can rel="canonical" be a redirect?
Yes, you can specify a URL that redirects as a canonical URL. Google will then process the redirect as usual and try to index it.

What if I have contradictory rel="canonical" designations?
Our algorithm is lenient: We can follow canonical chains, but we strongly recommend that you update links to point to a single canonical page to ensure optimal canonicalization results.

Can this link tag be used to suggest a canonical URL on a completely different domain?
No. To migrate to a completely different domain, permanent (301) redirects are more appropriate. Google currently will take canonicalization suggestions into account across subdomains (or within a domain), but not across domains. So site owners can suggest www.example.com vs. example.com vs. help.example.com, but not example.com vs. example-widgets.com.

Sounds great can I see an example in action
Sure, here is a wordpress blog that has implemented canonical URL's already: http://obamanewssource.com Our vBulletin powered site that has made this implementation is only a test site.

How can I check if its working
Go to your showthread page, and hit view source, and search for "canonical" and you should see it automatically added. If its not automatically added for whatever reason, remove the product file thats attached and make this simple template edit to the end of your vBulletin headinclude template (it's a good idea to do this on all headinclude templates)


<if condition="(THIS_SCRIPT == showthread) OR (THIS_SCRIPT == showpost) OR (THIS_SCRIPT == printthread)">
<link rel="canonical" href="$vboptions/showthread.php?t=$threadinfo[threadid]<if condition="$pagenumber>1">&page=$pagenumber</if>" />
</if>
<if condition="THIS_SCRIPT == index">
<link rel="canonical" href="$vboptions[bburl]" />
</if>



Tip: If you allow only access from www, or non-www version of your content, make sure your vBulletin path is set correctly!

[b]Install Instructions
Upload attached product.xml file to your vBulletin forums using the built in product manager

Uninstall Instructions
Sorry to hear the modification isn't working, to uninstall it, simply use the uninstall function of the product manager

SEOvB
02-16-2009, 01:36 AM
2/16/2009 - Added multithread page support

mbc100
02-16-2009, 02:49 AM
Thanks
Installed

redlabour
02-16-2009, 06:07 AM
Does it make sense with vBSEO 3.3?

cykelmyggen
02-16-2009, 06:33 AM
Further info from Google Webmaster Central Blog might throw some light on subject:
http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html

nightbloom
02-16-2009, 06:35 AM
Installed. Great idea!

projectego
02-16-2009, 09:39 AM
* projectego clicks install. Thanks! :D

RedeemedWarrior
02-16-2009, 09:47 AM
installed!

paintballer.ie
02-16-2009, 09:50 AM
so what does this do exactly, add's ''<link rel="canonical" href.......'' to all links?

Shadab
02-16-2009, 10:59 AM
/showthread.php?t=$threadinfo[threadid]
What about multi-page threads ?

The same thread URL would be put up in the meta canonical tag for each thread page (page 2, 3, ...).

SEOvB
02-16-2009, 11:29 AM
What about multi-page threads ?

The same thread URL would be put up in the meta canonical tag for each thread page (page 2, 3, ...).

Sorry for the slight oversight, I've updated the modification, as well as the manual template edit.

Shadab
02-16-2009, 03:55 PM
Sorry for the slight oversight, I've updated the modification, as well as the manual template edit.
Glad to hear that.
I appreciate the quick response and fix.

:)

cykelmyggen
02-16-2009, 04:27 PM
Does it make sense with vBSEO 3.3?
I would like to know too :confused:

SEOvB
02-16-2009, 05:16 PM
I'm not sure what all features are in vBSEO 3.3.0, though it surely won't cause any conflict. After installing, I suggest viewing the page source to make sure that the canonical tags are not there twice

djbaxter
02-16-2009, 07:03 PM
Does it make sense with vBSEO 3.3?

I would like to know too :confused:

I'm not sure what all features are in vBSEO 3.3.0, though it surely won't cause any conflict. After installing, I suggest viewing the page source to make sure that the canonical tags are not there twice

It isn't necessary if you're using vBSEO since vBSEO already takes care of it.

so what does this do exactly, add's ''<link rel="canonical" href.......'' to all links?

Yes.

redlabour
02-17-2009, 09:30 AM
It isn't necessary if you're using vBSEO since vBSEO already takes care of it.

??

I can?t find any canonical Tags in my Sourcecode - using vBSEO 3.3 PR7.

djbaxter
02-17-2009, 02:00 PM
??

I can?t find any canonical Tags in my Sourcecode - using vBSEO 3.3 PR7.

vBSEO already concentrates your links to one rewritten URL via .htacess.

Zoints SEO also does this for forum home (and maybe for certain other URLs depending on how you set it up).

If you're using another method, you don't need the tags - they are simply another (and easy) method for use on various types of web pages.

redlabour
02-20-2009, 05:36 PM
As announced today Canonical-Tags are integrated with vBSEO 3.3 RC1! :D

@djbaxter - i know what you mean - but you misunderstand Canonical-Tags - it is not the same it works now with vBSEO 3.3.

djbaxter
02-20-2009, 09:32 PM
As announced today Canonical-Tags are integrated with vBSEO 3.3 RC1! :D

@djbaxter - i know what you mean - but you misunderstand Canonical-Tags - it is not the same it works now with vBSEO 3.3.

vBSEO claims that their package already filters duplicate URLs so why do they need the tags? :rolleyes:

SEOvB
02-21-2009, 12:19 AM
As announced today Canonical-Tags are integrated with vBSEO 3.3 RC1! :D

@djbaxter - i know what you mean - but you misunderstand Canonical-Tags - it is not the same it works now with vBSEO 3.3.

If vBSEO inserts Canonical tags, and you have vBSEO (apparently version 3.3 or greater) will have this feature built in, so there won't be any need for this extra modification what so ever for those forums. :up:

SEOvB
02-21-2009, 12:20 AM
vBSEO claims that their package already filters duplicate URLs so why do they need the tags? :rolleyes:

Probably best left to the vBSEO guys, as I'm not sure why it'd be needed either if they already truly had achieved "link consensus" previously.:erm:

redlabour
02-21-2009, 06:25 AM
Simple answer :

Enable Canonical URLs NEW!
A canonical URL is the "Preferred" URL for any page. Some pages have more than one accessible URL, creating a duplicate content problem. Google and other search engines now look for a META parameter rel="canonical", and use this as a hint to determine which URL is the correct one to index, i.e. the preferred version.

vBSEO's built in Link Consensus ensures that all pages on your forum are canonical to begin with, allowing for only one URL per resource. vBSEO's native canonical URLs provide advantages including greater crawling efficiency, optimized external linking, maximized link value. This is not provided with the rel="canonical" parameter alone. vBSEO's Application level link consensus is required for these advantages.

However, Google's canonical hints are helpful as a backup for URLs such as custom sorted pages. This level of redundancy will ensure that if search engines ever discover the sorting URLs, they will be instructed of the correct page URL for link consensus the first time they crawl the page. Examples include custom sorted versions of forumdisplay, social group discussions, member and blog lists, etc.

MTGDarkness
02-21-2009, 12:22 PM
Will this work on 3.7.x?

djbaxter
02-21-2009, 12:58 PM
Simple answer :
Enable Canonical URLs NEW!
A canonical URL is the "Preferred" URL for any page. Some pages have more than one accessible URL, creating a duplicate content problem. Google and other search engines now look for a META parameter rel="canonical", and use this as a hint to determine which URL is the correct one to index, i.e. the preferred version.

vBSEO's built in Link Consensus ensures that all pages on your forum are canonical to begin with, allowing for only one URL per resource. vBSEO's native canonical URLs provide advantages including greater crawling efficiency, optimized external linking, maximized link value. This is not provided with the rel="canonical" parameter alone. vBSEO's Application level link consensus is required for these advantages.

However, Google's canonical hints are helpful as a backup for URLs such as custom sorted pages. This level of redundancy will ensure that if search engines ever discover the sorting URLs, they will be instructed of the correct page URL for link consensus the first time they crawl the page. Examples include custom sorted versions of forumdisplay, social group discussions, member and blog lists, etc.


That's neither simple nor an answer. That's a sales pitch.

And as FRDS points out above and as I said originally, to get back to THIS thread and THIS add-on, if you're using vBSEO you don't need this add-on. Move along people... nothing to see here...

roddy
02-22-2009, 10:33 AM
Ignore, either I messed up, or now it's magically working. Either way, clicking install . . .

roddy
02-22-2009, 10:44 AM
Ok, there is a problem here.
showthread.php?t=26237&page=9 > works fine

showthread.php?p=179223#post179223 > doesn't work.

Am seeing if I can figure it out, but probably I can't . . .

Edit: It does work if you paste it in below "$headinclude" in SHOWTHREAD. But not in SHOWTHREAD_SHOWPOST

abilitydesigns
03-01-2009, 06:04 PM
total vbulletin newbie here.

Pardon my ignorance, but can anybody walk me thro' the process of installing this mod?

i downloaded the file but don't know what to do next? ( there's no read me? )

again sorry for such a basic question

AD

gwerzal
03-01-2009, 10:53 PM
good idea.

Will install it later

brandonroy
03-12-2009, 07:59 AM
Installed. I did the manual edit and I took out this:

<if condition="THIS_SCRIPT == index">
<link rel="canonical" href="$vboptions[bburl]" />
</if>

Because I have my forum index set to /forum.php and it was adding <link rel="canonical" href="http://www.example.com" /> to forum.php which is not what I wanted!

Is that ok?

EDIT:
And also, if a post is on page=2 or page=3, etc - Shouldn't the showpost.php?p= have the canonical URL of showthread.php?t=555&page=2 instead of just showthread.php?t=555 ? Or is that not a big deal?

MTGDarkness
03-13-2009, 08:24 PM
It's working fine with vBulletin 3.7.x. Question-should the canonicals specify which page in a thread you're on? I'm using it with the TFSEO URL Rewrite, and I'm (of course) worried about conflicts. Like, regardless of what page I am on in a thread, it sends me to the first page with the canonical. Should that happen?

SEOvB
03-15-2009, 10:16 AM
Ok, there is a problem here.
showthread.php?t=26237&page=9 > works fine

showthread.php?p=179223#post179223 > doesn't work.

Am seeing if I can figure it out, but probably I can't . . .

Edit: It does work if you paste it in below "$headinclude" in SHOWTHREAD. But not in SHOWTHREAD_SHOWPOST

What is displaying for the cannonical URL you when you go to

showthread.php?t=26237&page=9


What is displaying as the cannonical URL for

showthread.php?p=179223#post179223

(This one should show, showthread.php?=179223, search engines don't bother with the relative anchor #post179223)

SEOvB
03-15-2009, 10:19 AM
Installed. I did the manual edit and I took out this:

<if condition="THIS_SCRIPT == index">
<link rel="canonical" href="$vboptions[bburl]" />
</if>

Because I have my forum index set to /forum.php and it was adding <link rel="canonical" href="http://www.example.com" /> to forum.php which is not what I wanted!

Is that ok?

EDIT:
And also, if a post is on page=2 or page=3, etc - Shouldn't the showpost.php?p= have the canonical URL of showthread.php?t=555&page=2 instead of just showthread.php?t=555 ? Or is that not a big deal?

Yes, the first edit is fine, as the index page usually isn't the root of duplicate content evils.

Even changing it to

<link rel="canonical" href="$vboptions[bburl]/forum.php" />


Should work, or simply inserting your entire forum URL in there :D

Yes it should add the &page to it.

I thought I had multipage support enabled on it, but apparently not. I apologize for that as I only have a test forum that doesn't have any multi page threads but I guess i'll have to create one now.

Edit: I just downloaded the version attached and installed it on a test site and its adding the page numbers okay.

SEOvB
03-15-2009, 10:20 AM
total vbulletin newbie here.

Pardon my ignorance, but can anybody walk me thro' the process of installing this mod?

i downloaded the file but don't know what to do next? ( there's no read me? )

again sorry for such a basic question

AD

The first post has install instructions at the very bottom.

Install Instructions
Upload attached product.xml file to your vBulletin forums using the built in product manager

Thats all there is to the install. If it doesn't work, the first post also contains information on a manual template edit to fix that.

MTGDarkness
03-15-2009, 05:19 PM
<if condition="(THIS_SCRIPT == showthread) OR (THIS_SCRIPT == showpost) OR (THIS_SCRIPT == printthread)">
<link rel="canonical" href="$vboptions[bburl]/showthread.php?t=$threadinfo[threadid]<if condition="$pagenumber>1">&page=$pagenumber</if>" />
</if>
<if condition="THIS_SCRIPT == index">
<link rel="canonical" href="$vboptions[bburl]" />
</if>

Is wrong.
Specifically:
"$pagenumber>1">&page=$pagenumber</if>" />


Typo, or real code? I'm dubious... :p

I used this fix:
<link rel="canonical" href="$vboptions[bburl]/showthread.php?t=$threadinfo[threadid]<if condition="$pagenumber">&page=$pagenumber</if>


That works on my board.

SEOvB
03-16-2009, 10:13 AM
<if condition="(THIS_SCRIPT == showthread) OR (THIS_SCRIPT == showpost) OR (THIS_SCRIPT == printthread)">
<link rel="canonical" href="$vboptions[bburl]/showthread.php?t=$threadinfo[threadid]<if condition="$pagenumber>1">&page=$pagenumber</if>" />
</if>
<if condition="THIS_SCRIPT == index">
<link rel="canonical" href="$vboptions[bburl]" />
</if>

Is wrong.
Specifically:
"$pagenumber>1">&page=$pagenumber</if>" />


Typo, or real code? I'm dubious... :p



Nope thats real code straight from standard vBulletin templates

I used this fix:


<link rel="canonical" href="$vboptions[bburl]/showthread.php?t=$threadinfo[threadid]<if condition="$pagenumber">&page=$pagenumber</if>



That works on my board.

Same result, i just took the code vBulletin uses to deliver the multi-page threads (see showthread title tags)

And you may want to toss " /> at the end of your method :up:

MTGDarkness
03-16-2009, 05:03 PM
I feel kinda stupid now. :(

SEOvB
03-16-2009, 05:09 PM
Don't man! You were just trying to help!

;)

brandonroy
03-18-2009, 05:08 AM
Yes, the first edit is fine, as the index page usually isn't the root of duplicate content evils.

Even changing it to

<link rel="canonical" href="$vboptions[bburl]/forum.php" />


Should work, or simply inserting your entire forum URL in there :D

Yes it should add the &page to it.

I thought I had multipage support enabled on it, but apparently not. I apologize for that as I only have a test forum that doesn't have any multi page threads but I guess i'll have to create one now.

Edit: I just downloaded the version attached and installed it on a test site and its adding the page numbers okay.

It's adding page numbers ok for showthread, but not for showpost! If you view a single post on page 2 for example, the canonical URL points to the first page of the thread.

Dave-ahfb
03-30-2009, 01:54 PM
Did I miss something or does this not include on forumdisplay?

atmaca
06-04-2009, 08:56 AM
This hack does not working with Zoints SEO For examle, my link:
http://www.ceptecep.net/4-haziran-t6884.html?t=6884 But it's showing at page source
<link rel="canonical" href="http://www.ceptecep.net/showthread.php?t=6884" />How this work with Zoints SEO?

HeyMe
06-16-2009, 10:17 AM
It's adding page numbers ok for showthread, but not for showpost! If you view a single post on page 2 for example, the canonical URL points to the first page of the thread.
For me it doesn't add numbers for both, I'm on 3.8.2

Disabling it for now, this can be disastrous for SEO ..

HeyMe
06-21-2009, 08:38 AM
Update: Works with the template edit method except for the showpost part as stated brandonroy, thanks!

@atmaca, why would you need this with Zoints SEO, it already uses 301 redirects to take care of duplicate content?

Sayid
07-12-2009, 12:57 PM
<if condition="(THIS_SCRIPT == showthread) OR (THIS_SCRIPT == printthread)">
<link rel="canonical" href="$vboptions[bburl]/showthread.php?t=$threadinfo[threadid]<if condition="$pagenumber>1">&page=$pagenumber</if>" />
</if>
<if condition="(THIS_SCRIPT == showpost)">
<link rel="canonical" href="$vboptions[bburl]/showpost.php?p=$postinfo[postid]"/>
</if>
<if condition="THIS_SCRIPT == index">
<link rel="canonical" href="$vboptions[bburl]" />
</if>

I modify the code to make it work with showpost tempelate

For example, the canonical link for :

showpost.php?p=20020&postcount=18

is:

showpost.php?p=20020

which shows the same single post page but without post count #42 below the tread title

Is it good or not ?

Alfa1
08-16-2009, 01:55 PM
This is not true for me:
How can I check if its working
Go to your showthread page, and hit view source, and search for "canonical" and you should see it automatically added. The canonical is added to the source. So according to your explanation Google should no longer index double content. None the less Google still indexes both urls for the same thread:

showthread.php?t=26237

showthread.php?p=179223

I am getting hit with 30.000 double content pages. What can I do?

jaymanfromTFX
08-18-2009, 07:21 AM
I just installed this and i am hoping this works.Thanks!I will let everyone know in a couple weeks how things went.

Alfa1
09-01-2009, 03:29 PM
This is not true for me:
The canonical is added to the source. So according to your explanation Google should no longer index double content. None the less Google still indexes both urls for the same thread:

showthread.php?t=26237

showthread.php?p=179223

I am getting hit with 30.000 double content pages. What can I do?
Any idea on this?

Sayid
09-01-2009, 10:22 PM
I am getting hit with 30.000 double content pages. What can I do?

same thing with me.

djbaxter
09-01-2009, 11:44 PM
Any idea on this?

same thing with me.

You misunderstand the purpose of this add-on and opf the canonicalization tag.

It does not eliminate duplicate content in the way you indicate here: To do that, you'll need a more extsnive add-on such as vBSEO.

What this one does is specify that http://www.yoursite.com and http://.yoursite.com refer to the same page and it instructs search engines as to which version you prefer.

That's it. That's all.

Alfa1
09-02-2009, 07:51 AM
Aha. But then this whole addon can simply be replaced by one .htaccess line.

djbaxter
09-02-2009, 01:14 PM
Aha. But then this whole addon can simply be replaced by one .htaccess line.

Or by one line added to the includes template, yes. The add-on is for convenience.

Sayid
09-02-2009, 03:55 PM
So what is the meaning of these lines ?

Google, MSN, and Yahoo have just relased a new tag for stopping duplicate content even further. Combining a good and valid vBulletin Robots.txt file along with the new canonical tag can destroy any duplicate content penalty your vBulletin powered forums may have had going on.

Anyway, uninstalled as long as no support on this topic and it does not work as mentioned!

djbaxter
09-02-2009, 04:03 PM
So what is the meaning of these lines ?

I didn't create the add-on or the copy describing what it does. I'm just giving you the facts. :)

BSMedia
09-23-2009, 03:09 PM
Any idea on this?

My only idea is that there is no such thing as duplicate content penalties. So I wouldn't worry about it much.

Check Google Webmaster Blog for more info on how this works and what its for.

cosy
10-10-2009, 06:55 PM
works for me
also in firefox i get a small C on the url bar if i click the said C i go to the main url

MSA
01-21-2010, 01:16 PM
thanks it very gooooooooood

BirdOPrey5
08-14-2010, 02:48 AM
I don't understand what the purpose of the .xml product file is when the code given can just be manually added to the header include template (and works great btw, thanks).

aapkae
01-19-2011, 05:27 AM
which code and where i post that code between which code below or ?

BirdOPrey5
01-19-2011, 11:55 AM
which code and where i post that code between which code below or ?

You post the code in the top thread:
<if condition="(THIS_SCRIPT == showthread) OR (THIS_SCRIPT == showpost) OR (THIS_SCRIPT == printthread)">
<link rel="canonical" href="$vboptions[bburl]/showthread.php?t=$threadinfo[threadid]<if condition="$pagenumber>1">&page=$pagenumber</if>" />
</if>
<if condition="THIS_SCRIPT == index">
<link rel="canonical" href="$vboptions[bburl]" />
</if>

Anywhere in your headinclude template- the very top or very bottom is probably best.

cash7c3
10-17-2014, 04:54 PM
Any idea what the correct format is for that on vB4? Should be using vb raw now but I'm not 100% on what to do.

Smitty
11-03-2014, 11:17 AM
What do you put in the headinclude to add rel="canonical" to forums? This works fine for threads and pages, but doesn't for individual forums as, for example, in the Web Hosting Talk forums.

**Never mind. It's <if condition="(THIS_SCRIPT == forumdisplay)">
<link rel="canonical" href="$vboptions[bburl]/forumdisplay.php?f=$foruminfo[forumid]<if condition="$pagenumber>1">&page=$pagenumber</if>" />

davidg
01-05-2016, 02:10 PM
Adding both lines from BirdOPrey5 and Smitty in one like this :

<if condition="(THIS_SCRIPT == showthread) OR (THIS_SCRIPT == showpost) OR (THIS_SCRIPT == printthread) OR (THIS_SCRIPT == forumdisplay)">
<link rel="canonical" href="$vboptions[bburl]/showthread.php?t=$threadinfo[threadid]<if condition="$pagenumber>1">&page=$pagenumber</if>" />
<link rel="canonical" href="$vboptions[bburl]/forumdisplay.php?f=$foruminfo[forumid]<if condition="$pagenumber>1">&page=$pagenumber</if>" />
</if>
<if condition="THIS_SCRIPT == index">
<link rel="canonical" href="$vboptions[bburl]" />
</if>

Is this correct ?