Search Consoleのクエリをトピック別にクラスタリングして、改善機会を見つける方法
Google Search Consoleのクエリをトピックにクラスタリングするには、正規表現やフレーズのルール、共通する語(n-gram)、あるいはセマンティックな埋め込み(エンベディング)を使って、すべてのクエリにトピックを割り当てます。そのうえで、クリック数と表示回数を合計し、トピックごとに表示回数で加重した掲載順位とCTRを計算します。改善機会になるのは、表示回数が多いのに掲載順位が2ページ目にあるか、CTRが低いトピック、複数のURLが同じクエリを取り合っているトピック、そして表示回数はあるのに専用のページが書かれていないトピックです。このプレイブックでは、各手法をメリットとデメリットとともに説明し、具体例を示したうえで、GSC Wizardでのやり方を紹介します。
トピックごとの合計を持つ10〜30個の名前付きトピックと、取り組む価値のあるトピックの短いリスト。
ルールベースの最初のクラスタを作るのに約1時間、その後は月に数分です。
3か月以上のクエリデータがあるSearch Consoleのプロパティと、スプレッドシートまたはGSC Wizardのアカウント。
そもそもなぜSearch Consoleのクエリをトピックにまとめるのか
Search Consoleはクエリを1行ずつ報告します。実際にトラフィックのあるサイトでは、そのほとんどの行はごく小さな数字です。四半期で表示回数が40回のクエリは、それだけでは何も語りません。しかし、同じ質問の200通りの言い回しを合わせれば、上位表示を狙い、記事を書き、追跡できるトピックになります。グループ化すれば、誰も読まない一覧が、行動に移せる短い表にもなります。どの話題でトラフィックを得ているか、どれがあと少しで勝てるか、どれが下がっているかが分かります。あと一歩のキーワードのプレイブックがクエリ単位よりトピック単位のほうがうまくいくのも同じ理由で、1つのページが普通はクラスタ全体を受け持つからです。
始める前に、2種類のクエリを外してください。指名クエリはほかとは挙動が違い(順位が高くクリックもされやすい)、別々にクラスタリングするか、まったくしないほうがよいでしょう。Search Consoleのブランドクエリフィルタは、対象のサイトでは、パフォーマンスレポートをブランドと非ブランドの表示に分けてくれるようになりました。また、AI可視性ツールが定期的にGoogleへ送る、プロンプト形式の長い文字列がクエリ一覧に混ざっている場合は、それも除外してください。除外しないと、検索した人が一人もいないクラスタができてしまいます。GSC Wizardのクエリ分析レポートは、それらをLLMトラッカーのプローブとしてラベル付けするので、除外できます。
GSCのクエリをクラスタリングする3つの方法を比較
実用的な方法は3つあります(2つ目にはn-gramとSERPの重なりという2つのバリエーションがあります)。加えて、Search Console Insightsに表示されるGoogle自身のグループ化もあります。これらは、コントロールのしやすさとカバー範囲のトレードオフにあります。ルールは予測しやすい一方で、思いついたものしか見つけられません。埋め込みは見落としを拾えますが、できたグループは手作業で確認する必要があります。
| 方法 | 必要なもの | 同義語を拾えるか | 来月も同じ結果になるか | 最適な用途 |
|---|---|---|---|---|
| 正規表現またはフレーズのルール | Search Consoleの正規表現フィルタ、またはルールを保存できるツール | ルールに書き込んだものだけ | あり | すでに把握しているトピックの追跡、クライアントへの報告 |
| スプレッドシートでのn-gram | クエリのエクスポートと、いくつかの数式または短いスクリプト | いいえ、共通する語だけ | はい、同じ設定を保てば | サイトがどんな検索で見つかっているかの、手早い最初の全体像 |
| SERPの重なり | 有料のSERPデータソースから取得した、すべてのクエリの上位10件の結果 | はい。Googleが同じページを上位に表示している範囲で | いいえ、検索結果は変動します | 2つのクエリに1ページで足りるか、2ページ必要かの判断 |
| 埋め込み(エンベディング) | 埋め込みモデル、Python、クラスタリングアルゴリズム | はい、言語をまたいでも | いいえ、新しいクエリや設定でグループが動きます | 大量で雑多なクエリ群からのトピックの発見 |
| GoogleのQuery groups(クエリグループ) | プロパティに十分な量のクエリがあれば、必要なものはありません | はい、スペルミスや他の言語も含めて | いいえ、Googleもグループは変わる可能性があるとしています | 最大のトピックと上昇中のトピックを手早く確認 |
Google自身の機能について、まず一言触れておきます。2025年10月、GoogleはSearch Console Insightsにクエリグループを追加しました。「類似の検索クエリをグループ化する」カードで、グループごとの合計クリック数を、トップ、上昇中、下降中の順に並べて表示します。Googleは、「グループはAIを使って算出され、時間とともに変化する場合がある」、そして「クエリ数の多いプロパティでのみ利用できる」と述べています。つまり、使えるなら無料で全体像をつかむのに役立ちますが、グループを自分で定義することはできず、月ごとに追跡できるほど安定しておらず、小規模なサイトにはカード自体が表示されません。
方法1:Search Consoleのフィルタで正規表現グループを使う
パフォーマンスレポートで「クエリ」フィルタを追加し、「カスタム(正規表現)」を選んで、トピックごとに1つのパターンを書きます。たとえばcold.?brew|iced coffee concentrateのようにします。Googleの高度なフィルタに関するヘルプページによると、「RE2の構文が使われる」とあり、一致は部分一致です(^や$でアンカーを付けない限り、パターンはクエリのどこにでも一致します)。また、パターンを(?-i)で始めない限り、大文字と小文字は区別されません。RE2には先読みや後方参照がないため、JavaScriptやPCREのチートシートからコピーしたパターンは動かないことがあります。動作する例はSearch Consoleの正規表現フィルタのFAQにあります。
この方法の強みは、何をトピックに含めるかを正確に自分で決められることと、同じパターンなら来月も同じグループになることです。弱みは、Search Consoleが一度に1つの絞り込み表示しか出せないことです。12個のトピックを比べるには12回絞り込み、それぞれの合計を手作業でシートに写すことになります。しかも、各表示の下のクエリ表は1,000行で打ち切られます(1,000行の上限を参照)。さらに、見落としやすい落とし穴もあります。Googleのパフォーマンスデータの詳しい解説によると、匿名化されたクエリ、つまり「2〜3か月のあいだに数十人を超えるユーザーが検索していない」クエリは表から除外され、「クエリで絞り込まない限り、グラフの合計には含まれる」だけだとされています。そのため、正規表現のグループが持つクリック数は、それを表示しているページのクリック数より必ず少なくなり、ロングテールのトピックほどその差が大きくなります。
方法2:スプレッドシートでのn-gram、またはSERPの重なり
n-gramのマップを作るには、3〜12か月分のクエリを、クリック数、表示回数、掲載順位とあわせてエクスポートします(画面からのエクスポートは1,000行で止まるため、大規模なサイトではSearch Console APIまたは一括データエクスポートを使います)。すべてのクエリを小文字にして単語に分割し、「how」、「the」、「for」のようなストップワードを除き、「grinders」と「grinder」が1語になるよう単純な複数形をそろえます。そのうえで、各単語(ユニグラム)と、隣り合う2語の組(バイグラム)がいくつのクエリに含まれるかを数えます。「cold brew」や「burr grinder」のように、多くのクエリにまたがって繰り返し現れる組が、トピックの候補です。各クエリには、含まれる候補のうち最も具体的なものを割り当て、トピックごとに指標をピボットで集計します。コーヒー専門サイトでの「coffee」のように、全クエリの大きな割合に出てくる語は捨ててください。サイトの半分を含むようなトピックは、トピックとは言えないからです。
n-gramは速く、無料で、再現でき、理由も説明できます。クエリが「cold brew」に入るのは、その語を含んでいるからです。できないのは、意味を理解することです。「French press」と「cafetiere」は別のトピックになり、「coldbrew」のようなスペルミスは自分のグループから外れます。SERPの重なりは、これを逆の側から補います。すべてのクエリについてGoogleの上位10件を取得し、上位のURLが十分に共通している(たとえば3つ以上)2つのクエリを同じクラスタに入れます。これはGoogleが同じ検索意図とみなすものを測るので、1つのトピックに1ページで足りるか2ページ必要かを決めるには最良の方法です。ただし、クエリごとにSERPの取得が必要で、結果は場所、デバイス、日付によって変わり、数千クエリを超えると規模に対応しにくくなります。GSC Wizardは、自分のSearch Consoleデータだけで動作し、Googleの検索結果をスクレイピングしないため、SERPの重なりによるクラスタリングは行いません。
方法3:埋め込みによるセマンティッククラスタリング
埋め込みモデルは、各クエリを数値のベクトルに変換し、使われている単語が違っても、意味が近いクエリ同士が近くに集まるようにします。典型的なパイプラインでは、多言語モデルですべてのクエリを埋め込み(そのため「cafetière」と「french press」が同じ場所に集まれます)、UMAPでベクトルを少数の次元に減らし、HDBSCANまたはk-meansでクラスタリングします。続いて、各クラスタに最も大きなクエリにちなんだ名前を付け、先ほどと同じように指標を合計します。自分では気づいていなかったトピックを見つけられるのがこの方法で、スペルミス、語順、他の言語の扱いも、ルールよりはるかに優れています。
ただし、コストは現実のものです。Pythonまたは埋め込み用の有料APIが必要で、結果は設定に左右されます。最小クラスタサイズを変えたり、3か月分の新しいクエリを足したりするとグループが動くため、月ごとの追跡は信頼できません。また、HDBSCANは一定の割合のクエリを、どのクラスタにも属さないノイズとして残します。意味が近いことは、検索意図が同じことと同じではありません。「cold brew maker」と「cold brew recipe」はベクトル空間では隣り合いますが、前者が求めるのは商品ページ、後者が求めるのはレシピです。私のおすすめは、まず埋め込みまたはn-gramで一度トピックを見つけ、気にかけているトピックをルールとして書き出し、そのルールを追跡するというワークフローです。
具体例:同じクエリを3つの方法で
以下のクエリは、手法ごとに結果がどう食い違うかを示すために、架空のコーヒーショップ向けに作ったものです。説明用であり、実際のサイトのデータではありません。正規表現のルールは、Cold brewがcold.?brew、French pressがfrench press|press pot|cafeti[eè]re、Grindersがgrinderです。埋め込みの列は、埋め込みモデルが生成しがちなグループ分けの例であり、実際に実行した出力ではありません。
| クエリ(説明用) | 正規表現のルール | n-gramのトピック | 埋め込みクラスタ |
|---|---|---|---|
| cold brew ratio | Cold brew | cold brew | Cold brew |
| how much coffee for cold brew | Cold brew | cold brew | Cold brew |
| coldbrew concentrate recipe | Cold brew(.?がスペースの欠落を吸収します) |
concentrate(「coldbrew」という語は「cold brew」とは別の語です) | Cold brew |
| iced coffee concentrate | なし、どのルールにも含まれていません | concentrate | Cold brew |
| french press grind size | French press | french press | French press |
| cafetiere how many scoops | French press(同義語がルールに入っています) | 未割り当て。この語の出現が少なすぎます | French press |
| best burr grinder for espresso | Grinders | burr grinder | Grinders |
| coarse grind for press pot | French press | grind | GrindersかFrench press、どちらにも入りえます |
これはよくあるパターンです。ルールは正確ですが、書き出していないもの(「iced coffee concentrate」)には気づけません。n-gramはスペルの違いでトピックを分けてしまいます。埋め込みは意味でグループ化しますが、隣り合う検索意図の境目がぼやけます(「coarse grind for press pot」)。どれも間違いではなく、答えている問いが違うだけです。
クラスタを使って改善機会を見つけるには
すべてのクエリにトピックを割り当てたら、クラスタごとにクリック数と表示回数を合計し、表示回数で加重した平均掲載順位とCTRを計算します(単純な平均では、表示回数3回のクエリが、30,000回のクエリと同じ重みになってしまいます)。クラスタごとに方向が分かるよう、前年同期または前の期間と比較してください。そのうえで、次の4つのパターンを探します。
- 表示回数が多いのに、CTRや掲載順位が低いクラスタ。表示回数で並べ替え、平均掲載順位が8〜25位か、サイトのほかの部分よりCTRが大きく低いクラスタを探します。Googleはすでにそのトピックとあなたを結び付けていて、勝ちきれていないだけです。クラスタを開いて、表示回数の大半を占める2、3個のクエリを見つけ、それらで上位に出ているページを改善してください。まずタイトルと最初の画面のコンテンツからです。具体的な修正は、あと一歩のキーワードとCTR回復のプレイブックで扱っています。
- クラスタ内のカニバリゼーション。クラスタごとに、そのクエリで表示回数を得ているURLがいくつあるかを数えます。同じクラスタで3つのページがそれぞれ15位前後にいると、Googleはどれを表示すべきか決められず、どれも1ページ目に届きません。最も強いページを選び、ほかは統合またはリダイレクトして、内部リンクを勝者のページに向けます。カニバリゼーションのプレイブックが参考になります。
- コンテンツのギャップ。そのトピックを扱っていないページ経由で表示回数を得ているクラスタ(ハウツー形式の質問でホームページが30位に出ている、比較系のクエリでカテゴリページが出ている、など)は、専用のページを求めています。どのクラスタにも入らなかったクエリも同様です。新しいトピックはたいていそこに最初に現れるので、その残りの一覧を四半期に一度は読んでください。
- 時間とともに動くクラスタ。クラスタは月ごとに追跡します。表示回数が伸びているのにクリック数が横ばいのクラスタは、まだコンバージョンにつながっていない可視性を得ています。3か月連続で下がっているクラスタは劣化しており、コンテンツ劣化のプレイブックが扱っています。クラスタを使えば、サイト移行の結果も読み取りやすくなります。失われた400件のクエリより、失われた1つのトピックのほうが直しやすいからです(Search Consoleでのサイト移行を参照)。
架空のコーヒーショップで、こうしたトリアージがどうなるかを、ここでも架空の数字で示します。
| クラスタ(説明用) | 表示回数 | CTR | 平均掲載順位 | 表示回数のあるURL | 読み取れること |
|---|---|---|---|---|---|
| Cold brew | 48,000 | 0.9% | 13.4 | 1 | 需要のある2ページ目のトピック:その1ページを改善する |
| French press | 21,000 | 1.6% | 11.2 | 4 | 4ページで分け合っている:まず統合する |
| Grinders | 9,500 | 4.8% | 5.1 | 2 | 良好:様子を見るだけで、作業は不要 |
| Iced coffee | 6,200 | 0.3% | 27.8 | 1(ホームページ) | コンテンツのギャップ:専用のページを書く |
GSC WizardでSearch Consoleのクエリをクラスタリングする方法
私はGSC Wizardのクラスタリングをルールを軸に作りました。ルールなら追跡でき、説明もできるからです。各部分が何をして、何をしないのかを、正確にお伝えします。
トピッククラスタ(ルールベース、自分で定義)。Property Setupで、名前と最大100個のキーワードのリストを入力するか、CSVファイルからインポートして、クラスタを作成します。通常のキーワードは、大文字と小文字を区別せず、そのキーワードを含むすべてのクエリに一致します。スラッシュで囲んだキーワード(たとえば/cold.?brew/)は正規表現として扱われます。クラスタのキーワードのどれかが一致すれば、そのクエリはクラスタに入ります。1つのクエリが複数のクラスタに属することもあり、その場合はそれぞれで全量が数えられるので、クラスタの合計がサイト全体の合計と一致するようには作られていません。Run Analysisをクリックすると、トピッククラスタのレポートが、選んだ期間にそのプロパティのすべてのクエリにルールを照合します。プロパティがフルストレージなら保存済みのウェアハウスのデータから、そうでなければSearch Console APIから取得するため、Search Consoleの画面に表示される1,000行には制限されません。各クラスタには、クリック数、表示回数、CTR、表示回数で加重した平均掲載順位、クエリ数が前の期間との比較つきで表示され、展開すると、一致したクエリと、それぞれを拾ったキーワードが確認できます。
このレポートには、指名と非指名の切り替え(プロパティに保存したブランド用語に基づきます)があり、上で挙げたパターンに合わせた3つのクイックフィルタがあります。「Opportunity」は、クラスタの表示回数の中央値以上で、平均掲載順位が11〜25位、CTRが1%以下のクラスタを表示します。「Rising」は、表示回数が20%以上増え、クリック数の伸びが5%以下のクラスタを表示します。「Declining」は、表示回数が10%以上減ったクラスタを表示します。別のCluster Performance Over Timeセクションでは、すべてのクラスタを3、6、12か月のグラフにし、月別の表も付けています。同じクラスタは、クエリ、新規・消失した順位、順位変動、カニバリゼーション、クエリ劣化、ページ押し上げの各レポートのフィルタとしても使えるので、1つのトピックの中でカニバリゼーションや劣化を確認できます。詳細はトピッククラスタのドキュメントにあり、コンテンツグループは、ページをURLのルールで同じように扱います。
トピッククラスタにできないこと。クラスタを自動で作ることはありません。このレポートには自動やセマンティックなグループ化はなく、コンテンツグループと違って、提案のヘルパーもありません。ルール作成の手助けが欲しい場合は、GSC Wizard MCPサーバーを使うと、ClaudeやChatGPTなどのAIアシスタントが上位クエリを読み取り、クラスタを提案して、create_topic_clusterまたはupdate_topic_clusterで保存し、get_topic_cluster_performanceで計測できます。このツールは、どのクラスタにも一致しなかったクエリも報告します。ただし、グループ化はアシスタントの判断ですので、保存する前にルールを確認してください。
移行の比較で自動生成される語彙ベースのトピック。GSC Wizardが自動でクエリをクラスタリングする唯一の場所は、移行の比較の「Queries」タブです。移行前後の比較のクエリをトピックにまとめるので、ある商品ラインで失敗した移行が1行として読み取れます。これは先ほどのn-gramの手法を、結果が毎回同じになるようにしたものです。クリック数の多い順に最大5,000件のクエリを取り、7つの言語のストップワードを除き、単純な複数形をそろえます。少なくとも3つのクエリに現れ、かつそのうち40%を超えるクエリには現れない単語や2語の組を候補とし、各クエリには最も合う候補を割り当てて、最大の25個のトピックを残し、残りは「Other queries」にまとめます。同じ行からは常に同じトピックが得られ、埋め込みは使いません。
クエリではなく、URLのクラスタリング。ロングテールの可視化は、クエリではなくページをクラスタリングします。URLをクリック数で順位付けし、累積クリックの曲線をガウシアンフィルタで平滑化して、曲線が最も大きく曲がる2か所にニーポイント(屈曲点)を置きます。これにより、サイトがヘッド、Chunky Middle(中間層)、ロングテールに分かれます。30個以上のURLが必要で(それ未満では順位付きの一覧を表示します)、ブラウザのWeb Workerで動くため、大規模なサイトでもページがフリーズしません。AIアシスタントからもget_longtail_clustersとして利用できます。トピックのクラスタリングとは別の問い、つまり少数のページにどれだけ依存しているかに答えるものです。各階層については、ロングテールのドキュメントで説明しています。
セマンティッククラスタリング。GSC Wizardは、埋め込みでクエリをグループ化しません。セマンティックなクラスタが必要なら、クエリのエクスポートに対して方法3を自分で実行し、追跡したいトピックをルールとしてGSC Wizardに戻してください。そうすれば月ごとに安定した状態で保てます。すべてのプランに、トピッククラスタ、Migration Compare、ロングテールの可視化、MCPサーバーが含まれ、月額€17から、7日間の無料トライアルがあります(料金を参照)。
よくある質問
GSCのクエリをトピックにクラスタリングして改善機会を見つけるには、どうすればよいですか?
正規表現やフレーズのルール、共通する語のn-gram、あるいはセマンティックな埋め込みを使って、Search Consoleのすべてのクエリをトピックに割り当て、クリック数と表示回数を合計し、トピックごとに表示回数で加重した平均掲載順位とCTRを計算します。改善機会になるのは、表示回数が多いのに平均掲載順位が2ページ目にあるかCTRが低いトピック、複数のURLが同じクエリを取り合っているトピック、そして表示回数はあるのに専用のページがないトピックです。
Google Search Consoleは、クエリを自動でトピックにまとめてくれますか?
部分的には、はい。Search Console Insightsには、似たクエリをAIでグループ化してグループごとのクリック数を表示する「クエリグループ」カードがありますが、クエリ数が多いプロパティに限られ、Googleもグループは時間とともに変わる可能性があるとしています。パフォーマンスレポートではカスタム正規表現でクエリを絞り込めますが、一度に1つのグループしか表示されないため、自分で決めたトピックを並べて比べるには、結局、合計を手作業で書き出すことになります。
Search Consoleのクエリフィルタは、どの正規表現の構文を使いますか?
RE2です。Googleのヘルプページでは、一致は既定で部分一致とされており、^や$でアンカーを付けない限り、パターンはクエリのどこにでも一致します。また、パターンを(?-i)で始めない限り、大文字と小文字は区別されません。RE2は、先読みも後方参照もサポートしていません。
クラスタの合計がサイト全体の合計と一致しないのはなぜですか?
理由は2つあります。Googleは匿名化されたクエリ(まれなクエリ)を、すべてのクエリ表と、クエリで絞り込んだ合計から除外しているため、クラスタ化したクエリの合計は、常にサイト全体の合計より少なくなります。さらに、1つのクエリが2つのクラスタに一致する場合、GSC Wizardのトピッククラスタのように重複を許すツールでは、両方で数えられます。
埋め込みベースのクラスタリングは、キーワードのルールより優れていますか?
ルールが見逃す同義語や翻訳も拾えるので、大量で雑多なクエリ群からトピックを見つけるには優れています。追跡にはルールのほうが向いています。毎月同じグループ分けになり、クライアントにも説明できるからです。埋め込みまたはn-gramでトピックを見つけ、それをルールとして書き出す、という流れがよいワークフローです。
GSC Wizardは、Search Consoleのクエリを自動でクラスタリングしますか?
Topic Clustersレポートにはありません。各クラスタをフレーズまたは正規表現パターンのリストとして定義すると、GSC Wizardがプロパティ全体で計測します。移行の比較は、移行したクエリを語彙の近さでトピックに自動でグループ化し、ロングテールの可視化は、クエリではなくURLをヘッド、チャンキーミドル、ロングテールに分けます。GSC Wizardは埋め込みでクエリをクラスタリングしません。意味に基づくクラスタが必要な場合は、クエリのエクスポートに埋め込みモデルを適用し、得られたトピックをルールとして取り込んでください。
AIアシスタントにクラスタを作ってもらえますか?
はい、GSC Wizard MCPサーバー経由で可能です。ClaudeやChatGPTなどのアシスタントが上位クエリを読み取り、クラスタを提案し、create_topic_clusterで保存して、get_topic_cluster_performanceで計測できます。グルーピングはアシスタントの判断なので、保存する前に提案されたルールを確認してください。
次のプレイブック
複数のページが競合しているクラスタを見つけましたか?書き直す前にまずそちらを解消しましょう:キーワードのカニバリゼーションを解消する →
執筆:Jan-Willem Bobbink · 公開:2026年11月4日 · 更新:2026年11月4日