結局のところ
「target=”_blank”」は外した方がいいのか?
noopener,noreferrer
最新のsponsoredについても解説!
2019年8〜9月頃に各所で取り上げられるようになった「target=”_blank”」問題。
そもそも2018年頃から「target=”_blank”」のセキュリティ問題は話題にあがってました。
アフィリエイターの中で「target=”_blank”」の脆弱性についてよく知られるようになったのが2019年夏頃で大手ASPも2019年9月頃からこの「target=”_blank”」問題に対処するようになりました。
各所で「target=”_blank”」への対応はもう完了していますが、「target=”_blank”」問題って何?
アフィリエイトASPから何だか連絡来てたけどスルーしちゃった。という方もいらっしゃるんじゃないでしょうか。
2020年に入り早速Googleのアルゴリズム変動がありました。
Googleアップデートの影響で主サイトの順位低下に苦しんでいる現在、何かやれることはないか?と模索している中で、ひと段落したと思われている「target=”_blank”」問題について再考し、再対処しようと思いこの記事にまとめました。
まずは基本的なことからおさえていきましょう。
目次
「target=”_blank”」について
基本的な使い方
target="_blank"は下記のようにリンク(aタグ)につけることでリンク先を別タブで開くことができます。
<a href="URL" target="_blank">○○○</a>
自分の運営サイトと別に外部リンクが開くことの利便性と、運営サイトの滞在時間が増えることでGoogleからの評価が上がるとされていました。
深刻な脆弱性
しかし2018〜2019年にtarget="_blank"には深刻な脆弱性があることが判明。
「target=”_blank”」を介して別タブで開いた場合、「遷移前のページ」と「リンク遷移後のページ」の2ページが開くことになりますが
問題はtarget="_blank"で開いたリンク先のページから元ページにアクセスしたり、元ページの URL を変更したりすることができるということです。
どうやってそんなことができるのか?というとリンク先から元ページにアクセスするにはjavascriptのwindow.opener
を使用すれば可能となりまた元ページのURLもwindow.opener.location = newURL
を使用することによって簡単にできてしまうようです。
この脆弱性によりtarget="_blank"で開く別窓リンクはフィッシング詐欺などに使われやすくセキュリティの脆弱性があるとされています。
脆弱性に伴ってtarget="_blank"があるリンクは一部の端末とブラウザでクリックしても遷移しないという現象が起きていたようです(Androidの一部ブラウザ)
脆弱性対策
このように「target=”_blank”」の脆弱性が判明し各所で対処法が検討されたことが、「target=”_blank”」問題といわれています。
そして「target=”_blank”」のセキュリティ対策としてrel="noopener"を付与するようになりました。
Googleはrel="noopener"を推奨
Googleではリンクを別窓を開く時には「target=”_blank”」とともに属性のrel="noopener"を付与することを推奨しています。
rel="noopener"って何!?はすぐ下記で解説しています。
またGoogle ChromeとOpera以外のブラウザはrel="noopener"に対応していないため、rel="noreferrer"を使用します。
noreferrerについてもnoopenerと一緒に解説しています。
target="_blank"によるパフォーマンスの低下
セキュリティの問題とは別に、target="_blank"を使用するとパーフォマンスが低下する可能性があるとも指摘されています。
target="_blank"を使用して任意のページから別のページにリンクしている場合、リンク元のページとリンク先のページは同じプロセスで動作します。
そのため、リンク先のページで負荷の高い JavaScript が実行されていると、リンク元のページのパフォーマンスが低下する恐れがあるとされています。
次は、target="_blank"の対処法としてのrel="noopener" rel="noreferrer"についてです。
「rel=”noopener noreferrer”」について
Googleではリンクを別窓を開く時には「target=”_blank”」とともに属性のrel="noopener"を付与することを推奨しています。
と書きましたが
noopnerとは一体何でしょうか。
rel="noopener"とは
rel="noopener"をリンクタグに付与すると「新しく開いた別タブの遷移先から、window.openerを参照できなくなる」ようになります。
rel="noopener"を付与することによってリンク先から、リンク元のページの不正操作ができなくなります。No-opener つまり「window.opener」が使えないようにする指示です。
target="_blank"の脆弱性をrel="noopener"という設定で補うということです。
このことから
rel="noopener"rは、target="_blank"とセットで使うもので、target="_blank"を使わない時はrel=noopenerは不要です。
実際のリンクは下記のようになります。
<a href="〜" target="_blank" rel="noopener">リンク</a>
rel="noreferrer"とは
rel="noreferrer"というのも出てきましたね。
rel="noreferrer"は、参照先に対して参照元のリンクを渡さないようにすることができます。
rel="noopener"に対応していないブラウザへの対処方法として、noreferrerと並んで下記のように記述されます。
<a href="〜" target="_blank" rel="noopener noreferrer">リンク</a>
注意点は、rel="noreferrer"がついているとアフィリエイトにおいてはどこのリンクをクリックしたのかというリファラが取れなくなります。
ただtarget="_blank"のセキュリティ対処としては rel="noopener noreferrer"と記述した方が良いでしょう。
Wordpressの最新バージョンでも別窓リンクにした際にrel="noopener noreferrer"が自動付与されます。
冒頭に書いたように「target=”_blank”」問題に対して大手ASPでは対処がされています。
「target=”_blank”」を削除したASPや属性を追記したASP、様々です。
アフィリエイトASPのtarget=”_blank”への対応
afb
2019年9月4日より新規作成リンクから「target=”_blank”」を削除
これまでのtarget=”_blank”入りのリンクを使うことも可能だが、target=”_blank”をリンクコードに含める場合、今後はrel属性にnoopenerの付与を推奨。これについては改変に当たらないとする。
A8.net
最新リンクへの対応
・target="_blank"は削除
過去リンクへの対応
「aタグ」の一部の属性の追加に関して、各個人の判断にて対応する事については、「広告リンクコードの改変行為には当たらない」とした。
・target="_blank"の後にrel=”noopener noreferrer”を追加してもOK
・target="_blank"を削除してもOK
A8.netの場合
rel=”noreferrer” を追加
「改変にはあたらない」が、
「リファラ情報が送信されなくなる」=「リファラが取れなくなる」
target=”_blank” を追加
「改変にはあたらない」が、
特定ブラウザの仕様変更に伴い「正しく遷移出来ないなどの影響を受ける可能性がある」
id=”name” class=”classname” を追加
「改変にはあたらない」
レントラックス
最新リンクへの対応
・rel=”noopener”が追加される
過去に取得したリンク
・rel=”noopener”を追加してもOK
felmat
最新リンクへの対応
・noopenerを追加
過去に取得したリンク
・target="_blank"の後にrel=”noopener noreferrer”を追加してもOK
・target="_blank"を削除してもOK
バリューコマース
・2019年12月18日以降target="_blank"は削除
過去に取得したリンク
以前までに発行した広告コードの形式については、順次差し替え対応推奨。「target="_blank"」の削除については広告タグ改変による規約違反にはあたらない。
もしもアフィリエイト
最新リンクへの対応
・9月12日にtarget="_blank"を削除
大手では大体対処されていますが、noreferrerをつけていないASPもあります。
この辺りはリファラが取れなくなるからでしょう。
中小ASPはそもそも「target=”_blank”」問題に全く対処していないところもあります。
noopenerやnoreferrerの属性追記なしで別窓設定の「target=”_blank”」を使い続けるのは危険ですし、Googleからの評価も下がりかねません。
ただリンク改変を禁止している場合もありますので、対処していないASPに関してはかなり悩ましいですし、セキュリティに対処していないASPは思い切ってやめるか、それなりの報酬を獲得しているならまずはカスタマーに連絡するか、グレーな部分として追記してリンク遷移や成果をある程度見守ってみるか、、、
になるでしょうね。
最後に結局のところ「target=”_blank”」はどう対処したらいいのか?についてまとめました。
target="_blank"への2つの対応方法
結局のところリンクを別窓で開くtarget="_blank"をどうしたらいいのかというと下記の2つの方法に集約されます。
- target="_blank"を削除する
- target="_blank"を残したまま属性にrel=”noopner noreferrer”を付与させる
1. target="_blank"を削除する
メリットデメリット
リンクタグの属性指示target="_blank"を削除することで同窓で開く設定になります。リンクをクリックすると今見ている画面が切り替わるということです。
つまりは運営サイトであればリンククリックで離脱が発生するわけですよね。
target="_blank"を削除することでの考えられるメリットデメリットが下記です。
【target="_blank"を削除することでの考えられるメリットデメリット】
- セキュリティの確保
- これまで影響を受けていたアフィリエイト収益が回復する可能性も
- サイトの滞在時間が減少・離脱率が上昇するのでGoogleの評価は下がる可能性も
target="_blank"を削除した時のrel属性指示はどうすれは良いのでしょうか。
属性指示
target="_blank"を削除する場合はrel=noopenerは不要です。リンクの種類によって付与する属性が変わっています。
広告リンク | rel=”nofollow sponsored noreferrer” もしくは rel=”nofollow sponsored” |
ユーザー作成リンク | rel=”ugc noreferrer” |
上記以外のリンク (信頼性高い) | rel=”noreferrer” |
上記以外のリンク (信頼性低い) | rel=”nofollow noreferrer” |
noreferrerは記事にもあったようにリンク先にリファラを渡すかどうかなので、target="_blank"を削除する場合はお好みで設定してください。
信頼性が高いとはいえないサイトにはnoreferrerしておいた方が安全かなと思います。
sponsoredとugc
rel属性sponsoredとugcについては2019年9月に登場した新しい属性です。
これまでリンクをクロールに巡らせないための指示はnofollowでしたが、nofollowが細分化された格好です。
広告宣伝などの有料リンクには新しいrel属性sponsoredを
コメントやフォーラムなどのユーザー作成リンクにはrel属性ugcを使うようにGoogleが推奨しています。
nofollowの意味合い変化
nofollowについては今まで自分の運営サイトの評価を遷移先リンクに渡してしまうからと全ての外部リンクにnofollowを付与している方も多かったのですが、2019年9月に新しいrel属性sponsoredとugcが登場するとともに、nofollow属性はGoogleに「hit(ヒント)」として扱われるようになりました。
つまり、これまではnofollow属性が付与されているリンクは絶対にクロールしなかったGoogleですが、今後はクロールするかもしれないということです。
nofollowを命令ではなくヒントに変えた理由は、信頼性の高いサイトにまでnofollowがつけられている現状を鑑みてです。
そのため、今後は全ての外部リンクにnofollowをつけるというやり方よりも、信頼性を見極めてnofollow属性を付与することで本当にクロールされたくないサイト(そんなサイトを参考サイトとして紹介するか?っていう話もありますが)をnofollowsにしてもらうという方が良いでしょう。
次はtarget="_blank"を残す場合のリンクの書き方です。
2.target="_blank"を残す
メリットデメリット
リンクはやはり別窓で開きたいといった場合は、target="_blank"を残しましょう。
target="_blank"を残すことでの考えられるメリットデメリットは下記。
【target="_blank"を残すことでの考えられるメリットデメリット】
- セキュリティへの若干の不安が残る
- アフィリエイト成果に影響がある可能性
- サイト滞在時間や離脱率はこれまで通りで維持できる
rel=noopenerをつければtarget="_blank"へのセキュリティ対策はされているとしていますし、Wordpressでは別窓設定にすれば「rel="noopener noreferrer"」が自動付与されるようになっています。
また、アンドロイド端末でtarget="_blank"を付与されているアフィリエイトリンクが開かないといったtarget="_blank"問題もrel=noopenerをつけることで解決できるとされていますが
target="_blank"を残すことでのセキュリティとアフィリエイト成果への若干の不安は残ります。
その一方でサイト滞在時間の減少や離脱率の上昇が起こらないのでSEO的にはtarget="_blank"を残した方がいいのでは?という見方もあります。
属性指示
target="_blank"を残す場合はrel=noopenerは必須です。target="_blank"を残す場合はnoreferrerも入れます。
ChromeとOpera以外ではnoopenerに未対応なので、noreferrerも付与しておきましょう。
noopenerとnoreferrerはセットで使うと覚えておきましょう。
広告リンク | rel=”nofollow sponsored noopener noreferrer” |
ユーザー作成リンク | rel=”ugc noopener noreferrer” |
上記以外のリンク (信頼性高い) | rel=”noopener noreferrer” |
上記以外のリンク (信頼性低い) | rel=”noopener nofollow noreferrer” |
繰り返しになりますがWordpressでは別窓設定で「rel="noopener noreferrer"」が自動付与されます。
target="_blank"問題まとめ
target="_blank"の対処方法ついては下記の2つの方法がありました。
- target="_blank"を削除する
- target="_blank"を残したまま属性にrel=”noopner noreferrer”を付与させる
どちらの方法をとるのか?
ということなのですが
そもそもリンク先を同じページで開かせるのか、別ページで開かせた方がいいのか、という問題もありますよね。
基本的には
- 内部リンク→同窓設定
- 外部リング→別窓設定
がユーザーにとって良いとされていますが、この限りではありません。
ページ上部であれば読み始めなので内部リンクであっても別窓設定をした方がユーザーにとってはいいでしょう。
「ちょっとリンク先を覗いてみたかっただけ」というのはよくあることです。
それに一旦離脱してしまうと、元のページに戻る可能性はかなり低くなります。
そのため一概に内部リンクはtarget="_blank"を全て削除していい!
外部リンクはtarget="_blank"を残してrel=”noopner noreferrer”を付与しよう!
といえないわけです。
ただ気になる点が1つ、「target=”_blank”」の脆弱性がアフィリエイター間で「target=”_blank”」問題と呼ばれるようになった2019年夏に、「target=”_blank”」をアフィリエイトリンクから外したら、成果が改善された!「target=”_blank”」のせいで成果が減少していたのでは?なんていわれました。
これは気になることろです。
自分の運営サイトでは、実験的に特定のプログラム、特定のページで「target=”_blank”」を外してみようかなと考えています。