【Simplicity2】WordPressにおけるrel=”noopener noreferrer”の自動付加パターンの切り分け

WordPress
(2018年5月ごろの記事です)
Wordpressが4.7.4にバージョンアップして、記事中の外部リンクに「target=”_blank”(リンクを新しいタブで開く)」が指定されていると、そのリンクに対して「rel=”noopener noreferrer”」属性が自動的に付加されるようになりました。

「rel=”noopener noreferrer”」属性が付加されると、参照元(リファラ)が取得できなくなるために、アフィリエイトASP等によっては、成果のカウントができなくなる可能性があります。

rel=”noopener noreferrer”が自動付加されない?

ということで、影響が出るURLを調べてみようと、Google Chromeブラウザでページのソースを見てみました。

ところが、当ブログの環境では「rel=”noopener noreferrer”」属性が自動付加されていませんでした(?)。

「rel=”noopener noreferrer”」属性自動付加の対策を取る前の段階で、ある意味つまずいてしまったので、この記事では、当ブログの環境における自動付加の挙動パターンを切り分けてみました。

当ブログにおけるWordPress環境

当ブログのWordPress環境で、「rel=”noopener noreferrer”」属性の付加に影響すると思われるものは下記の3つです。

・ブログ本体:WordPress バージョン 4.7.5–ja
・テーマ:Simplicity2 バージョン 2.5.5a
・プラグイン:WP External Links (nofollow new tab seo) バージョン 2.1.1
(それぞれバージョンは、2017/05/19時点の最新版)

「WP External Links (nofollow new tab seo)」は、外部リンクや内部リンクにも、「rel=”noopener noreferrer external”」属性を自動付加することができるプラグインです。
当ブログでは、このプラグインを使って、外部リンクには「noopener noreferrer」属性を付加しています。
今回のWordpress 4.7.4へのバージョンアップで、WordPress本体の機能で自動付加されるようになったということで、「WP External Links (nofollow new tab seo)」プラグインを停止させたところ、自動付加されなかったので当記事を書くに至った、という流れです。

パターン分け

「WordPress本体」「Simplicity2テーマ」「WP External Links (nofollow new tab seo)プラグイン」、それぞれの挙動を確認するために、パターン分けをします。

1.WordPress本体のみ

2.Simplicity2の設定項目をオフにする
テーマに「Simplicity2」を設定している状態で、[WordPress管理画面]-[外観]-[カスタマイズ]-[その他]と辿ったところに[rel=”noopener noreferrer”を有効]という項目があります。
デフォルトではチェックが入っているので、ここではチェックを外します。
Simplicity2

3.WP External Links (nofollow new tab seo)で自動付加設定にする
「WP External Links」でプラグインを検索すると、似たような名前のプラグインが複数表示されます。
当ブログでは、上記のプラグインを使用しています。

上記の条件ごとに、それぞれ下記4つのリンクで「rel=”noopener noreferrer”」属性が自動付加されるかどうかを検証します。
WordPressのテキストエディタで記述して、記事を投稿します。
WindowsパソコンのGoogle Chromeブラウザで「ページのソースを表示」して確認します。

・内部リンク target=”_blank” なし
・内部リンク target=”_blank” あり
・外部リンク target=”_blank” なし
・外部リンク target=”_blank” あり

1.WordPress本体のみ

WordPress本体のみの場合です。
「rel=”noopener noreferrer”」属性が自動付加される場合は「○」、されない場合は「×」です。

・内部リンク target=”_blank” なし:×

・内部リンク target=”_blank” あり:×

・外部リンク target=”_blank” なし:×

・外部リンク target=”_blank” あり:×

すべて付加されませんでした。
ただ、「テキスト」エディタで記述した後、一度「ビジュアル」エディタに切り替えて、再度「テキスト」エディタに戻して記述部分を見ると、下記の通り、自動付加されていました。

・内部リンク target=”_blank” なし:×

・内部リンク target=”_blank” あり:○

・外部リンク target=”_blank” なし:×

・外部リンク target=”_blank” あり:○

「target=”_blank”」があれば、外部リンクだけでなく内部リンクにも付加されました。
また、記事投稿前のエディタ上で自動付加されました。
もしかしたら、WordPress 4.7.4以降の自動付加機能は、「ビジュアル」エディタで記述すると、記事投稿前のエディタ上の原文段階で「rel=”noopener noreferrer”」属性が自動付加される、というもののようです。
エディタ上の原文には記述がなくても、Web公開された記事上には自動付加される、と思っていました。

2.Simplicity2の設定項目をオフにする

[WordPress管理画面]-[外観]-[カスタマイズ]-[その他]と辿ったところに[rel=”noopener noreferrer”を有効]という項目があり、デフォルトではチェックが入っているので、ここではチェックを外します。
Simplicity2

「テキスト」エディタで記述した後、一度「ビジュアル」エディタに切り替えて、再度「テキスト」エディタに戻して記述部分を見てみました。

・内部リンク target=”_blank” なし:×

・内部リンク target=”_blank” あり:×

・外部リンク target=”_blank” なし:×

・外部リンク target=”_blank” あり:×

全項目で、自動付加されませんでした。
「Simplicity2」の設定機能で、「WordPress本体」の自動付加機能をオフにできるようです。

3.WP External Links (nofollow new tab seo)で自動付加設定にする

「WP External Links (nofollow new tab seo)」は、外部リンクや内部リンクにも、「rel=”noopener noreferrer external”」属性を自動付加することができるプラグインです。

「WP External Links (nofollow new tab seo)」プラグインを有効化して、[WordPress管理画面]-[External Links]から、各設定ができます。
ここでは[External Links]タブ項目の[Also add to rel attribute:]で、[Add “noopener”]と[Add “noreferrer”]にチェックを入れます。
External-Links

・内部リンク target=”_blank” なし:×

・内部リンク target=”_blank” あり:×

・外部リンク target=”_blank” なし:○

・外部リンク target=”_blank” あり:○

このプラグインで自動付加設定をすると、エディタ上の原文に「rel=”noopener noreferrer”」属性の記述がなくても、Web上に公開された記事には自動付加されます。
Wordpressが4.7.4にバージョンアップする前やテキストエディタのみで書いた記事で、エディタ上の原文に「rel=”noopener noreferrer”」属性が付加されていない投稿済みの記事にも、Web上の記事には自動的に付加されるので、一番実用的ではあります。

ただ、「target=”_blank”」のあるなしでの設定分けができないため、やや使いにくいです。

まとめ

・「WordPress」本体による「rel=”noopener noreferrer”」属性の自動付加は、「ビジュアル」エディタで記述した場合に、「target=”_blank”」の付いた内部リンクと外部リンクの両方に、エディタ上の原文の段階で自動付加される。

・「Simplicity2」テーマの設定で、上記機能をオフにできる。

・「WP External Links (nofollow new tab seo)」プラグインで自動付加設定をすると、エディタ上の原文に「rel=”noopener noreferrer”」属性の記述がない記事にも、Web上に公開された記事には自動付加される。ただし、「target=”_blank”」のあるなしでの自動付加設定分けはできない。

「target=”_blank”」のあるなしでの自動付加設定分けができれば、「WP External Links (nofollow new tab seo)」プラグインで、投稿済みの過去記事も含めて、全記事の設定がうまくできると思われますが、惜しいところです。

もしできるならば、下記のように設定します。
・外部リンクで「target=”_blank”」があるURLには自動付加する。
・外部リンクで「target=”_blank”」がないURLには自動付加しない。
そして、「rel=”noopener noreferrer”」属性を外したいアフィリエイトASP等の外部リンクURLからは、「target=”_blank”」をエディタ上の原文から手動で外します。

こうすれば、今回のWordPress 4.7.4バージョンアップが意図する「外部リンクで「target=”_blank”」が付いたURLへの「rel=”noopener noreferrer”」属性自動付加によるセキュリティアップ」が、投稿済みの記事も含めた全記事に適用されます。

もし、「target=”_blank”」あるなしでの設定分けもできるプラグインがあったら、また紹介したいと思います。