-aiarticle 付き/なしの URL が、RAG システムと検索エンジンでどのように扱われるかを整理する。制御手段は大きく分けて 2 つある。
- クローラフィルタ(
.*-aiarticle/):RAG インデクサ内部の制御。どの URL をインデックスに登録するかを直接決める。 rel=canonical:検索エンジン向けの制御。「正規 URL はこちら」と宣言し、重複コンテンツの評価分散を防ぐ。
この 2 つは役割が異なるため、目的に応じて使い分ける、あるいは組み合わせる。
1. 全体の流れ
RAG インデクサの処理フロー(フローチャート)
- クローラのフィルタ設定で「どちらを拾うか」が事実上決まる
- LLM は「インデックスに登録され、検索で上位になった URL」しか見ない
クエリ〜回答までの時系列(シーケンス図)
- LLM は「検索 API が選んだ URL の内容」しか受け取らない
- URL のパス名(
-aiarticleの有無)は、LLM には意味を持たない、単なる文字列
設計者が制御できるパターン(ユースケース図)
| ユースケース | 主な設定 |
|---|---|
| 両 URL を LLM 参照可能にしたい | クローラ:全パス対象/フィルタ:なし |
| aiarticle だけを LLM に使わせたい | クローラ:.*-aiarticle/ 限定/フィルタ:aiarticle 許可 |
| aiarticle を LLM から完全に除外したい | クローラ:.*-aiarticle/ 除外/robots.txt で noindex |
| 通常記事と aiarticle を同一扱いしたい | rel=canonical で一方に統一 |
補足:LLM 自体の関与範囲
LLM は「渡されたコンテキスト」しか見ない。URL のパス名や slug の位置には意味を持たず、「どちらを拾うか」は RAG/検索インフラの設計だけで決まる。したがって実務では「LLM がどっちを拾うか?」ではなく、「RAG インデクサにどっちを登録するか?」を設計・設定する話になる。
2. 制御手段の役割:クローラフィルタ vs canonical
クローラフィルタ(.*-aiarticle/)
RAG のクローラがどの URL をインデックスに登録するかを制御する設定。
.*-aiarticle/を除外すれば、LLM はそのページを一切参照できない.*-aiarticle/を限定すれば、LLM はそのページしか参照できない- RAG システム内部の挙動を直接制御でき、検索エンジンとは無関係に RAG 内だけで完結する
- 向いているケース:AI 向け記事と人間向け記事を明確に分離したい場合
rel=canonical
検索エンジンに対して「このページの正規 URL はこちらです」と宣言する HTML タグ。重複ページ側(-aiarticle 付き)に仕込む。
<!-- -aiarticle 付きページに仕込む -->
<head>
<link rel="canonical" href="https://example.com/docs/xj6w3n/llm-rag-hallucination-guide-2026/" />
</head>
- 検索エンジンが重複コンテンツとして扱うのを防ぎ、評価を 1 つの URL に集約できる
- 検索エンジン向けの制御であり、RAG インデクサがこれを尊重するかどうかは実装次第(多くのクローラは canonical を参照するが、必須ではない)
- 向いているケース:同じ内容の記事が複数 URL に存在し、検索エンジンには 1 つだけ認識させたい場合
両方使うべきか
両方使うのが最も堅牢。RAG 内では .*-aiarticle/ フィルタで明確に制御し、検索エンジン向けには -aiarticle 付きページに rel=canonical で正規 URL を宣言すれば、RAG と検索エンジンの両方で「どちらが正か」を一貫させられる。
片方だけで足りるケースもある。
- フィルタだけ:RAG 内だけで完結する制御で十分、SEO は気にしない、または別で対策済み
- canonical だけ:検索エンジンでの重複対策が主目的で、RAG 側は canonical を参照する実装が前提
3. クローラフィルタの挙動比較
.*-aiarticle/ フィルタを「付ける」か「付けない」かで、LLM が参照できる文書が根本的に変わる。
- 付けない:両 URL がインデックスに登録され、LLM は両方を参照可能
- 付ける(除外):aiarticle 付きが除外され、LLM は通常記事のみ参照可能
- 付ける(限定):aiarticle 付きのみが登録され、LLM は aiarticle のみ参照可能
フィルタなしの場合(デフォルト)
| ステップ | 挙動 |
|---|---|
| クローリング | 両 URL(通常記事 / -aiarticle)を登録 |
| インデックス | 両方が検索対象として登録される |
| 検索時 | ランキング算法で上位になった方が LLM に渡される |
| LLM 参照 | どちらが上位になるかは不明(コンテンツの類似度、SEO 要因などで変動) |
メリットは設定不要で両方のバージョンを保持できる点だが、どちらが参照されるか予測できず、検索結果での競合や、意図しない方を LLM が参照するリスクがある。
フィルタあり(.*-aiarticle/ を除外)
| ステップ | 挙動 |
|---|---|
| クローリング | .*-aiarticle/ にマッチする URL を除外 |
| インデックス | 通常記事のみが登録される |
| 検索時 | aiarticle 付きは検索対象に存在しない |
| LLM 参照 | 通常記事のみを参照 |
LLM が参照する文書を明確に制御でき、検索結果での競合も起きない。一方で aiarticle 版を LLM に使わせられず、aiarticle 版に特有の最適化が無駄になる可能性がある。
フィルタあり(.*-aiarticle/ を限定)
| ステップ | 挙動 |
|---|---|
| クローリング | .*-aiarticle/ にマッチする URL のみ登録 |
| インデックス | aiarticle 付きのみが登録される |
| 検索時 | 通常記事は検索対象に存在しない |
| LLM 参照 | aiarticle のみを参照 |
aiarticle 版の最適化を 100% 活用でき、検索結果での競合も起きない。一方で通常記事版を LLM に使わせられず、通常記事版の SEO 評価が LLM 側には反映されない。
3 パターンの比較表
| 設定 | インデックス登録 | LLM が参照する文書 | 検索結果の競合 | 制御性 |
|---|---|---|---|---|
| フィルタなし | 両方 | どちらか(ランキング次第) | あり | 低 |
| フィルタ(除外) | 通常記事のみ | 通常記事のみ | なし | 高 |
| フィルタ(限定) | aiarticle のみ | aiarticle のみ | なし | 高 |
実装例(正規表現フィルタ)
# 除外パターン
CRAWL_FILTER = {
"exclude": [r".*-aiarticle/"]
}
# 限定パターン
CRAWL_FILTER = {
"include": [r".*-aiarticle/"]
}
| 設定 | マッチする URL | マッチしない URL |
|---|---|---|
| 除外 | -aiarticle 付き ❌ |
通常記事 ✅ |
| 限定 | -aiarticle 付き ✅ |
通常記事 ❌ |
ケース別推奨
| ケース | 推奨設定 | 理由 |
|---|---|---|
| aiarticle を「AI 専用版」として使いたい | 限定 | aiarticle の最適化を 100% 活用 |
| aiarticle を「AI には見せたくない」 | 除外 | 通常記事のみを LLM に参照させる |
| 「両方同じ内容」として扱いたい | 除外 + canonical | 通常記事に評価を集約しつつ、検索競合を防ぐ |
実務では「フィルタで明確に制御する」のが基本方針になる。フィルタなしは LLM がどちらを参照するか予測できず、非推奨。
4. rel=canonical の挙動比較
rel=canonical を「付ける」か「付けない」かで、検索エンジンがどちらの URL を正規として扱うかが変わる。
- 付けない:検索エンジンが自動判断(競合・評価分散のリスク)
- 付ける(
-aiarticle付きに設定):正規は通常記事側と明示(評価を集約)
基本構文は以下の通り。href には正規としたい URL(通常記事側)を指定し、1 ページに 1 つのみ、<head> タグ内に記述する。
<head>
<link rel="canonical" href="https://example.com/docs/xj6w3n/llm-rag-hallucination-guide-2026/" />
</head>
canonical なしの場合(デフォルト)
| ステップ | 挙動 |
|---|---|
| インデックス | 両 URL が個別にインデックス登録される可能性 |
| 正規判断 | 検索エンジンが「どちらがオリジナルか」を自動判断 |
| 検索結果 | 両方表示されるリスク(評価が分散) |
| SEO 評価 | 被リンク・内部リンクの評価が 2 URL に分散 |
設定は不要だが、検索結果での競合や SEO 評価の分散、意図しない方が正規と判断されるリスクがある。
canonical あり(-aiarticle 付きに設定)
| ステップ | 挙動 |
|---|---|
| インデックス | 両 URL がインデックスされるが、aiarticle 付きは「コピー」として扱われる |
| 正規判断 | 通常記事側が正規 URL として明示的に指定される |
| 検索結果 | 通常記事のみが表示される(aiarticle 付きは表示されない) |
| SEO 評価 | 被リンク・内部リンクの評価が通常記事に集約される |
<!-- -aiarticle 付きページの <head> に記述 -->
<head>
<title>LLM RAG Hallucination Guide 2026 (AI Article)</title>
<link rel="canonical" href="https://example.com/docs/xj6w3n/llm-rag-hallucination-guide-2026/" />
</head>
検索結果での競合を避け、SEO 評価を 1 つの URL に集約できる一方、aiarticle 版は検索結果に表示されなくなる。
3 パターン比較表
| 設定 | インデックス登録 | 検索結果表示 | SEO 評価 | 制御性 |
|---|---|---|---|---|
| canonical なし | 両方 | 両方(競合リスク) | 分散 | 低 |
| canonical あり(通常記事指定) | 両方(aiarticle はコピー扱い) | 通常記事のみ | 通常記事に集約 | 高 |
| canonical あり(自分自身指定) | 両方(独立扱い) | 両方 | 各 URL に独立 | 中 |
よくある間違い
- 両方のページに相互に canonical を設定する → 検索エンジンが無視する可能性
- 存在しない URL を href に指定する → エラーとして扱われる
- 複数の canonical を 1 ページに設定する → 無効
- noindex ページに canonical を設定する → 矛盾した指示になる
5. フィルタと canonical の組み合わせ
組み合わせパターン
| フィルタ設定 | canonical 設定 | 検索結果 | RAG 内での LLM 参照 |
|---|---|---|---|
| なし | なし | 両方(競合) | どちらか(ランキング次第) |
| 除外 | なし | 通常記事のみ | 通常記事のみ |
| 除外 | 通常記事指定 | 通常記事のみ | 通常記事のみ |
| 限定 | なし | aiarticle のみ | aiarticle のみ |
| 限定 | 通常記事指定 | 通常記事のみ | aiarticle のみ(矛盾) |
最後の行(フィルタは限定なのに canonical で通常記事を正規指定)は避けたい組み合わせ。RAG は aiarticle しか登録しないのに、検索エンジン向けには「正規は通常記事」と宣言してしまい、検索結果と RAG の参照先が食い違う。
目的別の推奨パターン
| 目的 | 推奨設定 | 理由 |
|---|---|---|
| aiarticle を「AI 専用版」として使いたい | フィルタ:限定 + canonical:自分自身指定 | aiarticle の最適化を 100% 活用しつつ、検索競合を防ぐ |
| aiarticle を「AI には見せたくない」 | フィルタ:除外 + canonical:通常記事指定 | 通常記事のみを LLM に参照させつつ、SEO 評価を集約 |
| 「両方同じ内容」として扱いたい | フィルタ:除外 + canonical:通常記事指定 | 通常記事に評価を集約しつつ、検索競合を防ぐ |
実装例
パターン A:aiarticle を「AI 専用版」として使いたい
<head>
<title>LLM RAG Hallucination Guide 2026 (AI Article)</title>
<!-- 自分自身を canonical として指定(または指定しない) -->
<link rel="canonical" href="https://example.com/docs/xj6w3n/llm-rag-hallucination-guide-2026-aiarticle/" />
</head>
CRAWL_FILTER = {
"include": [r".*-aiarticle/"]
}
パターン B:aiarticle を「AI には見せたくない」
<head>
<title>LLM RAG Hallucination Guide 2026 (AI Article)</title>
<!-- 通常記事側を正規として指定 -->
<link rel="canonical" href="https://example.com/docs/xj6w3n/llm-rag-hallucination-guide-2026/" />
</head>
CRAWL_FILTER = {
"exclude": [r".*-aiarticle/"]
}
6. まとめ
| 制御手段 | 対象 | 目的 | 推奨ケース |
|---|---|---|---|
.*-aiarticle/ フィルタ |
RAG インデクサ | 技術的な URL 制御 | RAG 内で明確に分離したい |
rel=canonical |
検索エンジン | SEO 的な重複対策 | 検索結果で URL を統一したい |
「どちらが良いか」ではなく、目的に応じて両方を組み合わせるのが実務的な解。RAG 内で明確に制御したいなら .*-aiarticle/ フィルタ、検索エンジンでの重複を防ぎたいなら -aiarticle 付きページへの rel=canonical を設定する。両方設定しておけば、RAG 内でも検索エンジンでも一貫した挙動になる。