ClaudeにSearch ConsoleのCSVを渡してリライト優先度を決める
Search ConsoleからエクスポートしたCSVをClaudeに渡し、順位が惜しいページとクリック率の低いページを切り出してリライトの順番を決めます。プロンプト例と検算の手順つきです。
Search ConsoleのCSVをClaudeに渡すと、リライトの順番が決まる
Search Consoleのパフォーマンスレポートをエクスポートし、そのCSVをClaudeのチャットに添付すると、リライトに回すページの順番をその場で組めます。Claudeがコードを書いて集計するので、表計算の関数やピボットを組む作業は要りません。
ここでいう優先度は、2つの条件で絞ります。
- 順位がもう一歩のページ(4〜10位あたり)
- 順位のわりにクリック率が低いページ
どちらも「手を入れた分が成果に返りやすい」候補です。この記事では、CSVの用意からプロンプト、Claudeの集計結果の検算、改稿指示への落とし込みまでを順に扱います。Claude Codeを使った分析はClaude CodeでGA4とSearch Consoleを突き合わせる記事に、API経由の定点観測はSearch Console API活用の記事にあります。
CSVを用意する — クエリ別とページ別を分ける
Search Consoleのパフォーマンスレポートは、表の上のタブで集計の切り口(ディメンション)を選びます。クエリ別なら検索語ごと、ページ別ならURLごとに行がまとまります。エクスポートのボタンは、チャートと表のデータをまとめてダウンロードするものです。
リライトの優先度づけには、次の2本を別々に書き出すと扱いやすくなります。
| ファイル | 切り口 | 使いどころ |
|---|---|---|
| ページ別 | 切り口URLごとの表示回数・クリック数・CTR・平均掲載順位 | 使いどころ手を入れるページの順位づけ |
| クエリ別 | 切り口検索語ごとの同じ指標 | 使いどころ改稿で狙う語、見出しに足す語の洗い出し |
指標の意味は、レポートの説明に沿って押さえておきます。
- CTRは、クリック数を表示回数で割った値です。
- 平均掲載順位は、表の行ごとに、そのURLまたは切り口に対する平均順位です。
- レポートの初期表示は直近3か月です。期間を変えると順位の揺れ方も変わるので、比較する回はすべて同じ期間で書き出します。
書き出す前に、画面上部の検索タイプも確認します。フィルタには、ウェブ(テキスト検索)、ウェブ(画像などによるマルチモーダル検索)、画像、動画、ニュースがあり、エクスポートされるのは画面に出ている切り口のデータです。検索タイプを混ぜると別の面の数字が入るので、比較する回は同じ検索タイプで書き出します。
もう一つ、ページ別とクエリ別では集計の単位が違います。クエリ別はサイト全体(プロパティ)単位、ページ別はページ単位で集計されます。同じ検索語で自サイトの複数URLが出ていても、クエリ別では1行にまとまり、どのURLかは見えません。URLごとの検索語を知りたいときは、ページに絞り込んでからクエリ別を書き出します(絞り込みはGoogleのヘルプの「高度なフィルタと比較」にあります)。
注意点が2つあります。ダウンロードされたデータでは、レポート上で「~」や「-」(取得不可)になっていた値がゼロとして入ります。また、チャートの合計と表の合計は、集計単位の違いでずれることがあります。Claudeの集計と画面の数字が少し合わなくても、それだけで読み取りの失敗とは限りません。
添付できる形式と上限
CSVはClaudeの対応ファイル形式に入っています。チャットへの添付は、1ファイル500MBまで、1つのチャットに20ファイルまでです。
Excel形式(XLSX)で受け取った場合は、アカウントでコード実行とファイル作成を有効にしておく必要があります。CSVにはこの注記がありません。GSCのデータはCSVのまま添付するのが手堅い選択です。
コード実行が有効だと、Claudeは分析用のPythonスクリプトを作り、PNGなどのグラフ画像も出せます。この機能はFree・Pro・Max・Team・Enterpriseのどのプランでも使えますが、TeamとEnterpriseでは組織側の設定で止められている場合があります。添付しても集計が走らないときは、管理者の設定を先に疑います。
毎回の添付が面倒なら、プロジェクトのファイル欄に置く方法もあります。こちらは1ファイル30MBまでで、テキストとして取り込まれる点が異なります。長い期間のCSVを何度も読ませる運用に向きます。CSVの一般的な分析手順はClaude CSV分析の使い方にまとめています。
プロンプトの型 — 条件を数字で渡し、行数を先に答えさせる
候補の切り出し条件は、Claudeの判断に任せず数字で指定します。次のプロンプトは、ページ別CSVを添付する想定の例です。列名は、書き出したファイルの1行目に合わせて読み替えます。
添付したのはSearch Consoleのページ別CSV(直近3か月)です。
次の順で進めてください。
1. 先に、読み込んだ行数と列名、欠損のある列を報告する
2. 表示回数が100以上のページだけに絞る
3. 平均掲載順位が4以上10以下のページを「惜しい順位」として抽出する
4. 同じ順位帯(4以上7未満、7以上10以下)の中央値CTRを求め、
それを下回るページを「クリック率が低い」として抽出する
5. 抽出したページを、表示回数の多い順に並べた表にする
(列: URL / 表示回数 / クリック数 / CTR / 平均順位 / 該当した条件)
6. 絞り込みに使った条件と、除外した行数を最後に書くポイントは3つです。
- 最初に行数を答えさせる。想定と違えば、集計に入る前に気づけます。
- CTRは同じ順位帯の中で比べる。1位と8位のCTRを同じ物差しで並べても、低い理由は順位の差でしかありません。
- 条件と除外数を最後に書かせる。どの閾値で何行が落ちたかが残るので、翌月に同じ条件で再現できます。
表示回数100以上や、順位帯の区切り方は、この記事の編集上の目安です。サイトの規模によって適切な値は変わるので、最初の回は閾値を変えながら抽出数を見て決めます。
検算 — Claudeの集計をそのまま信じない
Claudeが返した表は、2か所で突き合わせます。
- 件数と合計を画面と照らします。全体のクリック数・表示回数の合計をSearch Console上の数字と比べます。前述のとおり合計がずれる要因はあるので、桁が違うときだけ疑います。
- 抽出ロジックを読みます。「集計に使ったコードを見せて」と頼み、順位の条件が「4以上10以下」になっているか(以上と超の取り違えがないか)、CTRが文字列(
3.2%)のまま比較されていないかを確かめます。
手元で裏を取るなら、次のような数行で同じ抽出ができます。列名はファイルに合わせて直してください。
import pandas as pd
df = pd.read_csv("pages.csv")
df.columns = ["url", "clicks", "impressions", "ctr", "position"]
df["ctr"] = df["ctr"].astype(str).str.rstrip("%").astype(float)
near = df[(df["impressions"] >= 100)
& df["position"].between(4, 10)].copy()
near["band"] = (near["position"] < 7).map({True: "4-6", False: "7-10"})
near["band_median"] = near.groupby("band", observed=True)["ctr"].transform("median")
low_ctr = near[near["ctr"] < near["band_median"]]
print(low_ctr.sort_values("impressions", ascending=False).head(20))Claudeの結果と数ページ以上食い違うなら、どちらかの前提(列の意味、閾値、期間)がずれています。ずれの原因を突き止めてから、次の工程に進みます。
抽出したページを改稿指示に変える
優先度の表ができたら、同じチャットで、対象ページに絞り込んで書き出したクエリ別CSVを追加し、ページごとの改稿指示まで落とします。順位が惜しいページとクリック率が低いページでは、手を入れる場所が違います。
該当した条件で、改稿の打ち手が変わる
順位が惜しいページ
検索語に対して本文が答え切れていない可能性を見ます。対象ページに絞り込んだクエリ別CSVで、そのページに表示されている語を洗い出し、見出しや本文で触れていない語を追加候補にします。
クリック率が低いページ
順位に対して、タイトルと説明文が検索語と噛み合っていない可能性を見ます。タイトルの先頭に検索語の核が出ているか、説明文が結論を言っているかを点検します。
改稿指示を出させるプロンプトは、対象を1ページに絞ると精度が上がります。
先ほど抽出した上位5ページのうち、1位のページについて、
添付のクエリ別CSV(このURLに絞り込んで書き出したもの)に表示されている検索語を整理してください。
- 順位が惜しい語(4〜10位)を、表示回数の多い順に挙げる
- 現在のタイトル案とのズレを1行で指摘する
- 追記する見出し候補を3つまで出す
CSVにない情報は推測で補わず、「CSVからは分からない」と書いてください。最後の一文が大事です。CSVに載っているのは順位と数字だけで、ページ本文の中身ではありません。本文を見ずにClaudeが書いた改稿案は、あくまで仮説として扱い、実際の記事と照らしてから着手します。
抽出後の並べ替え — 伸びしろをクリック数に換算する
抽出したページが10本を超えると、表示回数順では優先度がつけにくくなります。クリック率が低いページには、同じ順位帯の中央値まで上がったと仮定した場合の増分を計算させる方法があります。
抽出した「クリック率が低い」ページについて、次の列を追加してください。
- 想定増分クリック = 表示回数 × (同じ順位帯の中央値CTR − 現在のCTR)
増分の大きい順に並べ、上位10ページだけを表にしてください。
この値は試算であり、実際の増加を保証しないと注記してください。この式は、タイトルや説明文の改善で順位帯の標準的なCTRまで届くという仮定の上に立つ、編集上の目安です。Search Consoleのデータに、リライトで実際にどれだけ増えるかは含まれていません。順番を決める材料として使い、効果の予測としては扱いません。
順位が惜しいページの側は、順位が1つ上がったときの増分を同じ要領で見積もれますが、CTRと順位の関係は検索語の性質で大きく変わります。サイトの実データから、順位帯ごとのCTRの中央値を使うほうが、一般論の数字を借りるよりずれが小さくなります。
並べ替えの結果は、3つの観点で読み直します。
- 表示回数の大半が、ブランド名を含む検索語から来ていないか。ブランド名の検索はリライトで動かしにくく、伸びしろの試算が過大になります
- 同じ検索語で複数のURLが出ていないか。クエリ別CSVは1つの語が1行にまとまるので、これだけでは分かりません。ページ別との突き合わせでも見えないため、疑わしい語はSearch Console API活用の記事の手順で、検索語とURLの組み合わせを取って確かめます。複数ページが並ぶなら、改稿の前にページ同士の役割分担を決めます
- 直近で改稿したばかりのページが混ざっていないか。変更の効果が出る前の数字で優先度を決めることになります
3つ目は、改稿日を一覧にして別途添付すると、Claudeが除外条件に組み込めます。「改稿日が30日以内のページは除外」のように、日数も数字で渡します。
毎月回すときの固定化
同じ手順を毎月繰り返すなら、プロンプトの1〜6の条件をテキストファイルにして、プロジェクトのファイル欄に置いておきます。月が変わったらCSVだけを差し替え、「先月の抽出結果と見比べて、新しく条件に入ったページと外れたページを分けて」と一言足します。リライトの効果は、直したページが「惜しい順位」の表から抜けたかどうかで、翌月の表に出ます。
CSVの手動エクスポートが負担になってきたら、API経由の取得に切り替える段階です。手順はSearch Console API活用の記事にあります。SEO指標を外部ツールのデータと合わせて月次で監査する運用は、ClaudeとAhrefsの連携による月次SEO監査で扱っています。