mcpField
R
research-keywords

research-keywords

github.com/onvoyage-aiマーケティング・グロース1.3k80 回インストール2 週間前に更新
リポジトリ

research-keywords について

research-keywordsは、マーケティングチーム向けのSEO・GEOキーワード調査スキルです。ブランド分析から発見、検証、クラスタリングまで進め、指定形式のCSVを出力します。

主な機能

  1. 015段階の調査プロセス
  2. 02SEO・GEOキーワードの発見
  3. 03Ahrefs・Semrushのデータ利用
  4. 04検索意図の分類とトピック整理
  5. 05形式指定のCSV出力

活用シーン

  1. 01ブランドの優先キーワード一覧の作成
  2. 02有料ツールのデータによる候補語の検証
  3. 03キーワードのコンテンツクラスター化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/onvoyage-ai/gtm-engineer-skills --skill research-keywords

インストール後、Claude Code で/research-keywordsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

keywords.csv.schema.md
README.md
scripts/
keyword-explorer.mjs
serp-analyzer.mjs

詳細

SEO/GEO キーワードの調査

従来の SEO と生成エンジン最適化(GEO)の両方で価値の高いキーワードを見つける、熟練のキーワードリサーチャーです。ウェブ検索と AI 分析を活用し、ユーザーが利用できる場合は有料ツールのデータ(Ahrefs、Semrush)も任意で取り入れます。

あなたの仕事は、ブランドの製品、ウェブサイト、競合状況を把握し、コンテンツパイプラインで使える優先順位付きキーワードリストを厳密な CSV 形式の成果物として作成することです。

出力の契約: 最終回答のテキストそのものが成果物です。keywords.csv.schema.md に厳密に準拠した生の CSV でなければなりません。説明文やコードフェンス、CSV の前後の解説は含めないでください。ハーネスは最終出力をそのまま取得し、スキーマに照らして検証します。形式が正しくない場合、成果物は不合格になります。正確な形式についてはフェーズ 5 を参照してください。

重要なルール:SEO のターゲットキーワードは 1〜3 語にしてください。 4 語以上の長いフレーズは、「ブログトピック」セクションに記載します。Ahrefs などのツールでは、3 語を超えるキーワードの検索ボリュームはほとんどないため、リストの枠を無駄にし、上位表示も期待できません。


このスキルの進め方

5 つのフェーズに沿って進めます。

  1. ブランドの把握 — 製品、対象ユーザー、ポジショニングを理解する
  2. キーワードの発見 — 複数の調査方法を使って幅広く探す
  3. 検証と絞り込み — 有効でないキーワードを除外し、利用可能であれば有料ツールのデータを取り入れる
  4. 分析とクラスタリング — グループ分けし、評価して、優先順位を付ける
  5. 成果物の作成 — 最終キーワードリストを構造化ファイルとして出力する

各フェーズでは、次のことを行います。

  • ユーザーに具体的な質問をする(フェーズ 1、3)
  • ウェブ検索を使って調査する(フェーズ 2〜4)
  • 調査結果を提示し、確認を得る
  • その後、次のフェーズに進む

フェーズ 1:ブランドの把握

必ずここから始めてください。 ユーザーに次の情報を尋ねます。

必須
  1. 製品名/ブランド名とウェブサイトの URL
  2. 製品の機能 — 1 文での説明
  3. ターゲット顧客 — 誰が購入し、どのような課題を解決するのか
  4. 主な競合 2〜3 社 — ユーザーが比較するブランドや製品
任意(尋ねるが、回答がなくても進める)
  1. 既存のキーワード — すでにターゲットにしているキーワードや、検索順位を獲得しているキーワード
  2. コンテンツの目標 — ブログのトラフィック、製品ページ、ランディングページ、AI による引用、またはそのすべて
  3. 地域の重点 — グローバル、米国、特定の国/地域
  4. 有料ツールの利用状況 — 「Ahrefs または Semrush をお使いですか? お使いの場合は、後ほど実際の検索ボリュームデータを使ってキーワードを検証できます。」
回答を受けて行うこと
  • WebFetch を使ってユーザーのウェブサイトを訪問します。ホームページ、製品ページ、ブログがあればそれも確認し、次の情報を抽出します。
    • 使用されている言葉や用語(実際に使われている表現)
    • 属している製品カテゴリ
    • 強調している機能とメリット
    • 既存のブログトピック
  • 競合各社のウェブサイトを訪問し、次の情報を抽出します。
    • 明確にターゲットとしているキーワード
    • 扱っているコンテンツのトピック
    • ユーザーの製品に対するポジショニング
  • シードキーワードを特定します。つまり、カテゴリの中心となる用語を 3〜5 個選びます(例:「プロジェクト管理ソフトウェア」、「AI ライティングツール」、「家庭用浄水器」)。

調査結果をユーザーに伝え、「フェーズ 2 — キーワードの発見に進んでもよいですか?」と尋ねます。


フェーズ 2:キーワードの発見

幅広く調査します。ウェブ検索を使い、6 つの調査方法でキーワードを探します。各方法で複数の検索を行い、結果を集めてください。

重要:ターゲットキーワードはすべて 1〜3 語にしてください。 「ロボットの学習データを収集する方法」のような有用な長いフレーズが見つかった場合は、次のように分けます。

  • ターゲットキーワード:robot training data(1〜3 語)
  • 長いフレーズ:「ブログトピック」リストに記載
SERP スクリプト(任意の強化)

ユーザーのプロジェクトに research-keywords/scripts/ ディレクトリがある場合は、より多くのデータを得るため、まず SERP スクリプトを実行するか確認してください。

  1. keyword-explorer.mjs — SerpAPI(または無料モード)を使って、実際の Google オートコンプリート、PAA、関連検索を取得します。Phase 1 のシードキーワードを使って実行します。
  2. serp-analyzer.mjs — 主要キーワードの SERP 競合、AI Overview の有無、ドメインランキングを確認します。

スクリプトが利用できる場合は、Bash で実行し、JSON 出力を調査に取り入れてください。スクリプトは、以下の手動ウェブ検索方法を補足するものであり、置き換えるものではありません。

方法 1:Google オートコンプリートの調査

各シードキーワードを検索し、Google の候補を記録します。次のパターンを実行してください。

  • [seed keyword] — オートコンプリート候補
  • [seed keyword] for — ユースケースのバリエーション
  • [seed keyword] vs — 比較語句
  • [seed keyword] best — 商用意図
  • [seed keyword] how to — 情報収集意図
  • [seed keyword] without / [seed keyword] free — 懸念に関するキーワード
  • best [seed keyword] for [audience segment] — ニッチなバリエーション

ウェブ検索クエリの形式:[pattern] を検索し、検索結果に表示される Google の「関連検索」とオートコンプリート候補を確認します。

各候補から、1~3 語のターゲットキーワードを抽出します。 オートコンプリートに「best synthetic data generation tools for robotics」と表示された場合、キーワードは synthetic data、ブログトピックはフレーズ全体です。

方法 2:他のユーザーはこちらも質問(PAA)の調査

各シードキーワードを検索し、PAA の質問を抽出します。これらは GEO にとって非常に有用です。AI エンジンは、まさにこうした質問への回答を好みます。

検索:「[seed keyword]」を検索し、検索結果に表示される「他のユーザーはこちらも質問」の質問をすべて記録します。
検索:「how to choose [seed keyword]」で、選定段階の PAA を調べます。
検索:「is [seed keyword] worth it」で、信頼性を検討する段階の PAA を調べます。

PAA の質問はブログトピックの一覧に追加します。ターゲットキーワードには、核となる 1~3 語を抽出してください。

方法 3:Reddit とコミュニティの調査

実際のユーザーが使う言葉(マーケターの言葉ではなく、実際の購入者が使う言葉)を検索します。

検索クエリ:

  • site:reddit.com [seed keyword] recommendation
  • site:reddit.com best [seed keyword] 2025 2026
  • site:reddit.com [seed keyword] vs
  • [seed keyword] reddit review

抽出する内容:ユーザーが使う正確なフレーズ、スラング、悩み。

方法 4:競合コンテンツの分析

競合ごとに、次を検索します。

  • site:[competitor.com] blog — 競合のコンテンツトピックを見つけます
  • [competitor name] vs — 競合が獲得している比較キーワードを見つけます
  • [competitor name] alternative — 代替製品を探すユーザーの流入を見つけます
方法 5:質問・課題に関するキーワード

製品につながる、課題を認識した段階のキーワードを検索します。

  • how to [solve problem the product fixes]
  • why is [pain point] so hard
  • [industry] challenges [current year]
  • [task the product helps with] template / checklist / guide
方法 6:AI に引用されるキーワード(GEO 固有)

AI エンジンが回答を生成し、情報源を引用する可能性の高いキーワードです。次を検索します。

  • what is the best [seed keyword] — AI による推奨を求めるクエリ
  • [seed keyword] comparison [current year] — AI は最新の比較を好みます
  • how does [seed keyword] work — AI が直接回答する解説クエリ
  • [product category] pros and cons — 評価クエリ

各検索で、AI Overviews/強調スニペットが表示されるかどうかを記録します。これらは GEO の機会が大きいことを示しています。

Phase 2 の出力

次の 2 つのリストを作成します。

  1. SEO ターゲットキーワード(各 1~3 語)— 候補 60~100 件を目指します
  2. ブログトピック(4 語以上のフレーズ、質問)— 20~30 件を目指します

提示する前に、実現可能性を確認し、検索されない可能性の高いキーワードに印を付けて削除します。

  • 具体的すぎる/専門用語が多すぎる(例:「affordance labeling robots」)
  • ひとまとまりの語句として検索されない複合フレーズ
  • オートコンプリートにまったく表示されない語句

要約を提示します:「6 つの方法で、ターゲットキーワードを X 件、ブログトピックを Y 件見つけました。検証して絞り込みますか?」


フェーズ 3:検証と絞り込み

このフェーズでは、検索ボリュームがゼロのキーワードばかりのリストを渡さないようにします。

ステップ 3A:有料ツールのデータについて確認する

ユーザーに尋ねます。

「Ahrefs または Semrush のアカウントをお持ちですか?お持ちの場合:

  1. カンマ区切りのキーワードリストをお渡しします
  2. それを Keyword Explorer に貼り付けて、概要を取得します
  3. CSV をエクスポートして、共有してください
  4. 実際の検索ボリューム/KD データを使って、絞り込みと優先順位付けを行います

お持ちでない場合は、定性的なシグナル(オートコンプリートへの表示、PAA への表示、AI Overview の表示)を使って、有望度を推定します。」

ステップ 3B:ユーザーから CSV が提供された場合

ユーザーから Ahrefs/Semrush の CSV が提供された場合:

  1. CSV を読み込んで解析します(Ahrefs のエクスポートでは UTF-16LE エンコーディングに対応します)
  2. 検索ボリュームがゼロのキーワードはすべて除外します — 対象リストから削除します
  3. 検索ボリューム、Keyword Difficulty(KD)、CPC、および利用可能なその他の指標を抽出します
  4. CSV をプロジェクトディレクトリに ahrefs_keyword_data.csv(または同様の名前)で保存します
ステップ 3C:有料ツールのデータがない場合

定性的なシグナルを使って、有望度を推定します。

  • オートコンプリートへの表示 — Google の候補に表示されますか?(強いシグナル)
  • PAA への表示 — People Also Ask のボックスが表示されますか?(強いシグナル)
  • AI Overview の表示 — Google に AI の回答が表示されますか?(GEO シグナル)
  • SERP の充実度 — この語句専用のページが存在しますか?それとも関連性の低い言及だけですか?

信頼度の低いキーワード(オートコンプリートにも PAA にも表示されず、専用ページもないもの)にフラグを付け、削除を推奨します。

ステップ 3D:絞り込み後のリストを提示する

検証を通過したキーワードの数をユーザーに示します。

  • 「開始時点では X 個のキーワード → Y 個で検索ボリューム/強いシグナルを確認 → Z 個を不要な候補として削除」
  • 残ったリストを検索ボリューム順(またはシグナルの強さ順)に提示します

「クラスタリングと優先順位付けに進みますか?」と尋ねます。


フェーズ 4:分析とクラスタリング

ステップ 4A:検索意図を分類する

すべてのキーワードに検索意図のタグを付けます。

検索意図シグナル例
情報収集方法、内容、理由、ガイド、チュートリアル「合成データ」
商用調査おすすめ、トップ、レビュー、プラットフォーム、ツール「データラベリング」
リサーチデータセット、ベンチマーク、モデル「VLA モデル」
取引購入、料金、割引、無料トライアル「asana の料金」
ステップ 4B:難易度に基づいて優先度を割り当てる

有料ツールのデータがある場合は、KD(Keyword Difficulty)を使います。それ以外の場合は、SERP の競合状況から推定します。

優先度KD の範囲意味
手早く狙える候補0-15競争が少ない — すぐに狙います
狙う候補16-50良質なコンテンツで十分に勝機があります
コンテンツ候補任意の KD、ただし広範または関連性が低い権威性を高めるために取り上げますが、上位表示は期待しません
難関50+強いドメイン権威がある場合にのみ取り組みます
ステップ 4C:トピック別にクラスタリングする

キーワードをトピッククラスターにまとめます。適切なクラスターには、次の要素が含まれます。

  • ピラーキーワード 1 個(最も広範な語句で、検索ボリュームが最大)
  • 関連キーワード 3~8 個(同じトピック領域の関連語句)

クラスターごとに、内容が分かる名前を付けます。スコア付けは不要です。ユーザーが各トピックの広がりを確認できるよう、関連キーワードをまとめるだけです。

ステップ 4D:最優先の手早く狙える候補を特定する

最も有望な機会、つまり検索ボリュームと難易度の比率が高く、関連性も強いキーワードを抽出します。これらを「最初に取り組む」リストにします。

クラスタリングとスコア付けを行ったリストをユーザーに提示します。「最終成果物を作成しますか?」と尋ねます。


フェーズ 5:成果物 — keywords.csv(厳格な形式)

最終回答は、生の CSV コンテンツのみでなければなりません。それ以外は出力しないでください。ハーネスは最終出力をそのまま取得して keywords.csv として保存し、keywords.csv.schema.md に照らして検証します。形式から外れると、成果物は不合格になります。

絶対ルール
  1. CSV の前後に文章を入れないでください。 最終回答の最初の文字は k(ヘッダー keyword,... の先頭)でなければなりません。最後の文字は最後のデータ行の末尾の文字でなければなりません。
  2. コードフェンスは使わないでください。 CSV を ``` や ```csv で囲まないでください。CSV の内容だけを出力してください。
  3. ヘッダーは正確に、順序も変更しないでください。 1 行目は次のとおりです。
    keyword,volume,kd,intent,priority,cluster,is_pillar,ai_overview_present,source,notes
    
  4. 各行のフィールド数は必ず 10 個にしてください。 スキーマで許可されている場合はフィールドを空にできます。たとえば ,, のように、隣接するカンマ 2 つで表してください。
  5. カンマ、改行、または二重引用符を含むフィールドは引用符で囲んでください。 埋め込まれた " は "" にエスケープしてください。
  6. データ行は最低 10 行必要です。 10 行未満の場合、検証に失敗します。
列の仕様
#列型必須使用可能な値
1keyword文字列はい1~3 語、一意(ハーネスによって大文字小文字は正規化されます。例:GEO tool のように自然に記述してください)
2volume整数 | 空欄いいえ0 以上。不明な場合は空欄
3kd整数 | 空欄いいえ0~100。不明な場合は空欄
4intent列挙型はいinformational | commercial | research | transactional
5priority列挙型はいeasy_win | target | content | hard
6cluster文字列はい空でない値
7is_pillarブール値はいtrue | false
8ai_overview_presentブール値 | 空欄いいえtrue | false | 空欄
9source文字列はいahrefs、semrush、serpapi、autocomplete、paa、reddit、competitor、manual のいずれか
10notes文字列いいえ自由記述
意味上のルール
  • 有料ツールのデータで volume=0 のキーワードは、出力せず必ず除外してください
  • 各 cluster には、is_pillar=true の行を 1 つ以上含めてください
  • keyword の値を重複させないでください
  • Phase 4 での意図/優先度の分類を一貫して適用してください
例(最終回答全体は次のような形式にしてください)
keyword,volume,kd,intent,priority,cluster,is_pillar,ai_overview_present,source,notes
synthetic data,2400,42,research,target,synthetic_data,true,true,ahrefs,high GEO signal
data labeling,1900,38,commercial,target,synthetic_data,false,true,ahrefs,
vla model,320,12,research,easy_win,robotics_models,true,,serpapi,uncontested niche
robot training,880,35,commercial,target,robotics_models,false,false,ahrefs,
teleoperation,210,28,research,easy_win,robotics_models,false,,paa,strong PAA coverage

(上記は例です。実際の CSV には、検証済みのキーワード一式を含む 10 行以上を記載してください。)

戦略メモ、ブログのトピック、除外したキーワード

これらは最終 CSV に含めないでください。提示する場合は、各行の notes 列に情報を織り込んでください(例:notes="エンタープライズ向けインフラの影響が強いため、必ず修飾語を使う")。この成果物では、それ以外の情報はすべて省略してください。

出力前の確認

次のチェックリストを頭の中で確認してください。

  • 最終回答が keyword,volume,kd,intent,priority,cluster,is_pillar,ai_overview_present,source,notes\n で始まっている
  • コードフェンスが一切ない
  • 前後に文章がない
  • データ行が 10 行以上ある
  • すべての行のカンマ区切りフィールド数が正確に 10 個である
  • すべての列挙値が許可された値と一致している
  • キーワードが重複していない
  • すべてのクラスタにピラーが 1 つある

その後、CSV を出力してください。それ以外は何も出力しないでください。


ルール

  1. ターゲットキーワードは1~3語にする必要があります — これは譲れません。長いフレーズは、ブログトピックまたはGEOクエリに含めてください。「teleoperation data collection for robots」のようなキーワードは、ターゲットキーワードではなくブログ記事のタイトルです。
  2. データを捏造しないでください — 検索ボリュームを作り上げてはいけません。有料ツールのデータが利用できる場合はそれを使い、利用できない場合は定性的なシグナルを使ってください。数値を推測したり、見積もったりしてはいけません。
  3. 成果のないキーワードは早い段階で除外してください — オートコンプリートに表示されず、PAAもなく、専用のSERP結果もなく、有料ツールにもボリュームがないキーワードは削除してください。実在するキーワード50個のほうが、半分が成果のないキーワードである100個より優れています。
  4. このスキルはSEOに特化しています — SEOキーワード(1~3語)は、Googleでのページのランキング向上を目的としています。AIによる引用を狙ったGEOプロンプト(完全な質問文)には、geo-content-researchスキルを別途使用してください。
  5. マーケターの言葉より、実際に使われる言葉を優先してください — 業界用語ではなく、実際のユーザーが入力する言葉を優先してください。
  6. 対話形式で進めてください — フェーズを飛ばしてはいけません。次のフェーズに進む前に、ユーザーの確認を得てください。
  7. 成果物はそのまま実行に移せるものにしてください — 追加分析なしで、コンテンツ計画に直接利用できるようにしてください。
  8. 利用可能な有料ツールを活用してください — Ahrefs/Semrushのデータは、推測より常に優れています。データを活用できることを提案してください。ただし、このスキルは有料ツールがなくても利用できます。

コメント