一覧へ
ワークフローツール: Claude Code

SEO Rank Watch:週に1語ずつ改善して1位まで回すエージェント・スキル

完全放置サイト向けのスキル定義そのもの。Search Console で測る → 1位に近い語を1つ選ぶ → 検索意図を調べる → 改善は1つだけ → 7日待つ → 実測で判定。ループ・状態・ガードレールが揃っているから無人で回せる。GSC を取得する自前スクリプトが必要。

当サイトでの再現

再現は準備中

出典

@yuno_miyako2

プロンプト

スキル名: SEO Rank Watch
対象サイト({site})の Google 検索順位を継続的に改善する。

目的:1位を取れそうなキーワードを見つけ、検索ニーズに答える改善を1つ行い、7日間観察する。これを1位になるまで繰り返す。

データ
- data/seo/watchwords.json — キーワード / 対象ページ / 優先度
- data/seo/rank-history.json — 順位履歴。追記専用
- data/seo/improvement-log.json — 改善履歴 / status / 次回レビュー日

status:
- active — 改善候補
- observing — 改善後7日間の観察中
- achieved — 1位達成。監視のみ

Workflow
1. 順位を測る
原則として Google Search Console を使用する。
  node {rank_script} --repo {repo_path} --append
GSC の平均順位・impressions・clicks を取得し、前回からの順位変動を確認する。
GSC が使えない場合や当日の順位を確認したい場合のみ WebSearch を使う。WebSearch の順位は概算であり、GSC を正とする。
rank: null + impressions 0 は未インデックスとは限らない。必要なら WebSearch で確認する。

2. 7日経過した改善をレビューする
nextReviewDate <= 今日 のキーワードを確認する。改善効果を見るときは28日平均ではなく7日 GSC を使う。
  node {rank_script} --repo {repo_path} --days 7
- 1位 → achieved
- 改善したが1位未達 → active
- 効果なし → active。次回は前回と違う改善方法を使う
判定結果を improvement-log.json に記録する。

3. 今日改善するキーワードを1つ選ぶ
observing と achieved は除外する。以下の順で1キーワードだけ選ぶ。
- 2〜10位 + impressions あり — 1位に近いものを優先
- 11〜20位 + impressions が多い
- 改善したが1位未達 / 効果なし
- 高優先度の rank: null
- GSC で見つかった有望な未登録クエリ
候補がなければ、順位チェックとレポートだけで終了する。改善するために無理やり対象を作らない。

4. 検索ニーズを分析する
改善前に必ず、「誰が・何を知りたくて検索しているか」を1〜2文で定義し、WebSearch で現在の上位1〜3ページを確認し、上位ページと対象ページを比較し、検索ニーズに対して不足している情報をギャップとして特定する。
SEO のために文章量を増やすのではなく、検索ユーザーが欲しい情報を追加する。

5. 1つのキーワードを改善する
ギャップに応じて必要なものだけ実装する。例:title / description / intro / FAQ 改善、不足コンテンツの追加、記事 ↔ 地域ページ ↔ 詳細ページの内部リンク、不足している実データの追加。
内部リンクは SEO 目的だけでなく、検索ユーザーの「次に知りたい・やりたいこと」へ誘導する。
1回の実行で改善するキーワードは必ず1つだけ。noindex 変更や大きなページ構造変更は勝手に適用せず、提案して承認を得る。

6. 改善を記録して7日待つ
improvement-log.json に次を記録する:
{ "keyword": "...", "targetPath": "...", "status": "observing", "nextReviewDate": "今日+7日",
  "actions": [{ "date": "...", "rankAtAction": 4.2, "needs": "検索ニーズ", "done": "実際に行った改善" }] }
data/seo/*.json の変更は Git にコミットする。observing のキーワードは nextReviewDate まで絶対に再改善しない。

Report
最後に簡潔に報告する:前回から大きく上昇 / 下降したキーワード、今回行った効果判定、今日選んだキーワードと選定理由、推測した検索ニーズ、実際に行った改善、observing 中のキーワードと nextReviewDate。
順位改善を予測で断定しない。何を変更したかを報告し、効果は次回の実測で判断する。

Guardrails
- Google SERP を独自スクリプトでスクレイピングしない。GSC または WebSearch を使う
- 1回につき改善は1キーワードだけ
- observing の7日間クールダウンを厳守
- rank-history.json の過去データを書き換えない
- 認証キーや秘密情報を出力・コミットしない
- noindex や大きな構造変更は承認なしで適用しない
- 改善効果を断定しない
- 改善対象がなければ何もしない

「測定 → 1位に近いワードを1つ選ぶ → 検索意図を調べる → 改善 → 7日観察 → 実測で判定」このループを、1位になるまで繰り返す。

変数

  • {site} · text · e.g. https://example.com
  • {repo_path} · text · e.g. /path/to/site-repo
  • {rank_script} · text · e.g. .claude/skills/seo-rank-watch/scripts/fetch_gsc_ranks.mjs (your own GSC fetch script)

効く題材

  • ページ数が多く Search Console に接続できるコンテンツサイト(投稿者が実サイトで運用中)

弱い題材

  • GSC に繋げないサイト——WebSearch の概算順位に落ちる(作者の記述)
  • 1ページのサイト——回すキーワードが足りない(仮説)
#seo#claude-code#skill#automation#search-console#loop