SEOキーワードリサーチスキル
ブログコンテンツを作成する前に、トレンドでチャンスの高いキーワードを見つけましょう。このスキルは、一般的なブログトピックをSEO最適化されたランキング上位のコンテンツに変えます。
使用すべきタイミング
- ユーザーがブログ記事や投稿の作成を依頼した場合
- ユーザーがトピックのキーワードリサーチを希望する場合
- ユーザーがコンテンツカレンダーやコンテンツ計画を必要としている場合
- ユーザーが既存のコンテンツをSEO最適化したい場合
- テクノロジー/開発者向けオーディエンスのためのブログ生成タスク全般
基本原則
ブログコンテンツを生成する前に、必ずキーワードリサーチを実施すること。
悪い例: ブログを書く -> ランキングを期待する -> 大抵は上位表示されない
良い例: キーワードリサーチ -> 急上昇キーワードを発見 -> 最適化されたブログを作成 -> 上位表示される
キーワード優先順位システム
Google TrendsのRELATED_QUERIES結果を分析する際、以下の順序でキーワードに優先順位を付けます。
1. 急上昇キーワード — 最高優先度
formatted_value: "Breakout"= 5000%以上の成長- 競合が非常に少ない(新しいトレンド)
- ブログのプライマリキーワードとして使用
- すぐにコンテンツを作成(ファーストムーバーアドバンテージ)
2. 高成長キーワード — 非常に高い優先度
formatted_value: "+100%"以上- 競合が少ないから中程度
- プライマリまたは強力なセカンダリキーワードとして使用
- 2〜4週間以内にコンテンツを作成
3. 中程度成長キーワード — 高い優先度
formatted_value: "+50%"から"+99%"- 競合が中程度
- 本文中のセカンダリキーワードとして使用
4. ロングテールキーワード — 戦略的な優先度
- 質問ベースのクエリ(方法、~とは、理由、時期、場所)
- 競合が少なく、コンバージョン率が高い
- H3見出しとして使用 — 注目スニペットと音声検索をターゲットにする
5. 確立されたキーワード — 中程度の優先度
- 安定した関心と高い競合があるトップクエリ
- プライマリターゲットではなく、本文中で使用
SEOリサーチワークフロー
ステップ1: キーワード発見(API呼び出し1回 — 必須)
ユーザーのブログトピックに対してRELATED_QUERIESをクエリします:
curl -s "https://serpapi.com/search?engine=google_trends&q=USER_TOPIC&data_type=RELATED_QUERIES&date=today+3-m&api_key=$SERPAPI_KEY"
レスポンスから以下を抽出:
- 急上昇キーワード → プライマリキーワードの候補
- 高成長キーワード (+100%) → セカンダリ候補
- 質問ベースのクエリ → H3見出しと注目スニペットのターゲット
プライマリキーワードを選択:
- 最初の急上昇キーワード(存在する場合)
- それ以外の場合は最初の高成長キーワード
- それ以外の場合はスコアが最も高いクエリ
ステップ2: コンテンツ構造(API呼び出し1回 — 必須)
同じトピックに対してRELATED_TOPICSをクエリします:
curl -s "https://serpapi.com/search?engine=google_trends&q=USER_TOPIC&data_type=RELATED_TOPICS&date=today+3-m&api_key=$SERPAPI_KEY"
急上昇中およびトップの結果からトピックタイトルを抽出します。これらがH2セクション見出しになります(3〜5つ選択)。
ステップ3: トレンド検証(API呼び出し1回 — 任意)
複数の候補キーワードから選択する場合や、実現可能性を検証する場合のみ:
curl -s "https://serpapi.com/search?engine=google_trends&q=KEYWORD&data_type=TIMESERIES&date=today+12-m&api_key=$SERPAPI_KEY"
最近2ヶ月の平均とそれ以前の2ヶ月の平均を比較します。最近の平均が高い場合はトレンドが上昇しているため、続行します。減少している場合は、別のキーワードを検討します。
ステップ4: ブログアウトラインの生成
以下の構造を使用してアウトラインを構築します:
タイトル: [プライマリキーワード] — [メリット/数字] [年]
(最大60文字、プライマリキーワードを含めること)
メタディスクリプション: (150〜160文字、プライマリ + 1〜2個のセカンダリキーワード)
# [H1 — タイトルと同じまたはバリエーション]
## はじめに(150語)
- 最初の100語以内にプライマリキーワード
- 問題や質問で読者を引きつける
- 学習内容のプレビュー
## [H2: ステップ2からの関連トピック1]
### [H3: ステップ1からのロングテール質問]
質問に答えるコンテンツ(150〜200語)
### [H3: 別のロングテール質問]
コンテンツ(150〜200語)
## [H2: 関連トピック2]
### [H3: ロングテール質問]
### [H3: ロングテール質問]
## [H2: 関連トピック3]
### [H3: ロングテール質問]
### [H3: ロングテール質問]
## まとめ(100語)
- 重要なポイントを要約
- プライマリキーワードを1回使用
- 行動喚起
目標: 合計1500〜2500語
キーワード配置ルール
| 場所 | ルール |
|---|---|
| タイトル | プライマリキーワードを含め、最大60文字 |
| H1 | タイトルと同じか、わずかに変えたもの |
| H2見出し(3〜5つ) | 関連トピックを使用し、自然な表現 |
| H3見出し(8〜12個) | ロングテールキーワードを質問形式で使用 |
| 最初の段落 | 最初の100語以内にプライマリキーワード |
| 本文 | プライマリキーワード密度1〜2%、セカンダリ0.5〜1% |
| まとめ | プライマリキーワードを1回 |
| メタディスクリプション | プライマリ + 1〜2個のセカンダリ、150〜160文字 |
キーワードの詰め込みは絶対にしないでください。 コンテンツは自然に読める必要があります。Googleは不自然な繰り返しをペナルティの対象とします。
品質チェックリスト
ブログを生成する前に、以下を確認してください:
- 少なくとも1つの急上昇または+100%のキーワードを見つけた(または確立されたキーワードを使用する正当な理由がある)
- RELATED_TOPICSから3〜5つのH2トピックを取得した
- H3見出し用のロングテールキーワードを取得した
- プライマリキーワードがランキングを獲得するのに十分に具体的である
- ブログ構造が上記のアウトラインテンプレートに従っている
- メタディスクリプションが記述されている(150〜160文字)
- 目標の長さが1500〜2500語である
トピックに急上昇または高成長キーワードが存在しない場合は、SEOの機会が限られていることをユーザーに伝え、成長が見られる代替の角度や関連トピックを提案してください。
予算に関する注意
無料枠: 月250回の検索
| 戦略 | ブログあたりの呼び出し回数 | 月間容量 |
|---|---|---|
| 最小限(推奨) | 2 | 125ブログ |
| 標準 | 3 | 83ブログ |
| 完全版 | 4 | 62ブログ |
デフォルトでは2回の呼び出し(RELATED_QUERIES + RELATED_TOPICS)にします。TIMESERIESやGEO_MAPは、特に必要な場合にのみ追加します。
避けるべきよくある間違い
- リサーチをスキップする — トレンドを確認せずに記事を書くと、急上昇キーワードの機会を逃す
- 急上昇キーワードを無視する — 急上昇中のバリアントが存在するのに、一般的な用語を使用する
- キーワードの詰め込み — キーワードを不自然に繰り返さない。密度を1〜2%に保つ
- ロングテールキーワードがない — 注目スニペットや音声検索の機会を逃す
- 一般的なH2見出し — セクション構造には常にRELATED_TOPICSデータを使用する
サンプルスクリプト
完全な動作例を実行するには:
python scripts/blog_seo_research.py "あなたのブログトピック"
実装の詳細は scripts/blog_seo_research.py を参照してください。
参考資料
- references/keyword-placement-guide.md — 詳細な配置ルールと例
- references/tech-blog-examples.md — テクノロジー/開発者ブログの実例