この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:guest
更新日時:2026-06-10 07:12:25

タイトル: rel属性
SEOタイトル: HTML a タグ rel 属性完全ガイド — noopener/noreferrer/nofollow の使い分け

この記事の要点
  • rel 属性はリンク先との関係を示す。SEO / セキュリティの両方で重要
  • rel="noopener": target="_blank" で開いたタブからの window.opener アクセスを禁止 (★必須)
  • rel="noreferrer": Referer ヘッダを送らない。noopener も暗黙的に含む
  • rel="nofollow": SEO 評価を渡さない。広告 / ユーザ投稿リンク
  • rel="sponsored" / "ugc": nofollow より詳細な分類 (Google 2019)

rel 属性とは

rel 属性 (relationship) はリンク元 (現在のページ) とリンク先の関係を表します。SEO / セキュリティ / アクセシビリティに影響します。



  Example




  公式ショップ

rel 属性の値一覧 (a タグ向け主要)

用途影響
noopener新タブで window.opener アクセス禁止セキュリティ強化 ★必須
noreferrerReferer ヘッダ送信なしセキュリティ + プライバシー (noopener も含む)
nofollowSEO 評価を渡さないSEO 中立
sponsored広告 / アフィリエイトSEO 中立 (Google 推奨)
ugcユーザ投稿のリンクSEO 中立 (Google 推奨)
external外部サイトへのリンクセマンティック / CSS で装飾可
author著者情報へのリンクセマンティック
licenseライセンス情報セマンティック
bookmarkパーマリンク (記事内見出しなど)セマンティック
tagタグへのリンクセマンティック
me自分の他プロフィールIndieAuth / Mastodon の確認

target="_blank" + rel="noopener" の重要性

target="_blank" で新タブを開くと、開かれた先のページから window.opener 経由で元のページを操作される脆弱性 (Reverse Tabnabbing) があります:

// 悪意あるリンク先で実行されると…
window.opener.location = 'https://phishing.example.com';
// → ユーザが元タブに戻ったときフィッシングサイトに見える

これを防ぐのが rel="noopener":


外部


外部

2025 年現在、Chrome / Safari / Firefox は target="_blank" でも自動的に noopener が効くようになっていますが、明示することが推奨です (古いブラウザ / Lighthouse 警告対策)。

noopener と noreferrer の違い

属性window.openerReferer ヘッダ推奨
なし触れる ★危険送信される外部リンクには NG
noopenernull になる送信されるセキュリティだけ確保
noreferrernull になる送信されないプライバシーも
noopener noreferrernull送信されない★ 安全パイ

SEO 観点: nofollow / sponsored / ugc

Google は 2019 年に nofollow をヒント扱いに変更し、新たに 2 つの値を導入:

用途
nofollow信頼できないリンク全般コメント欄、信頼できないソース
sponsored広告 / アフィリエイト / 有料バナー広告、PR リンク、A8/楽天
ugcUser Generated Content (掲示板等)ユーザ投稿のリンク

新ガイドラインでは「広告はsponsored、ユーザ投稿はugc、その他不明はnofollow」が推奨です。

JavaScript で動的に追加するときの注意

// ❌ window.open は noopener を別途渡す必要
window.open(url, '_blank');
// → opener にアクセス可

// ✅ noopener オプション
window.open(url, '_blank', 'noopener,noreferrer');

// ✅ または手動で opener を null
const newWin = window.open(url, '_blank');
if (newWin) newWin.opener = null;

// 動的 a タグ生成
const a = document.createElement('a');
a.href = url;
a.target = '_blank';
a.rel = 'noopener noreferrer';  // ★ 必ず付ける
document.body.appendChild(a);
a.click();

link タグの rel (a タグ以外)

rel 属性は でも使われ、別の意味を持ちます:
























Lighthouse / セキュリティチェックでの警告

警告原因対処
Links to cross-origin destinations are unsafetarget="_blank" に noopener なしrel="noopener noreferrer" 追加
Avoid using target="_blank" without rel="noopener"同上同上
Mixed contentHTTPS ページから HTTP リンクHTTPS 化

用途別の rel 推奨テンプレート

リンクの種類推奨 rel
内部リンク (自サイト内)不要
信頼できる外部リンク + 新タブnoopener noreferrer
広告 / アフィリエイトsponsored noopener noreferrer
ユーザ投稿コメント中のリンクugc nofollow noopener noreferrer
信頼できないソースnofollow noopener noreferrer
SNS シェア / 投稿ボタンnoopener noreferrer

FAQ

Q: 内部リンクにも rel を付けるべき?
A: 不要。同一オリジン内ならセキュリティ問題は基本起きません。

Q: nofollow を付けるとリンク先の SEO に悪影響?
A: いいえ。リンク先には影響なし、リンク元のページが「保証しない」と Google に伝えるだけです。

Q: rel="noopener" と rel="noreferrer" どちらか一方でいい?
A: noreferrernoopener も自動で含むので、両方書く必要は厳密にはありません。ただし古いブラウザや混乱を避けるため両方明記が一般的です。