Googleなんかの検索エンジンはたくさんのサイトからリンクされているサイトを有用なサイトと見なして検索結果の上位に表示するということをするのだけど、それのおかげであちこちに関係ないトラックバックを送りまくる、つまり「トラックバックスパム」というのが横行してます。
GoogleやYahooはリンクに特別な記述がしてあると、それはリンクとしてカウントしないような仕組みを持ってます。
Web2.0ナビ: 意外と知られていない?rel=”nofollow”について
GoogleやYahoo,MSNといった大手検索エンジンはリンク属性に「rel=nofollow」がついているサイトへのリンクは、ページランク等の集計対象に含みません。
リンクとしてカウントしないと言うことは、いくらトラックバックスパムを送ってもGoogleの検索上位には上がらない、つまりトラックバックスパムを送っても意味がないよ、という割と消極的な対策なわけです。
というわけで、うちのサイトもリンクにnofollow属性を付けてみました。
うちはXOOPSモジュール版WordPressを使っているので、まずthemeフォルダ内のcomments-template.phpにnofollowを追加。
しかし、<?php comment_author_link() ?>となっているところは、ここからはどうしようもない様子なので、grepで元の関数を検索してみました。
どうやらwp-includes/template-functions-comment.phpの157行目あたりが、リンクを生成しているところのようです。
[2007.1.5追記]
すみません。relの指定方法に間違いがありました。最初、「rel=’external’ rel=’nofollow’」というようにrelを二つ書いていましたが、正解は「rel=’external nofollow’」というように、半角スペースで区切るのが正解のようです。例を書き直しました。
$url = “<a href=’$url’ rel=’external nofollow’>$author</a>”;
こんな感じでnofollowを追加。うん、これでコメントのリンクはnofollowになったみたいです。
ただ、自分のサイトだけこんなことしても、この対策をしていないサイトがある限りスパマーはこんなのお構いなしにスパムを送り続けると思うので、「コメントのリンクにはnofollowを付けるようにしよう」とサイト管理者に啓蒙しnofollowリンクなサイトを増やすとともに、サイトの宣伝をしたくて広告をどこかに頼もうと思っている人に対しては「トラックバックスパムを送っても効果がないんだよ、そんなサービスをやっている会社になんか金払っても無駄だよ」ということを啓蒙していかないとスパムは無くならないんですよね、たぶん。