この記事の目次
target=”_blank” と rel の使い方とは
<a> の target はリンク先を開く場所、rel はリンク先との関係を表す属性です。外部サイトを新しいタブで開く target="_blank" はよく使われますが、rel="noopener" を付けるべきか、noreferrer や nofollow は何が違うのかで迷う人が多い分野です。
MDN は、target="_blank" を指定すると暗黙的に rel="noopener" と同じ挙動になる、と説明しています。つまり、現行ブラウザでは window.opener を使った昔のタブ乗っ取り攻撃(タブナビング)は既定で防がれます。
基本(構文・仕組み)
target の主な値です。
| 値 | 動き |
|---|---|
| _self | 現在のタブで開く(既定) |
| _blank | 通常は新しいタブで開く |
| _parent | 親フレームで開く |
| _top | 最上位のフレームで開く |
rel の主な値です。スペース区切りで複数指定できます。
| 値 | 意味 |
|---|---|
| noopener | 開いたページに window.opener を渡さない |
| noreferrer | Referer ヘッダーを送らない(noopener の効果も含む) |
| nofollow | 検索エンジンにリンクを辿らない・評価を渡さないよう伝える |
| sponsored | 広告・有償リンクであることを示す |
| ugc | 利用者が投稿したコンテンツ内のリンクであることを示す |
noopener と noreferrer はセキュリティ・プライバシーの値、nofollow・sponsored・ugc は検索エンジン向けの値です。目的が違うので、必要に応じて組み合わせます。
サンプルコード(実行結果つき)
<p><a id="a1" href="https://example.com/" target="_blank" rel="noopener noreferrer">外部(新規タブ)</a></p>
<p><a id="a2" href="https://example.com/ad" target="_blank" rel="sponsored noopener">広告リンク</a></p>
<p><a id="a3" href="/comment" rel="ugc nofollow">UGC</a></p>
アフィリエイトなど広告リンクは sponsored を付けます。コメント欄のリンクは ugc、運営が推奨できないリンクには nofollow を選びます。内部リンクを新しいタブで開く必要は通常ありません。
動作確認(検証環境と結果)
- 環境: Windows 11、headless Microsoft Edge 154.0.4258.53(Chromium系、
render.ps1)。 - 確認内容: 上記3つのリンクの
target、rel、relListをJSで取得。 - 結果: a1 は
target=_blank rel=noopener noreferrer、a2 はrelList=sponsored|noopener、a3 はtargetが空でrelList=ugc|nofollowでした。属性値は書いたとおりにDOMへ反映され、relListがトークン単位で扱えることを確認しました。 - 未検証:
rel無しのtarget="_blank"でwindow.openerがnullになること。これは MDN の記載に基づく説明で、この環境では実際の遷移先との通信は試していません。 - 追加確認: カンマ区切り
rel="noopener, noreferrer"はrelList=noopener,|noreferrerとなり、noopenerとして認識されませんでした。 - ログ:
C:Tempks2techtestsa-target-blank-rel.md。
target=”_blank” と rel の使い方の注意点
- 新しいタブで開くと、戻るボタンが使えず、利用者が戸惑う場合があります。開く前にリンクテキストへ「(新しいタブで開きます)」のように明記するとアクセシビリティが向上します。
noreferrerを付けると、リンク先の解析ツールで参照元が「direct」扱いになります。計測に影響する点に注意します。nofollowで評価を絞れるのは、検索エンジンがその値を尊重する範囲に限られます。targetに任意の名前(例:target="win1")を指定すると同名のタブを再利用します。意図せず上書きされないよう注意します。
target=”_blank” と rel の使い方でよくあるミス
target="_blank"を付けてrel="noopener"を付け忘れたと気にして、全リンクに過剰な指定をする(現行ブラウザでは暗黙で効きます)。rel="nofollow noreferrer"を広告リンクに使い、sponsoredを省く。rel="noopener, noreferrer"のようにカンマで区切る(HTMLの仕様はスペース区切りです。Google は検索向けの値についてはカンマ区切りも受け付けるとしていますが、ブラウザはカンマを区切りとみなしません。headless Edge でrel="noopener, noreferrer"のrelListを調べるとnoopener,とnoreferrerの2トークンになり、relList.contains("noopener")はfalseでした。スペースで書きます)。- JSの
window.open()で開く際にnoopenerを指定していない。 hrefが#のダミーのままで、targetだけ設定している。
ブラウザ対応・バージョン
target="_blank" による暗黙の noopener は、MDN の互換性データでは Chrome 88、Firefox 79、Safari 12.1 から採用されています(2026年10月時点。最新は MDN で確認してください)。それより古い環境では効かないため、旧ブラウザをサポートする場合は rel="noopener" を明示しておくと確実です。sponsored と ugc は検索エンジン向けの値であり、ブラウザの動作は変わりません。
target=”_blank” と rel の使い方のチェックリスト
- [ ] 新しいタブで開く必然性があるリンクだけに
target="_blank"を付けている。 - [ ] 旧環境も考慮するなら
rel="noopener"を明示している。 - [ ] 広告リンクに
sponsoredを付けている。 - [ ] ユーザー投稿のリンクに
ugcを付けている。 - [ ] 新しいタブで開くことを利用者に伝えている。
target=”_blank” と rel の使い方のFAQ(よくある質問)
Q. noopener と noreferrer はどちらを付ければよいですか。
A. セキュリティ目的なら noopener で十分です。参照元情報も渡したくない場合に noreferrer を追加します。
Q. nofollow は付けないとSEOに悪影響ですか。
A. 外部リンクのすべてに必要というわけではありません。広告・投稿など性質に応じて使い分けます。
Q. メールや電話のリンクにも target は必要ですか。
A. mailto: や tel: では通常不要です。
筆者の見解(target=”_blank” と rel の使い方)
私見では、外部リンクを新しいタブで開くかどうかは、利用者が元のページへ戻って作業を続けたい場面(資料の参照など)に限って選ぶのがよいと考えます。セキュリティ面は暗黙の noopener に任せつつ、テンプレートでは rel="noopener" を併記しておくと、古い環境にも安全側に倒せます。広告のラベル付けは、検索エンジンへの正直な申告として sponsored を忘れないことが大事です。
target=”_blank” と rel の使い方の関連項目
- 初心者必見!必要なタグはたったこれだけ!HTML超入門!
- {{html_id_class_howto}}
- セマンティックHTML
- HTMLコーダー(マークアップエンジニア)になる為に必要なスキルとは
- meta viewport
