という問題が起きているようですね。
アフィリエイトが発生しないというのは死活問題ですね。
原因はどうやら、アンカーリンク内のtarget="_blank"が関係しているようだと。でも正確には分からない…
なるほど、自分を含めてきちんと理解している人は少ないようです。
そこで、私なりに原因を解析してみました。
結論から言います。
アフィリエイトが発生しない?原因の2つ
- target="_blank"のみだとリンクが開けない環境がある(一部のAndorid OS + Chromeなど)
- rel="noreferrer"が設定されていると、ASPのシステム(成果やレポートなど)が正常に動作しない場合がある
です。これらについて詳しく説明しますね。
こんな方におすすめ
- target="_blank"関連でアフィリエイトが発生しないと言われる原因が分からない方
- 上記を解決したい方
- (おまけ)rel="nofollow noopener noreferrer"について意味を知りたい方
そもそもtarget="_blank"とは
「そもそもtarget="_blank"が分からない」という方がいるかもしれません。target="_blank"はリンクをクリックしたとき、新しいタブで開くようにするための設定です。
設定する場所は、リンクを貼るときのアンカータグ<a>内に適用します。下記を参考にしてください。
<a href="https://thunderblog.org/">同一タブで開く</a>
<a href="https://thunderblog.org/" target="_blank" rel="noopener">新しいタブで開く</a>
このようにアンカータグ内にtarget="_blank"を設定することで、新しいタブで開くようになります。
この場合、アフィリエイトのリンクが動作しない環境があるというのが問題となっていますよ。具体的に説明していきますね。
問題①target="_blank"のみだとリンクが開けない環境がある
target="_blank"のみを設定していると、一部の環境(Andorid OS + Chromeなど)でリンク先が開けないようです。
target="_blank"はリンク先を別タブで開くためのものですね。
別タブで開くことにより、自分のサイトにいつでも戻ってこれるので、離脱率を下げる役割があると言われています。
しかし、target="_blank"を設定することで、リンク先が開けなくては元も子もありません。
調べてみると、target="_blank"でも、rel="noopener"が設定されていれば、問題なくリンクを開けるようです。
そんなの付けていないよ!という方、ご安心ください。
WordPressをお使いなら、Wordpress4.7.4以降からrel属性にnoopenerとnoreferrerが自動付加されるようになりました。
target="_blank"があると、Wordpress4.7.4以降noopenerとnoreferrerが自動付加される
WordPressのバージョン4.7.4以降、target="_blank"があると、rel="noopener noreferrer"が自動付加されるようになりました。
これはnoopenerとnoreferrerを設定した方がセキュリティが安全であるためと思われます。
(noopenerとnorefefferについての説明は後述しているので、気になる方は最後の方をお読みください)
しかし、ここで新たな問題が発生します。
それが、
rel="noreferrer"が設定されていると、ASPのシステム(成果やレポートなど)が正常に動作しない場合がある
です。
アフィリエイトで問題となる原因2つを改めて整理しましょう。
アフィリエイトが発生しない?原因の2つ
- target="_blank"のみだとリンクが開けない環境がある(一部のAndorid OS + Chromeなど)
- rel="noreferrer"が設定されていると、ASPのシステム(成果やレポートなど)が正常に動作しない場合がある
1.target="_blank"の場合、rel="noopener"がないとリンクを開けない環境がある
については、Wordpress4.7.4以降、rel="noopener noreferrer"が自動付加されるようになったので、解決される問題となりますね。
しかし、rel="noreferrer"が追加付与されることで、新たな問題が発生します。
それが、rel="noreferrer"があると、ASPのシステムが正常に動作しない場合があるという事です。
問題②rel="noreferrer"があると、ASPのシステム(成果やレポート)が正常に動作しない場合がある
、rep="noreferrer"があると、アフィリエイトの成果やコンバージョンレポートなどが正常に動作しない場合があります。
WordPress4.7.4以降、target="_blank"を設定すると、rel="noopener noreferrer"が自動付加されるため、ASPのシステムが正常に動作しないという状態が発生するわけです。
ここで、
と気になる方がいると思います。
WordPress4.7.4以降でもrel属性にnoopenerとnoreferrerが付く条件がまちまち
調べたところ、Wordpress4.7.4以降にrel属性にnoopnerとnoreferrerが自動付加されるようになりましたが、バージョンによって"noreferrer"が付いたり付かなかったりするようです。
条件については下記の表をご覧ください。
WordPressのバージョン | noopener | noreferrer |
---|---|---|
4.7.4 | 付く | 付く |
4.8以降 | 付く | 付かない |
5.0以降(Gntenbergを使用) | 付く | 付く |
5.0以降(Classic Editorを使用) | 付く | 付かない |
上記のように、WordPressのバージョンによってrel属性にnoreferrerが付いたり付かなかったりを繰り返しているようです。
成果が発生したり、しなかったりと人によってまちまちなのは、上記のようにnoreferrerが付いている記事と付いてない記事があるのかもしれませんね。
rel="noreferrer"があっても、ほとんどのASPでは問題ないが、一部の広告主やレポートで問題がある可能性がる
rel="noreferrer"があっても、ほとんどのASPでは問題ないようです。
rel="noopener noreferrer"が自動付加されることで成果が発生しなくなるのかを各ASPに問い合わせた方がいらっしゃるので、リンク貼らせていだきます。
WordPressのrel=”noopener noreferrer”自動付加によって起きる問題について各ASPに問い合わせてみた
- リファラーが無くても、殆どのASPの成果に影響はない
- 広告主によっては成果を認めない可能性もある
- リファラーがないと、レポートに正しく反映されないことがある
[引用]WordPressのrel=”noopener noreferrer”自動付加によって起きる問題について各ASPに問い合わせてみた
rel="noreferrer"が設定されていても、ほとんどのASPでは成果に影響はないようですが、広告主によっては成果を認めない場合や、コンバージョンレポートが正しく動作しない可能性があるということですね。
とはいえ、広告主次第で成果が認められない、レポートが正常に動作しないというのは困りますね。
そこで、私なら簡単に解決するために下記のような対策を施します。
アフィリエイトが発生しない問題の解決策
まずは原因を整理しましょう。
アフィリエイトが発生しない?原因の2つ
- target="_blank"のみだとリンクが開けない環境がある(一部のAndorid OS + Chromeなど)
- rel="noreferrer"が設定されていると、ASPのシステム(成果やレポートなど)が正常に動作しない場合がある
原因①については、target="_blank"で開けない一部の環境でもrel="noopener"が設定されていれば開けるようになります。
WordPress4.7.4以降をお使いであれば、target="_blank"の記載があれば、rel="noopener noreferrer"が自動付加されるので、問題解決です。
しかし問題となるのが、rel="noreferrer"があると、レポートが正常に集計できない、広告主によって成果が認められない可能性があるという点です。
しかも、rel="noreferrer"で問題が発生するかどうかはASPによるというのが厄介です。
そのため、各ASPへは下記の順番で問い合わせると良いでしょう。
step
1rel="noreferrer"でもシステムが正常に動作するか?(動作するなら何もしなくてOK!)
step
2rel="noreferrer"があるとシステムが正常に動作しない場合、target="_blank"とrel="noreferrer"を削除しても良いかを確認する
と思いますよね?
その2つを削除することが、私が考える1番簡単な方法かなと思うからです。
target="_blank"やrel="noreferrer"で問題があるときに、正常に動作させる解決策(個人の意見)
target="_blank"やrel="noreferrer"があることで問題が発生するときの解決策として、私が考える1番簡単な方法は下記です。
target="_blank"で正常に動作させるための簡単な解決策
- target="_blank"を削除
- rel="noreferrer"を消す(nofollowは残す、noopenerはどちらでも)
これは個人が考える最適解なので、必ずしも正解とは言えません。
ASPさんによっては、コード改変にあたる可能性があります。
必ずASPさんに確認し、ASPさんから対策方法が提案されたらそれに従ってください。
その前提で説明しますね。
まずは根本原因であるrel="noreferrer"の削除ですが、その前にtarget="_blank"を削除する必要があります。
と思いますよね?
ですが、WordPress4.7.4から、target="_blank"があると自動でrel="noopener noreferrer"が付加されるという点を忘れないでください。
そのため、noreferrerだけ消しても、target="_blank"がある以上は復活します。
ですので、まずはtarget="_blank"を削除します。
次に、rel属性からnoreferrerを削除します。
なお、rel="noopener"については、target="_blank"に関する内容なので、残しておく意味はなくなります。
ですが、残しておいても弊害はないと思うので、消すのが面倒ならば、target="_blank"とrel="noreferrer"だけ削除すれば良いでしょう。
target="_blank"を消す弊害は別タブで開かない&コード改変にあたる?
target="_blank"を消す弊害が2つあります。
target="_blank"を消す弊害
- リンク先が別タブではなく、同一タブで開く
- アフィリエイトコードの改変にあたる可能性がある
「1.リンク先が別タブではなく、同一タブで開く」については、外部リンクは別タブで開くようにと昔から言われていますね。
別タブで開くことで、自分のサイトをタブに残し、いつでも戻れるようにするというのが目的です。
ですが、リンクが開けなくてアフィリエイトが発生しなくなったら困ります!
離脱率がどうこう言っている場合ではありません。
それに、あなたは調べ物をするときにスマホで検索しませんか?
そして、スマホで調べているときに、わざわざ別タブで戻ります?
それを考えると、スマホでインターネットを閲覧することが多くなった世の中、別タブで開く必要性は下がってきているのかなと私は思います。
続いて、2.アフィリエイトコードの改変にあたる可能性がある
について。
こちらはすみません。
各ASPさんによって異なると思うので、各ASPさんに確認した上でご対応くださいm(_ _)m
これが私の考える解決策となります。
改めてまとめますね。
アフィリエイトが発生しない?原因の2つ
- target="_blank"のみだとリンクが開けない環境がある(一部のAndorid OS + Chromeなど)
- rel="noreferrer"が設定されていると、ASPのシステム(成果やレポートなど)が正常に動作しない場合がある
上記を解決するため、各ASPに問い合わせる内容はこちら。
対策するために各ASPに確認すること
rel="noreferrer"でもシステムが正常に動作するかを確認する(動作するなら何もしなくてOK)
rel="noreferrer"があるとシステムが正常に動作しない場合、target="_blank"とrel="noreferrer"を削除しても良いか?
もし、rel="noreferrer"があるとシステムが正常に動作しないと言われた場合、私が考える一番簡単な解決策がこちら。
target="_blank"で正常に動作させるための簡単な解決策
- target="_blank"を削除
- rel="noreferrer"を消す(nofollowは残す、noopenerはどちらでも)
なお、ここから先はrel="noopener noreferrer"って何?という方のための補足説明です。
それぞれの意味が気になる方のみご覧ください。
【参考】rel属性のnofollow、noopener、noreferrerについて
アンカーリンク内で下記のような文字を見たことがあると思います。
rel="nofollow noreferrer noopener"
なんだ!?よく分からない!という方も多いのでは?
そこで、アンカーリンクのrel属性の下記について説明します。
アンカーリンクでよく使うrel属性3つ
- nofollowはリンク先へロボットが巡回しないようにする
- noopenerは別タブで開いた時にタブから勝手に操作されないようにする
- noreferrerはリンク先へユーザーIDなどを渡さないようにする
【参考】nofollowはリンク先へロボットが巡回しないようにする
nofollowは、ロボットに対してこの先のリンクは辿らなくて良いですよと伝える役割をしています。
自分のブログやサイト内へ誘導する内部リンクであれば、関連記事としてロボットへ知らせることができるのでnofollowを設定する必要はありません。
しかし外部リンクの場合、nofollowを設定しておかないと、外部リンクも自分のサイトと関係あるとロボットが判断してしまいます。
外部リンクが悪質なサイトだった場合、リンクを貼っている自分のサイトまで影響を受けてしまいますし、その逆もしかりです。
そのため、外部リンクを貼ったサイトで何かしらの影響があると判断したときには、rel="nofollow"を設定することを検討してくまださい。
【参考】noopenerは別タブで開いたタブから勝手に操作されないようにする
rel="noopener"は別タブで開いたとき、「window.opener」という機能を無効にするためのものです。
Javascriptはブラウザ上で動くプログラムで、アニメーションを表示したり、私が紹介しているHTMLタグ出力ツールが作れたりと便利です。
ですが、それを利用して悪いことをする人もいます。
「window.opener」は別タブで開いたタブから、開く前のタブを操作出来るという機能です。
これにより、開かれたタブから危険なプログラムを動作させるといった事が可能になるわけです。
これはセキュリティ上問題があるので、target="_blank"を設定したら、rel="noopener"は必ず設定するようにしましょう!
【参考】noreferrerはリンク先へユーザーIDなどを渡さないようにする
rel="noreferrer"は開いたリンク先へユーザーIDなどの情報を渡さないようにします。
referrer(リファラー)は例えば、どのサイトからアクセスがあるか調べるときなどに利用します。
例えば、
「url?number=1」なら1番のサイトから、
「url?number=2」なら2番のサイトからアクセスされたというような形式です。
このようなときでも、rel="noreferrer"とすることで、リンクをクリックしてもリンク元の情報をサーバーに送信しないようになります。
しかし、このシステムを採用しているサービスがあると正常に動作しなくなるというのが今回の原因の発端となりますね。