お問い合わせ

プラグイン無し|WordPressサイトの外部リンクに一律 rel=nofollowを追加するスニペット

Man Sitting in Front of Three Computers

自サイトから外部サイトにリンクジュースを流さないために外部リンクには一律nofollowを付けよう!というのが一時期流行りましたね。

しかし、今ではnofollowでもGoogleはリンクをたどるようになって自動的に判断するので、いちいちnofollowを付けなくてもよい、ということになっています。

明らかなアフィリエイトリンクのrel="sponsored"以外は一律dofollowでおk?なのでしょうか?

しかし、本当にそうなのかは謎です。

目次

リンクを複数張る場合はnofollowの方が安全

リンク先が怪しいサイトの場合、そこに大量にリンクを張る際にはnofollowを付けておかないとスパムと判定される可能性もあります。

2022年10月にGoogleのスパムアップデートがありました。

Google は、リンクの売買も、広告やスポンサー活動を目的として行われる限り、ウェブ上での通常の経済活動の一環だということは理解しています。こうしたリンクは、rel="nofollow" 属性や rel="sponsored"属性を <a> タグに設定している限り、Google ポリシーに対する違反にはなりません。

https://developers.google.com/search/docs/essentials/spam-policies?hl=ja

SWELLはrel属性のフックが用意されていない

SWELLの外部ブログカードは、rel属性を指定できますが、初期値がrel="noopener noreferrer"となっています。

これはWordpress 5.1からtarget="_blank"が付加されているリンクに自動的にrel="noopener noreferrer"を付加する流儀に従ったものだと思います。

なお、Wordpress5.6から、rel="noopener"のみに変更されています。

SWELLにはrel属性を書き換えるフックは用意されていません。

外部リンクをrel=nofollowを追加するスニペット

これを変えられればいいのですが、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);

まとめ

dofollow / nofollowの論争が起きるのはSEO、つまるところGoogleの検索順位に影響がある可能性があるからです。

サイトのリンクに付けるrel属性のfollow/nofollowを付加する際の戦略は次のどちらかになるでしょう。

  • 一律 dofollowで一部をnofollowにする
  • 一律 nofollowで一部をdofollowにする

昨今、E-A-Tが重要視されており、引用元を明示するのは必須となっています。その意味ではリンク先に意味があることを示すdofollowが自然です。

また、リンク先に対するリンクジュースという意味では、dofollowであってもGoogleはリンク先を盲目的に評価するわけではないようですから、そちらもあまり気にしなくてよい。

そう考えるのであれば、一律dofollowの方が自分も相手もSEO評価は高いのではないかと思います。

一方で、一律dofollowにした際に、1ページ内に大量にリンク(本文と関係が無い)がある場合はSEOスパムと思われる可能性も否定できないので、アフィリエイトリンクの場合は、一律nofollowの方が安全だと思います。

Man Sitting in Front of Three Computers

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

目次