Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases

Reply
 
Thread Tools
Stop Spammers with rel=nofollow in URLs! Details »»
Stop Spammers with rel=nofollow in URLs!
Version: 1.00, by kall kall is offline
Developer Last Online: Aug 2021 Show Printable Version Email this Page

Version: 3.0.5 Rating:
Released: 01-19-2005 Last Update: Never Installs: 41
 
No support by the author.

In the first cooperative move for nearly ten years, the major search engines have unveiled a new indexing command for web authors that they all recognize, one that they hope will help reduce the link and comment spam that plagues many web sites....due to removing the point of doing it in the first place.

The new "nofollow" attribute that can be associated with links was originated as an idea by Google in late 2004 and MSN and Yahoo, as well as major blogging vendors have jumped onboard.

The Nofollow Attribute

The new attribute is called "nofollow" with rel="nofollow" being the format inserted within an anchor tag.
When added to any link, it will effectively serve as a flag to tell the search engines that the link has not been explictly approved by the site owner, and therefore "not follow" it, or not use the referring page's (on your site) Page Rank in any way.

For example, this is how the HTML markup for an ordinary link might look:

<a href="http://www.somedomain.com/page.html">My forums are the best lol lol lol click here!!</a>

This is how the link would look after the nofollow attribute has been added, with the attribute portion shown in bold

<a href="http://www.somedomain.com/page.html" rel="nofollow">My forums are the best lol lol lol click here!!</a>

This would also be acceptable, as order of elements within the anchor tag makes no difference:

<a rel="nofollow" href="http://www.site.com/page.html" >Visit My Page</a>

Once added, the search engines supporting the attribute will understand that the link has not been approved in some way by the site owner.

Think of it as a way to flag to them, "I didn't post this link -- someone else did."

Quote:
Originally Posted by Alkatraz
If Google sees nofollow as part of a link, it will:

1. NOT follow through to that page.
2. NOT count the link in calculating PageRank link popularity scores.
3. NOT count the anchor text in determining what terms the page being linked to is relevant for.
The site that is being linked to will gain nothing from the link, so the whole point of doing it in the first place is removed.

WHAT WILL THIS DO, IN ESSENCE?

This will affect URLs in posts, as well as signatures...anything that goes through the bbcodeparse function as far as I can tell/guess, and will work recursively, or whatever the word is that means 'it will affect all existing posts and signatures'...or it did for me anyway.

Update:

Thanks to Michael Morris and natez0rz for pointing out that using the $post global would be a much better idea.

To change the conditional number of posts, alter
PHP Code:
OR $post['posts'] > 50
to whatever you like.

It should work with all vB 3.0.x versions, but was tested on 3.0.6.

File to modify: 1

1/ Open your includes/functions_bbcodeparse.php file

Find:
PHP Code:
if ($type == 'url')
    {
        
// standard URL hyperlink
        
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
    }
    else
    {
        
// email hyperlink (mailto:) 
Replace with:
PHP Code:
        if ($type == 'url')
    {
        global 
$post;

if (
is_member_of($post6//Admins are exempt
OR is_member_of($post5//Mods are exempt
OR is_member_of($post7//SuperMods are exempt
OR $post['posts'] > 50// People with over 50 posts are exempt
    
{
    
// standard URL hyperlink
    
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
    }
    else
    {
     return 
"<a href=\"$rightlink\" rel=\"nofollow\" target=\"_blank\">$text</a>";
    }
    }
   else
    {
        
// email hyperlink (mailto:) 
2/ Save and Upload.

3/ Relax, safe in the knowledge that spammers linking from your site are doing so for no reason whatsoever.

4/ Edit: exclude staff usergroups and members with over 50 posts.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #32  
Old 02-15-2005, 04:20 AM
BamaStangGuy's Avatar
BamaStangGuy BamaStangGuy is offline
 
Join Date: Mar 2004
Location: Alabama
Posts: 521
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by nintendo
Now that's a MUCH better version. With the way it is by default, this is one STUPID hack, punishing the 99% that arn't spammers! At this rate it won't be long before a STUPID signiture version of the hack is created!
Calm down dude it is not like you have to install it. They put their time into making this hack. Show some respect to the author
Reply With Quote
  #33  
Old 02-15-2005, 04:48 AM
kall's Avatar
kall kall is offline
 
Join Date: Apr 2004
Location: New Zealand
Posts: 2,608
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by BrentWilson
Calm down dude it is not like you have to install it. They put their time into making this hack. Show some respect to the author
Stoopid is as stoopid does.
Reply With Quote
  #34  
Old 02-15-2005, 09:03 AM
Michael Morris's Avatar
Michael Morris Michael Morris is offline
 
Join Date: Nov 2003
Location: Knoxville TN
Posts: 774
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kall
Stoopid is as stoopid does.
Ignore the little troll kall.

:clicks ignore:

Now, might I recommend the following. Your conditional references $bbuserinfo. That will only affect the viewing user - so spiders still see no links in posts regardless of the user. To pull up the post user data, use $post. You'll have to global it. Further, instead of using a set usergroup, I recommend using a post count threshhold of 50. I doubt many spammers will reach that threshold, while most of your regulars will. Hence

PHP Code:
global $post;

if (
$post['posts'] < 50)
{
//put the no follow stuff in
}
else
{
//don't

:clicks install:
Reply With Quote
  #35  
Old 02-19-2005, 09:05 PM
natez0rz natez0rz is offline
 
Join Date: Aug 2004
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Michael Morris
Now, might I recommend the following. Your conditional references $bbuserinfo. That will only affect the viewing user - so spiders still see no links in posts regardless of the user. To pull up the post user data, use $post.
You're right, but $post also has the usergroupid. Here's the code I'm using--it's working great. It allows normal links for moderators, supermoderators, administrators and users with more than 100 posts.

PHP Code:
    global $post;

 if (
is_member_of($post6)
 OR 
is_member_of($post5)
 OR 
is_member_of($post7)
 OR 
$post['posts'] > 100)
    {
    
// standard URL hyperlink
    
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
    }
    else
    {
     return 
"<a href=\"$rightlink\" rel=\"nofollow\" target=\"_blank\">$text</a>";
    } 
Reply With Quote
  #36  
Old 02-21-2005, 09:03 AM
venomx's Avatar
venomx venomx is offline
 
Join Date: Apr 2002
Location: Pennsylvania USA
Posts: 441
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I tried to do what natez0rz did in the post above me but I get an error..

Code:
Parse error: parse error, unexpected T_ELSE in /home/forum/public_html/forums/includes/functions_bbcodeparse.php on line 1523
The else giving the error is the one right before the mailto part

Code:
	if ($type == 'url')
	{
global $post; 

if (is_member_of($post, 6) 
OR is_member_of($post, 5) 
OR is_member_of($post, 7) 
OR $post['posts'] > 100)
    { 
    // standard URL hyperlink 
    return "<a href=\"$rightlink\" target=\"_blank\">$text</a>"; 
    }
    else
    {
     return "<a href=\"$rightlink\" rel=\"nofollow\" target=\"_blank\">$text</a>";
    }
	else
	{
		// email hyperlink (mailto:)
Reply With Quote
  #37  
Old 02-22-2005, 05:15 PM
kall's Avatar
kall kall is offline
 
Join Date: Apr 2004
Location: New Zealand
Posts: 2,608
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Michael Morris
Ignore the little troll kall.

:clicks ignore:

Now, might I recommend the following. Your conditional references $bbuserinfo. That will only affect the viewing user - so spiders still see no links in posts regardless of the user. To pull up the post user data, use $post. You'll have to global it. Further, instead of using a set usergroup, I recommend using a post count threshhold of 50. I doubt many spammers will reach that threshold, while most of your regulars will. Hence

PHP Code:
global $post;

if (
$post['posts'] < 50)
{
//put the no follow stuff in
}
else
{
//don't

:clicks install:
Good call, both of you.

*updates hack*

Now it will affect users with under 50 posts only.
Reply With Quote
  #38  
Old 04-07-2005, 11:57 PM
kyrnel's Avatar
kyrnel kyrnel is offline
 
Join Date: Nov 2001
Location: Houston, TX
Posts: 87
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Works great, clicks install.

I modified it a bit for simplification.
If the user IS a member of New Members usergroup, then it posts the modified URL.
Reply With Quote
  #39  
Old 04-12-2005, 06:14 AM
I, Brian I, Brian is offline
 
Join Date: Jul 2003
Posts: 71
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I just thought I'd point out that in the SEO community the use of nofollow has been suggested as a way to devalue pages.

The purpose of a nofollow tag is not simply indicate a link should be ignored, but also that the page content is subject to third party interference.

Therefore if people think that implementing this hack could be a great way to "horde PageRank" or other such strategy, then they may find what they actually achieve is simply a way of telling search engines that the forum itself is nothing but a collection of "free for all" pages and should be devalued.

Webmasters should consider very carefully why they wish to use nofollow, because if it's for SEO purposes then there is a real possibility that the plan could backfire on you.
Reply With Quote
  #40  
Old 04-12-2005, 06:24 AM
kall's Avatar
kall kall is offline
 
Join Date: Apr 2004
Location: New Zealand
Posts: 2,608
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by I, Brian
Therefore if people think that implementing this hack could be a great way to "horde PageRank" or other such strategy, then they may find what they actually achieve is simply a way of telling search engines that the forum itself is nothing but a collection of "free for all" pages and should be devalued.
Well, anyone adding the nofollow link to every single link in their site is a little silly regardless really.

This hack applies the attribute to links posted by (and in the signatures of) members of Usergroups defined by the admin. It does not affect board-wide links or template links or anything else.

How that would tell the engines that the forum is nothing but a collection of free-for-all pages is beyond me. Please explain.

Or did you totally miss the point of this hack?
Reply With Quote
  #41  
Old 04-12-2005, 08:30 AM
ChrisLM2001 ChrisLM2001 is offline
 
Join Date: May 2003
Posts: 126
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Anyone with before and after SEO stats with this mod installed?

That'll explain to everyone if this mod hurts rankings and put the second guessing to rest.

Something is needed to keep the spammers at bay. If it's true that the bots are reading images via OCR, even image verification won't help.

Chris
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:58 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.08436 seconds
  • Memory Usage 2,336KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_code
  • (6)bbcode_php
  • (7)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete