-aiarticle 付き/なしの URL が、RAG システムと検索エンジンでどのように扱われるかを整理する。制御手段は大きく分けて 2 つある。

  • クローラフィルタ(.*-aiarticle/:RAG インデクサ内部の制御。どの URL をインデックスに登録するかを直接決める。
  • rel=canonical:検索エンジン向けの制御。「正規 URL はこちら」と宣言し、重複コンテンツの評価分散を防ぐ。

この 2 つは役割が異なるため、目的に応じて使い分ける、あるいは組み合わせる。

1. 全体の流れ

RAG インデクサの処理フロー(フローチャート)

図1
  • クローラのフィルタ設定で「どちらを拾うか」が事実上決まる
  • LLM は「インデックスに登録され、検索で上位になった URL」しか見ない

クエリ〜回答までの時系列(シーケンス図)

図2
  • LLM は「検索 API が選んだ URL の内容」しか受け取らない
  • URL のパス名(-aiarticle の有無)は、LLM には意味を持たない、単なる文字列

設計者が制御できるパターン(ユースケース図)

図3
ユースケース 主な設定
両 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 のみ参照可能

フィルタなしの場合(デフォルト)

図4
ステップ 挙動
クローリング 両 URL(通常記事 / -aiarticle)を登録
インデックス 両方が検索対象として登録される
検索時 ランキング算法で上位になった方が LLM に渡される
LLM 参照 どちらが上位になるかは不明(コンテンツの類似度、SEO 要因などで変動)

メリットは設定不要で両方のバージョンを保持できる点だが、どちらが参照されるか予測できず、検索結果での競合や、意図しない方を LLM が参照するリスクがある。

フィルタあり(.*-aiarticle/ を除外)

図5
ステップ 挙動
クローリング .*-aiarticle/ にマッチする URL を除外
インデックス 通常記事のみが登録される
検索時 aiarticle 付きは検索対象に存在しない
LLM 参照 通常記事のみを参照

LLM が参照する文書を明確に制御でき、検索結果での競合も起きない。一方で aiarticle 版を LLM に使わせられず、aiarticle 版に特有の最適化が無駄になる可能性がある。

フィルタあり(.*-aiarticle/ を限定)

図6
ステップ 挙動
クローリング .*-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 なしの場合(デフォルト)

図7
ステップ 挙動
インデックス 両 URL が個別にインデックス登録される可能性
正規判断 検索エンジンが「どちらがオリジナルか」を自動判断
検索結果 両方表示されるリスク(評価が分散)
SEO 評価 被リンク・内部リンクの評価が 2 URL に分散

設定は不要だが、検索結果での競合や SEO 評価の分散、意図しない方が正規と判断されるリスクがある。

canonical あり(-aiarticle 付きに設定)

図8
ステップ 挙動
インデックス 両 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 内でも検索エンジンでも一貫した挙動になる。