(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”を有効]という項目があります。
デフォルトではチェックが入っているので、ここではチェックを外します。
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”を有効]という項目があり、デフォルトではチェックが入っているので、ここではチェックを外します。
「テキスト」エディタで記述した後、一度「ビジュアル」エディタに切り替えて、再度「テキスト」エディタに戻して記述部分を見てみました。
・内部リンク 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”]にチェックを入れます。
・内部リンク 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”」あるなしでの設定分けもできるプラグインがあったら、また紹介したいと思います。