ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
rel 属性とは
HTML の rel 属性は、<a> / <link> / <area> / <form> タグに付与して、リンク先と現在のページの関係性を機械可読な形で示すものです。SEO、セキュリティ、アクセシビリティの観点から重要な役割を担っています。複数の値をスペース区切りで指定できます。
<!-- 基本構文 -->
<a href="https://example.com" rel="nofollow">リンク</a>
<!-- 複数指定 -->
<a href="https://example.com"
target="_blank"
rel="noopener noreferrer nofollow">外部リンク</a>
主要な rel 値
| 値 | 用途 | 主な対象タグ |
|---|---|---|
nofollow | 検索エンジンにリンク評価を渡さない | a |
noopener | 新規タブ攻撃 (Tabnabbing) 防止 | a (target=_blank) |
noreferrer | Referer ヘッダ送信抑止 | a |
sponsored | 広告・スポンサー付きリンク (Google 推奨) | a |
ugc | ユーザ生成コンテンツ内のリンク | a |
canonical | 正規 URL を指定 (重複対策) | link |
alternate | 別言語版・別フォーマット版 | link |
next / prev | ページネーション (現在は非推奨) | link / a |
icon | ファビコン指定 | link |
stylesheet | CSS 読み込み | link |
preconnect / dns-prefetch | 事前 DNS / 接続最適化 | link |
preload | リソース事前読込 | link |
license | ライセンス情報 | a / link |
author | 著者情報 | a / link |
tag | タグ・カテゴリ | a |
1. nofollow — SEO 制御
検索エンジン (主に Google) にリンク先を評価対象から外すよう指示します。リンク元の評価を渡さない (PageRank を流さない) 効果があります。
<!-- ユーザ投稿 / 信用できない外部リンク -->
<a href="https://untrusted.example.com" rel="nofollow">外部サイト</a>
<!-- アフィリエイトリンク (sponsored の方が推奨) -->
<a href="https://affiliate.com/ref=123" rel="nofollow sponsored">商品リンク</a>
<!-- 広告 -->
<a href="https://ads.example.com" rel="sponsored">広告</a>
<!-- コメント欄のリンク -->
<a href="https://user-comment-link.com" rel="ugc nofollow">コメント内リンク</a>
用途:
- 掲示板 / コメント欄のスパムリンク対策
- アフィリエイト / 広告リンク
- 信頼性が確認できない外部サイトへのリンク
- ペナルティを避けるための SEO 戦略
2. noopener — セキュリティ (重要)
target="_blank" で新規タブを開くとき、リンク先のページから window.opener 経由で元のページを操作される脆弱性 (Reverse Tabnabbing 攻撃) があります。rel="noopener" でこれを防ぎます:
<!-- 危険 -->
<a href="https://untrusted.com" target="_blank">外部リンク</a>
<!-- ↑ untrusted.com から window.opener.location = 'phishing.com' される可能性 -->
<!-- 安全 -->
<a href="https://untrusted.com" target="_blank"
rel="noopener">外部リンク</a>
2021 年以降のブラウザでは target="_blank" に自動で noopener 相当の挙動が適用されますが、明示することが推奨されます (古いブラウザ・互換性のため)。
3. noreferrer — プライバシー
リンク経由でアクセスしたとき、HTTP Referer ヘッダを送らないよう指示します。リンク元 URL を隠したい場合に使います:
<a href="https://example.com"
rel="noreferrer">プライバシー保護リンク</a>
<!-- noopener と併用 (一般的) -->
<a href="https://example.com"
target="_blank"
rel="noopener noreferrer">新規タブで開く</a>
注意: noreferrer は noopener の効果も含むため、両方書く必要は技術的にはありません。ただし古いブラウザ対応のために両方書くのが慣習。
4. sponsored / ugc — Google が 2019 年に追加
Google は 2019 年 9 月、従来の nofollow を補完する新しい rel 値を導入しました:
| 値 | 用途 | 例 |
|---|---|---|
sponsored | 広告・有料リンク | アフィリエイト、スポンサー記事 |
ugc | ユーザ生成コンテンツ | コメント、フォーラム投稿 |
nofollow | 上記以外で評価したくないリンク | 信用できない外部サイト |
Google は 2020 年 3 月以降、これらをヒントとして扱う (絶対的指示ではなく) 方針に変更されました。
5. canonical — 重複コンテンツ対策
<link rel="canonical"> で正規 URLを指定します。同じ内容が複数 URL で表示される場合 (印刷版・モバイル版・パラメータ付き URL) に必須:
<head>
<link rel="canonical" href="https://example.com/article/123">
</head>
<!-- 自身を指す canonical も有効 (推奨) -->
6. リソース最適化 (preconnect / preload)
<!-- DNS のみ事前解決 -->
<link rel="dns-prefetch" href="https://cdn.example.com">
<!-- DNS + TCP/TLS 接続まで先行 -->
<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
<!-- 重要リソースの先読み -->
<link rel="preload" href="/css/critical.css" as="style">
<link rel="preload" href="/fonts/main.woff2" as="font" type="font/woff2" crossorigin>
<!-- 次ページの先読み (推測ナビゲーション) -->
<link rel="prefetch" href="/next-page.html">
外部リンクのベストプラクティス
| リンクの種類 | 推奨 rel |
|---|---|
| 信頼できる外部リンク (新規タブ) | noopener noreferrer |
| 信頼できない外部リンク | noopener noreferrer nofollow |
| 広告・アフィリエイト | noopener noreferrer sponsored |
| ユーザコメント内のリンク | noopener noreferrer ugc |
| 同一サイト内リンク | 通常不要 |
記述例
<!-- 通常の内部リンク -->
<a href="/about">会社概要</a>
<!-- 信頼できる外部リンク -->
<a href="https://www.w3.org"
target="_blank"
rel="noopener noreferrer">W3C</a>
<!-- 広告 -->
<a href="https://ads.example.com/click?id=1"
target="_blank"
rel="noopener noreferrer sponsored">スポンサー商品</a>
<!-- コメント欄 (ブログプラットフォーム) -->
<a href="https://user-blog.example.com"
rel="noopener noreferrer ugc nofollow">コメント内リンク</a>
<!-- 著者ページ -->
<a href="/author/alice" rel="author">Alice</a>
<!-- ライセンス表記 -->
<a href="https://creativecommons.org/licenses/by/4.0/"
rel="license">CC BY 4.0</a>
WordPress / CMS での自動付与
主要 CMS は外部リンクに自動で rel 属性を付ける機能を持っています:
- WordPress — 5.6 以降は
target="_blank"に自動でnoopener - Markdown プロセッサ — プラグインで一括付与可能
- Laravel — Blade ディレクティブで一括処理
// Laravel Blade で一括処理
function externalLink($url, $label) {
$rel = 'noopener noreferrer';
if (!str_contains($url, config('app.url'))) {
$rel .= ' nofollow';
}
return "<a href=\"$url\" target=\"_blank\" rel=\"$rel\">$label</a>";
}
セキュリティとプライバシーの整理
| リスク | 対策 rel |
|---|---|
| Reverse Tabnabbing (リンク先がオリジナルを書換) | noopener |
| Referer 漏洩 (URL に機密が乗る) | noreferrer |
| 悪意あるサイトの SEO 流入 | nofollow |
| 広告開示義務 | sponsored |
FAQ
Q: noopener と noreferrer は両方書くべき?
A: noreferrer だけで noopener の効果も含まれますが、古いブラウザ対応のため両方書くのが推奨。最新ブラウザのみ対象なら noreferrer 単体でも可。
Q: 内部リンクにも rel は必要?
A: 通常不要。target="_blank" で開く場合は noopener を付けると安全。
Q: nofollow を付けると検索順位が下がる?
A: 自サイトの順位には直接影響しません。リンク先サイトに評価を渡さないだけ。全部 nofollow にすると不自然と判定されることがあるので使い分けを。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- href属性
- target属性
- download 属性
- rel 属性
- hreflang属性
- type属性
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Unreal Engine AI MoveTo 完全ガイド(NavMesh / AIController / Behavior Tree) 2026-06-11 07:07:02
- shutdown コマンド完全ガイド(Linux / Windows / systemd の使い分け) 2026-06-11 07:07:02
- DI(依存性注入)完全ガイド(Dependency Injection / IoC / Spring / CDI / コンストラクタ・セッター注入) 2026-06-11 07:07:02
- git 用語一覧完全リファレンス(Repository / HEAD / Branch / Rebase / Stash 他) 2026-06-11 07:07:02
- TCP/IP リンク層 (ネットワークインターフェース層) 完全ガイド 2026-06-11 07:07:02
- Laravel ルート認証化完全ガイド — middleware と Gate 2026-06-11 07:07:02
- EJB完全ガイド(Stateless/Stateful/Singleton/MDB/CDIとの違い/Spring代替) 2026-06-11 07:07:02
- git log コミット履歴確認完全ガイド — oneline/graph/stat/blame 2026-06-11 07:07:02
- Laravel のインストール手順まとめ — composer / Sail / Valet / Herd と初期設定 2026-06-11 07:07:02
- CDI完全ガイド(Inject/Produces/Qualifier/Scope/Spring DIとの違い) 2026-06-11 07:07:02
- Python set 入門 — 作成方法、frozenset、内包表記、リスト重複削除 2026-06-11 07:07:02
- Apache .htaccess でベーシック認証を設定する手順(.htpasswd / htpasswd / AuthType Basic / トラブルシュート) 2026-06-11 07:07:02
- Python アプリのローカル独立配布完全ガイド(PyInstaller / wheel / Docker) 2026-06-11 07:07:02
- Laravel Eloquent モデルのデフォルト値設定 2026-06-11 07:07:02
- Unity Component 取得とキャッシュの完全ガイド(GetComponent/RequireComponent/TryGetComponent) 2026-06-11 07:07:02
コメントを削除してもよろしいでしょうか?