自分の記事同士が同じ検索語で競合するカニバリを、自サイトのSearch Consoleで測りました。1047クエリ中2ページ以上が露出したのは22クエリ、うち21件は同じ型で量産したページ同士。ツールなしで測る手順と、統合・canonical・noindexの選び分けをまとめます。
自分のサイトで実際に測ってみたところ、同一クエリでの共食いはAIで書いたページに起きていたのではなく、同じ型で量産したページ同士に集中していました。手書きの記事同士で重なっていたのは1件だけです。
カニバリの解説はどれも同じ手順に見えますが、手を打つ前に自分のサイトを一度測ってください。測らずに統合すると、起きてもいない問題のために記事を1本減らすことになります。
この記事でわかること
- カニバリとして外から観測できるのは「同一クエリに自サイトの複数ページが露出している」ことだけだという前提
- Search Consoleだけで、自分のサイトの重なりを一度に洗い出す手順(画面操作とCSV集計の両方)
- 当サイトの実測で見えた内訳と、そこから言えること/言えないこと
- 「AI記事だからカニバる」という説明に対して、自サイトのデータが示さなかったこと
- 統合・差別化・canonical・noindex・何もしない、の5択をどう選び分けるか
実体験メモ
私はプログラミング未経験のまま、AIへの日本語の指示だけでこのサイトを作って運営しています。記事が増えてくると、必ず「同じテーマの記事同士で食い合っているのでは」という不安が出てきます。検索して出てくる解説はどれも丁寧なのですが、読んでも自分のサイトで実際に起きているのかどうかは分かりません。手順が同じでも、答えは自分のデータの中にしかないからです。そこでSearch Consoleのデータを一度書き出して、クエリごとに露出したページを数え直しました。結果は、事前に想像していたものとかなり違いました。以下はその集計結果と、そこから何を決めたかの記録です。数値はすべて当サイト1件のもので、他サイトに当てはまる保証はありません。
カニバリとして観測できるのは「露出の重なり」だけ
キーワードカニバリゼーションは、ふつう「同じキーワードで自サイトの複数ページが競合し、評価が分散する状態」と説明されます。ただし、この説明のうち外から確認できるのは前半だけです。
手元で確かめられるのは「あるクエリに対して、自サイトのページが2つ以上表示された」という事実にとどまります。評価が分散したのか、Googleが内部でどう扱っているのかは観測できません。Googleの公式ドキュメントで確認できるのは、正規化の考え方までです。
正規化とは、そのコンテンツを代表する正規 URL を選択するプロセスです。最終的に、重複するページの中で Google が最も代表的と考えるページの URL が正規 URL になります。
これらの手法を使って Google に希望を伝えることはできますが、さまざまな理由から Google が別のページを正規として選択する場合もあります。つまり、正規化の希望を伝えることはできますが、確実ではありません。
出典:Google 検索セントラル「重複コンテンツと正規化」(2026年8月1日確認)
同じページには、重複そのものについても書かれています。
サイト上で重複コンテンツが発生することは通常のことであり、Google のスパムに関するポリシーの違反にはなりません。
出典:同上(2026年8月1日確認)
つまり「重なっている=罰を受ける」ではありません。この記事でも「Googleはこう判定する」という書き方はしません。観測できるのは露出だけ、という線を引いたうえで話を進めます。
何をどう測ったか(先に限界を書きます)
集計に使ったのは、Search Consoleの検索パフォーマンスをページ×クエリの粒度でエクスポートしたデータ1回分です。
- 対象期間:2026年6月28日〜7月25日の28日間
- 取得:2026年7月28日に1回だけ取得したデータ
- 母数:ユニーク1,047クエリ
- 判定:同じクエリに対して、URLが異なるページが2つ以上出ていれば「重なりあり」
限界が3つあります。ここを飛ばすと数字を読み違えます。
1つ目、Search Consoleは全クエリを見せてくれません。
検索パフォーマンス レポートでは、ユーザーのプライバシー保護のため、一部のデータを表示しないことがある。
パフォーマンス レポートの表では、ユーザーのプライバシーを保護するために、まれなクエリは省略されます。
出典:Search Console ヘルプ「Search Console のデータについて」(2026年8月1日確認)
したがって、以下に出る件数は下限です。実際の重なりはこれより多い可能性があります。
2つ目、1時点のデータです。他の日に取ったデータと比べて「増えた・減った」という話は一切していません。取得ウィンドウが違うデータ同士を並べると、変化ではなく測り方の差を見ることになります。
3つ目、当サイト1件です。規模も作り方も違うサイトに、この比率がそのまま当てはまるとは考えていません。
実測:1,047クエリのうち、重なっていたのは22クエリ
| 集計項目 | 実測値 |
|---|---|
| ユニーククエリ数 | 1,047 |
| 2ページ以上が露出したクエリ | 22(2.1%) |
| うち、同じ型で量産したページ同士 | 21 |
| うち、手書き記事同士 | 1 |
| うち、両者が混在したもの | 0 |
先に言っておくと、この2.1%を「一般的な水準」として読まないでください。当サイトの、この28日間の、この母数での値にすぎません。
意味があるのは比率ではなく内訳のほうです。重なった22件のうち21件が、同じテンプレートから作っている地価・坪単価のデータページ同士でした。手書きで書いた記事同士がぶつかっていたのは1件だけで、しかも生成ページと手書き記事が同じクエリに並んだケースは1件もありませんでした。
なお21件には、隣の駅どうし・同名の別地域どうしの重なりに加えて、都道府県ページとその全国一覧ページのように、同じデータから同じ型で作った上下関係のページ同士も含まれます。
実例:無関係な地名のページが、同じクエリに出ていた
数字より、中身を見たほうが早いと思います。
- クエリ「相生市 土地相場」に対して、兵庫の相生駅のページと、東京の福生駅のページが同時に露出していた
- クエリ「樟葉 土地価格」に対して、京都側と大阪側の樟葉駅のページが並んでいた
- クエリ「藤が丘 土地相場」に対して、神奈川の藤が丘駅と愛知の藤が丘駅が並んでいた
- クエリ「坪単価」という広い語に対しては、広島・栃木・鹿児島・和歌山の4ページが露出していた
相生と福生は、地名としては別物です。それでも同じクエリで同時に出てくるのは、ページの中身の大半が同じ骨格でできているからだと考えるのが自然でした。地名の部分だけが違う文章は、少しの表記のゆらぎで互いに引っかかります。
一方、手書き同士で重なっていた1件は「ai住宅見積もり診断」というクエリで、家づくりの後悔を減らす無料AI活用ガイド と 注文住宅の見積もり・設備選びで迷ったら の2本でした。これは前者が総まとめ、後者が見積もり特化という関係なので、想定の範囲です。
なぜ「型の量産」で重なるのか
生成ページの中身を数値で見ると、事情がはっきりします。当サイトの生成ページ群について、その群の5%を超えるページに共通して出てくる行を「定型行」として除き、残った文字数が本文全体に占める割合を出しました。
- 定型行として検出された行:103行
- 独自比率の中央値:0.119(最小0.005/最大0.968)
中央値0.119は、本文のおよそ9割が、他のページにも出てくる行で構成されているということです。地名と数値だけが差し替わっていて、残りは同じ。これでは、検索する側から見て別ページと言い切れる根拠が薄くなります。
ここが、この記事でいちばん言いたいところです。カニバリの原因としてよく挙がるのは「AIで書いた」「量産した」ですが、当サイトで露出が重なっていたのは、AIかどうかではなく、本文の骨格が共通しているページ群でした。手書きの記事はAIの助けを借りて書いたものも含めて、ほぼ重なっていません。角度と構成が1本ずつ違うからです。
言い換えると、防ぐべきは「AIを使うこと」ではなく「同じ型で、差分が固有名詞と数値だけのページを増やすこと」になります。
なお、当サイトの生成ページについて実際にどう手を入れるかは、まだ検証の途中です。カニバリを解消したら順位が上がった、という結果は持っていません。これから測ります。
自分のサイトで測る手順(ツールなし・Search Consoleだけ)
有料ツールは要りません。2通りあります。
画面だけでやる方法(記事が数本のとき)
- Search Consoleの検索パフォーマンスを開く
- 上部で期間を過去28日間などに固定する(以後、期間は変えない)
- ページのタブで、確認したいURLをクリックしてフィルタをかける
- クエリのタブに切り替え、表示回数の多い順に上位クエリを控える
- フィルタを外し、もう1本のURLで3〜4を繰り返す
- 控えたクエリを見比べ、両方に出てくるクエリがあればそれが重なっている箇所
CSVで一括集計する方法(記事が多いとき)
上の手作業は、記事が増えると成立しません。検索パフォーマンスの画面右上からエクスポートし、ページとクエリの両方が列に入った状態のCSVを用意します。あとはクエリごとにページを集合にまとめ、要素が2つ以上のものを取り出すだけです。
import csv, collections, urllib.parse
rows = list(csv.DictReader(open('gsc_page_query.csv')))
q2p = collections.defaultdict(set)
for r in rows:
q2p[r['query']].add(r['page'])
multi = {q: p for q, p in q2p.items() if len(p) > 1}
print('ユニーククエリ:', len(q2p))
print('2ページ以上が露出したクエリ:', len(multi))
for q, p in sorted(multi.items(), key=lambda x: -len(x[1])):
print(q, len(p))
for u in p:
print(' ', urllib.parse.unquote(u))
列名(query / page)はエクスポート方法によって変わるので、そこだけ自分のCSVに合わせてください。出力を眺めるときは、件数よりどのページ同士が並んでいるかを見てください。判断材料はそちらにあります。
見つけた後の5択と、その選び分け
重なりを見つけたからといって、全部に手を入れる必要はありません。当サイトでは次の軸で分けています。
| 状況 | 取る手 | 取ってはいけない手 |
|---|---|---|
| 2本の検索意図がほぼ同じで、内容も重なっている | 統合。強いほうへ内容を寄せ、弱いほうは統合先へリダイレクトする | 両方を残したまま、片方のタイトルだけいじる |
| 角度は違うのに、タイトルと見出しの言い回しが似ている | 差別化。タイトル・見出し・内部リンクのアンカーテキストを言い換え、対象読者を書き分ける | 慌てて統合する(別の需要を1本つぶすことになる) |
| 内容が実質同じで、どちらのURLも残す必要がある(一覧と個別など) | canonical で代表URLを指定する | noindexで代用する(後述の公式見解) |
| 検索需要がなく、読者にとっても残す理由がない | noindex でインデックスから外す | 消して404を量産する |
| 重なってはいるが、クリックが片方に寄っていて実害が見えない | 何もしない。次の集計まで様子を見る | 「重なっている」だけを理由に統合する |
canonicalとnoindexの線引きは、公式が明確に書いています。
1 つのサイト内で正規ページの選択を妨げる手段として noindex を使用することは、そのページが Google 検索から完全にブロックされてしまうため、おすすめしません。rel=“canonical” link アノテーションがおすすめの方法です。
出典:Google 検索セントラル「rel=“canonical” などを利用して正規 URL を指定する方法」(2026年8月1日確認)
どちらの内容も検索結果に残したいならcanonical、そのページ自体を出したくないならnoindex。目的が違うものを代用しないということです。
なおnoindexを使うときの注意も公式にあります。
noindexディレクティブを有効にするためには、robots.txt ファイルでページやリソースをブロックせず、クローラがページにアクセスできるようにする必要があります。
出典:Google 検索セントラル「noindex を使用してコンテンツをインデックスから除外する」(2026年8月1日確認)
robots.txtで閉じてしまうと、noindexの指定そのものが読まれません。同時に両方かけたくなりますが、それは逆効果になります。
公開前に防ぐほうが、直すより安い
統合もcanonicalも、後始末です。安く済むのは企画の段階で潰すことでした。当サイトでやっているのは3つだけです。
- 新しい記事を書く前に、主キーワードでサイト内検索をかけて既存記事を洗う。同じ語が主役になっている記事があれば、企画を変えるか、既存を書き足す側に回す
- タイトルと見出しを、既存記事と声に出して読み比べる。似ていると感じたら、その時点で角度が被っている
- 「誰の、どの段階の悩みか」を1行で書き分けられないなら、別記事にしない
3つ目がいちばん効きます。検索意図の分け方そのものは 検索意図(Know/Do/Buy/Go)でコンテンツを設計する に、公開前のチェックは AIブログ記事の書き方(公開前に通す検証5チェック) にまとめています。量産の作り方は AIでSEO記事を量産しても品質を落とさない作り方、記事単体の書き方は AI記事の書き方5ステップ をどうぞ。
内部リンクのアンカーテキストが全記事で同じ言い回しになっているのも、角度をぼかす原因になります。内部リンクで「点」を「導線」にする設計 で扱っています。
誤診:順位が出ないのは、カニバリではないかもしれない
いちばん多い読み違えがこれです。「記事が検索に出てこない」=「カニバリ」ではありません。
カニバリと呼べるのは、少なくとも2ページが同じクエリで実際に露出しているときです。片方しか出ていない、あるいは両方とも表示ゼロなら、それは共食いではなく別の状態です。そもそもインデックスに入っていない可能性もあります。
順番としては、先にインデックスの有無を確定させてください。手順は AI記事がインデックスされない?未登録か順位かを切り分ける手順 に書きました。登録されているのに表示が出ない、というところまで確定してから、この記事の集計に進むのが早いです。
この記事の数値と、断定していないこと
本文の実測値(1,047クエリ/22クエリ/21件/1件/0件/定型行103行/独自比率の中央値0.119)は、当サイト1件を、2026年6月28日〜7月25日のSearch Consoleデータを2026年7月28日に1回取得して集計した値です。他の日付のデータとの比較は行っていません。2.1%という比率を業界の相場や一般的な水準として示すものではありません。また、露出の重なりと「同じ型で作ったこと」が同時に現れたという観察であり、因果関係を検証したものではありません。カニバリを解消したことによる順位や表示回数の変化については、当サイトではまだ検証しておらず、効果を主張できる結果を持っていません。Googleが内部でページをどう評価しているかについても断定していません。Google 検索セントラルおよび Search Console ヘルプからの引用は2026年8月1日に確認した記載にもとづきますが、ドキュメントは更新されるため最新の内容は必ず公式でご確認ください。本記事は検索順位や成果を保証するものではありません。当サイトのAI活用の方針は 運営者情報(AIの活用と制作体制) に公開しています。
まとめ:測る前に手を打たない
- 観測できるのは同一クエリに複数ページが露出したという事実まで。評価の分散やGoogleの内部処理は見えない
- 当サイトの実測では、ユニーク1,047クエリのうち重なっていたのは22クエリ(2.1%)。内訳は同じ型で量産したページ同士21件/手書き記事同士1件/混在0件
- 生成ページの独自比率は中央値0.119、共通の定型行は103行。骨格が同じページ同士が重なっていた
- したがって少なくとも当サイトでは、AIで書いたかどうかより「同じ型で量産したか」のほうが、重なりと一緒に現れていた(因果ではなく1時点の観察)
- Search Consoleの匿名化があるため、この件数は下限。実際はもっと多い可能性がある
- 対処は統合・差別化・canonical・noindex・何もしないの5択。目的が違うので代用しない。正規化のためのnoindexは公式が非推奨
- 表示が出ないだけなら、まずインデックスの有無を先に確定させる
不安の段階で統合すると、生きていた需要ごと記事を1本消すことになります。自分のサイトの数字は、Search Consoleのエクスポート1回分で出せます。測る、内訳を見る、それから決める。手を動かすのはいちばん最後です。
関連記事:AI記事がインデックスされない?未登録か順位かを切り分ける手順/AIでSEO記事を量産しても品質を落とさない作り方/内部リンクで「点」を「導線」にする設計/検索意図(Know/Do/Buy/Go)でコンテンツを設計する/AIブログ記事の書き方(公開前に通す検証5チェック)/AI記事の書き方5ステップ/AI記事の体験談はなぜ嘘になるか。AI活用の記事一覧は AIノウハウ からどうぞ。
よくある質問(FAQ)
カニバリが起きているかどうかは、どうやって確認しますか?
Search Consoleの検索パフォーマンスだけで分かります。画面でやるなら、ページのタブで気になるURLを選んでフィルタをかけ、クエリのタブに切り替えて上位クエリを控えます。次に同じ操作をもう1本のURLで行い、控えたクエリが重なっているかを見ます。数が多いなら、検索パフォーマンスをCSVでエクスポートして、クエリごとにページを集合として集め、要素が2つ以上になったものだけを抜き出すほうが早いです。十数行のコードで足ります。
AIで書いた記事はカニバリやすいのですか?
当サイトを2026年6月28日〜7月25日の1回分のデータで集計したかぎりでは、そうは読めませんでした。ユニーク1,047クエリのうち2ページ以上が露出したのは22クエリで、その内訳は同じ型で量産したページ同士が21件、手書き記事同士が1件、両者の混在は0件です。AIで書いたかどうかより、同じ型で作ったかどうかのほうが露出の重なりと一緒に現れていました。ただしこれは当サイト1件・1時点の観察であり、因果を検証したものではありません。
Search Consoleのクエリは、表示されたものが全部見られますか?
全部は見られません。Search Console ヘルプ「Search Console のデータについて」には「検索パフォーマンス レポートでは、ユーザーのプライバシー保護のため、一部のデータを表示しないことがある。」「パフォーマンス レポートの表では、ユーザーのプライバシーを保護するために、まれなクエリは省略されます。」と記載されています(2026年8月1日確認)。つまりこの手の集計で出る重なりの件数は下限であって、実際はそれより多い可能性があります。
重複したページがあると、Googleからペナルティを受けますか?
Google 検索セントラル「重複コンテンツと正規化」には「サイト上で重複コンテンツが発生することは通常のことであり、Google のスパムに関するポリシーの違反にはなりません。」と記載されています(2026年8月1日確認)。同ページでは、同じ内容が多数のURLから見られる状態はユーザー体験の悪化や、検索結果でのパフォーマンス追跡の難しさにつながる可能性があるとも説明されています。罰を恐れるより、読者が迷わないかと、自分が効果を追えるかで判断するほうが実務的です。
カニバリを見つけたら、片方をnoindexにすればいいですか?
正規化のつもりでnoindexを使うのは公式が勧めていません。Google 検索セントラルの正規URL指定に関するドキュメントには「1 つのサイト内で正規ページの選択を妨げる手段として noindex を使用することは、そのページが Google 検索から完全にブロックされてしまうため、おすすめしません。rel="canonical" link アノテーションがおすすめの方法です。」と記載されています(2026年8月1日確認)。どちらの内容も検索結果に残したいならcanonical、そのページ自体を出したくないならnoindex、という使い分けになります。