プラグイン無し|WordPressサイトの外部リンクに一律 rel=nofollowを追加するスニペット
自サイトから外部サイトにリンクジュースを流さないために外部リンクには一律nofollowを付けよう!というのが一時期流行りましたね。
しかし、今ではnofollowでもGoogleはリンクをたどるようになって自動的に判断するので、いちいちnofollowを付けなくてもよい、ということになっています。
明らかなアフィリエイトリンクのrel="sponsored"
以外は一律dofollowでおk?なのでしょうか?
しかし、本当にそうなのかは謎です。
この記事では、外部サイトのdofollow/nofollowを一律設定できるカスタマイズとスニペットをご紹介します。
外部リンクにアイコンをつけて、外部リンクとわかるようにしたい場合は、以下のカスタマイズの記事をご参照ください。
外部リンクの張りすぎはGoogleからスパムと見なされる可能性あり
リンク先が怪しいサイトの場合、そこに大量にリンクを張る際にはnofollowを付けておかないとスパムと判定される可能性もあります。
2022年10月にGoogleのスパムアップデートがありました。
Google は、リンクの売買も、広告やスポンサー活動を目的として行われる限り、ウェブ上での通常の経済活動の一環だということは理解しています。こうしたリンクは、
https://developers.google.com/search/docs/essentials/spam-policies?hl=jarel="nofollow"
属性やrel="sponsored"
属性を<a>
タグに設定している限り、Google ポリシーに対する違反にはなりません。
SWELLのrel属性は逐一指定しなければならない
SWELLの外部ブログカードは、rel属性を指定できますが、初期値がrel="noopener noreferrer"
となっています。
初期値から変更したい場合は、リンクを張るたびにリンクのrel属性を指定し直さなければなりません。
これはWordpress 5.1からtarget="_blank"
が付加されているリンクに自動的にrel="noopener noreferrer"
を付加する流儀に従ったものだと思います。
なお、Wordpress5.6から、rel="noopener"
のみに変更されています。
外部リンクをrel=nofollowを追加するスニペット
rel属性の初期値をフックで変更できればいいのですが、SWELLには目ぼしいフックも無いようです。
外部リンクを判定してrel属性を書き換えるスニペットをご紹介します。
このスニペットは、プラグインも使わず、rel属性が既にあっても上書きできるので、かなり使えます。
$follow_list
に$_SERVER['SERVER_NAME']
で自サイトを登録しているので、rel属性の書き換え対象を外部サイトだけにできます。
更に、外部サイトでも除外したいものを追加したい場合、一律nofollowにする中で、特定のドメインだけdofollowにも対応できます。
function dont_follow_links( $html ) {
// follow these websites only!
$follow_list = array(
$_SERVER['SERVER_NAME'], // my domain
'google.com',
'others.com',
);
$html = preg_replace_callback('%(<a\s*[^>]*href="https?://(?:(?!(?:(?:www\.)?'.implode('|(?:www\.)?', $follow_list).'))[^"]+)"[^>]*)>%', function($m) {
$nofollow = preg_replace('%\srel\s*=\s*(["\'])(?:(?!\1).)*\1(\s|$)%', ' ', $m[1]).' rel="nofollow noopener">';
return $nofollow;
},
$html);
return $html;
}
add_filter('the_content','dont_follow_links',9999);
参考:プラグインを使う場合
この記事と同じようなことができるプラグインとしては2つあります。
External Linksが人気で更新され続けています。
まとめ
dofollow / nofollowの論争が起きるのはSEO対策、つまるところGoogleの検索順位に影響を及ぼす可能性があるからです。
サイトのリンクに付けるrel属性のfollow/nofollowを付加する際にどちらにすべきかはおおむね次のどちらかに統一したうえで一部例外的に処理するのが一般的でしょう。
- 一律 dofollowで一部をnofollowにする
- 一律 nofollowで一部をdofollowにする
昨今、E-A-Tが重要視されており、引用元を明示するのは必須となっています。その意味ではリンク先に意味があることを示すdofollowが自然です。
また、リンク先に対するリンクジュースという意味では、dofollowであってもGoogleはリンク先を盲目的に評価するわけではないようですから、そちらもあまり気にしなくてよい。
そう考えるのであれば、一律dofollowの方が自分も相手もSEO評価は高いのではないかと思います。
一方で、一律dofollowにした際に、1ページ内に大量にリンク(本文と関係が無い)がある場合はSEOスパムと思われる可能性も否定できないので、アフィリエイトリンクの場合は、一律nofollowの方が安全だと思います。
コメント