自分のブログの GA を Claude Code に勝手に分析させる bot を作った話
「ブログ書いたけど読まれてるかわからない」「GA 開く時間がない」「次に何を書けばいいか分からない」——副業で個人ブログを運営している本業エンジニアなら、この感覚が分かるはずです。
筆者も同じでした。Claude Code で月 500 万トークン回しながら 88 記事を書いてきたのに、自分のブログの数字を見るのは月 1 回ダッシュボードを開く程度。書く時間より「効果検証しない罪悪感」の方が積もっていました。
そこで Claude Code を「自分のブログの専属 SEO 分析者」として雇うために、毎週月曜に Google Analytics と Search Console のデータを GitHub Actions で勝手に取得し、Claude Code に投げて分析させる bot を 3 時間で組みました。
結論
bot を作ったら、副業時間ゼロで「次の記事は何を書けば良いか」が数字で降ってくるようになりました。
- 毎週月曜 10:00 JST に自動で 4 種類の CSV が
analytics/に commit される - Claude Code に「
analytics/search-console-pages-latest.csvを読んで CTR が低い記事を特定して」と投げるだけで分析が返ってくる - 88 記事中の 隠れ勝者(
/labs/claude-code-labが CTR 20%)と 重症記事(ep02 MCP は滞在 1.6 秒 / 直帰 91.7%)が初回実行で同時に判明 - ダッシュボードを開く時間がゼロになった
実装は TypeScript 2 ファイル + GitHub Actions 1 ファイル + Service Account 1 個 だけ。本記事では構築の経緯と、初回 CSV で見えた 5 つの現実を共有します。
この記事の前提(実験条件)
- 筆者環境: masatoman.net(Next.js 16 + MDX、88 記事公開済)、Vercel デプロイ、Search Console セットアップは 2026-04-20 開始
- 構築日: 2026-04-28(本記事の公開日と同日、構築直後の記録)
- 既に取れていたデータ: 2026-04-27 時点で Search Console フィルタ済み 1 ページ分(
cursor-pricing-plans-guide-2026のクエリ別、4 日間)のみ - bot 化前の運用: 月 1 回ダッシュボードを手動で開く程度、CSV エクスポートは年に数回
- 主観: マーケが下手という自覚あり、Claude Code に判断を任せたい
本記事の「初回 CSV で見えた数字」は、bot を初実行した直後の単発結果です。時系列効果(順位上昇 / インデックス進行)は来週月曜以降の蓄積待ちで、本記事執筆時点では未測定です。
読者のよくある詰まり(それ俺だ、と思った人へ)
- ブログを書く時間より、書いた後の効果を見ない時間 の方が長くなっている
- GA / Search Console を開く気持ちはあるが、毎週の習慣にできない
- 開いてもどの記事を直すべきか判断できない、自分のマーケセンスを信じられない
- 副業の限られた時間を「分析」より「書く・売る」に使いたい
- 「自分のブログ、誰にも届かずに死んでないか?」が時々頭をよぎる
これらに 1 つでも当てはまる人向けの記事です。当てはまらない人(既に毎週習慣化している、社内マーケチームがいる等)には不要です。
実際に起きたこと(構築 3 時間 + 初回実行 36 秒)
構築の流れ
- 既存記事のコードをスクリプト化: 2026-04-10 に書いた解説記事 の TypeScript コードを→
scripts/search_console_tracker.tsとscripts/ga4_tracker.tsとして配置 - GitHub Actions ワークフロー作成: 毎週月曜 10:00 JST に cron で自動実行、CSV を
analytics/ディレクトリに commit - Google Cloud Service Account 設定: 既存の GCP プロジェクトを流用、Search Console と GA4 にメールアドレスを「制限付き」「閲覧者」で追加
- GitHub Secrets 登録:
GOOGLE_SERVICE_ACCOUNT_JSON(JSON 全文)とGA4_PROPERTY_ID(数字 9 桁)を登録 - 手動トリガーで動作確認: Actions タブから「Run workflow」を押す
ワークフロー実行時間: 36 秒(GitHub Actions のログ実測値、commit 9e5212f 直前の dpl_2xqUhbTxygz8m4GzTSdz1fKsB93i から確認)。
初回 CSV で見えた 5 つの現実
bot が analytics/ に commit した 4 つの CSV を眺めて、即座に以下が判明しました(すべて過去 28 日のデータ)。
1. 隠れ勝者: /labs/claude-code-lab が CTR 20%
search-console-pages-latest.csv を見ると、ラボのトップページ /labs/claude-code-lab がインプレッション 5、クリック 1、CTR 20%、平均掲載順位 5.8 でした。88 記事の他のページは全て CTR 0% で、ここだけが CTR を取っていました。
仮説: ラボ系ページは検索意図にハマっている可能性。同じ構造を他のラボページにも展開する価値がありそう。これは検証が必要な仮説で、本記事執筆時点では再現性は確認できていません。
2. 重症記事: ep02 MCP サーバー記事が滞在 1.6 秒 / 直帰 91.7%
ga4-pages-latest.csv で claude-code-lab-ep02-mcp-server-guide-2026 を見ると、平均エンゲージメント時間 1.6 秒、直帰率 91.7%、12 PV でした。冒頭で即離脱されているシグナルです。
タイトルと本文冒頭にギャップがあるか、コンテンツが期待を満たせていない可能性。ここは本文側の問題で、データ蓄積を待たずに即調査できます。
3. Bing からの流入が Google を上回った
ga4-acquisition-latest.csv の流入元別セッション数:
(direct) / (none)221t.co / referral(X) 30qiita.com / referral29bing / organic26google / organic13note.com / referral3
筆者は 2026-04-25 に Bing Webmaster Tools へサイトマップを投入していました(IndexNow プロトコル経由)。Bing オーガニックが Google オーガニックの 2 倍になっている事実は予想外でした。Google のインデックスがまだ新規ドメインに対して様子見の可能性。
4. Qiita からの流入が X とほぼ同じ
X 30 セッション vs Qiita 29 セッションは想定外でした。Qiita 経由で内部リンクが踏まれている記事があるはずで、それを強化する余地が見えます。
5. Search Console の取得対象ページが想定より広かった
bot 化前、筆者は「88 記事中 1 記事しか観測されていない」と思い込んでいました(4-27 の手動 CSV エクスポート時に単一ページでフィルタしていたため)。bot で全サイトをエクスポートすると、88 記事中 6 記事がインプレッションを獲得済でした。
| ページ | インプレッション | 平均順位 |
|---|---|---|
/articles/claude-code-complete-guide-2026 | 13 | 6.5 |
/articles/indie-dev-idea-generation-frameworks-2026 | 7 | 12.7 |
/articles/claude-code-lab-ep02-mcp-server-guide-2026 | 5 | 7.4 |
/labs/claude-code-lab | 5 | 5.8 |
/articles | 5 | 5.0 |
/articles/claude-code-lab-ep01-skills-intro-2026 | 3 | 8.3 |
「全く反応がない」と思い込んでいた前提が崩れました。
原因分析(なぜ bot が必要だったか)
手動運用が続かなかった理由は単純で、ダッシュボードを開く 5 分が、毎週の優先順位の中で常に負けていたからです。本業の合間の副業時間で、書く・実装する・売るのが優先で、分析は後回しになる。
bot にして変わったのは「判断のサイクルが、自分の意志力でなく時計に紐付いた」ことです。毎週月曜 10:00 に勝手に CSV が更新される。Claude Code に投げるだけで分析が返ってくる。意志力がゼロの週でも判断材料は手元にある状態になりました。
もう一つ大きな変化は、Claude Code を「分析者」として雇える ことです。マーケセンスが弱い自覚がある場合、自分で CSV を読んで判断するのは負担が大きい。Claude Code に投げるプロンプト例:
analytics/search-console-pages-latest.csv を読んで、
インプレッション >= 5 で CTR < 1% の記事を特定して。
それぞれについて、本文の H2 構造を見て CTR 改善案を 3 つずつ出して。
これで「次に直すべき記事」と「直し方」が同時に降ってきます。判断は AI が下し、人間は実行に集中する分業設計です。
判断基準(この bot を作るべき人 / 作るべきでない人)
作るべき人
- ブログを 3 ヶ月以上運営 している(データが蓄積される前提)
- 副業 / 個人開発で 時間が限られて いる
- ダッシュボードを開くのが 習慣化できていない
- Claude Code or 類似 AI を日常的に使っている
- Vercel / GitHub / GA / Search Console すべてアクセス権を持っている
作るべきでない人
- ブログを始めたばかり(インデックス未完了で見るデータがない)
- 自社マーケチームが既に分析を回している
- AI に判断を任せたくない(自分で全部見たい派)
筆者は 88 記事 / 4 ヶ月運営 / 副業エンジニアで、上記「作るべき人」の条件をほぼ満たしていました。
今日やること(3 つ以内)
- 既存 GCP プロジェクトを確認する: 自分の Google アカウントに紐付く GCP プロジェクトがあるか確認。なければ新規作成(5 分)
- Service Account を作る or 既存を流用する: Search Console API と Google Analytics Data API の 2 つを有効化、Service Account の JSON キーを発行(10 分)
- scripts/ と workflow を masatoman.net repo に配置: 本記事末尾の関連リンクから実装記事を参照、コピペで配置 → GitHub Secrets に JSON とプロパティ ID を登録 → 「Run workflow」で初回実行(30 分)
合計 45 分でセットアップ完了します。詰まりやすいポイント(Vercel が bot コミットを拒否する罠など)も実装記事側に詳細記録があります。
関連記事
実装の詳細コードは以下の記事を参照してください。本記事は「やった結果と判断」、関連記事は「実装の手順とコード」の役割分担です。
登録特典:GSC/GA4 自動取得セットアップ PDF(8 ステップ・15 分)
本記事のセットアップを 15 分で完走するための PDF ガイド(詰まりポイント 5 個 + Claude Code に CSV を投げる prompt 集 5 選付き)を、Lab Free 登録時にお届けします。月次レポート + 収益化チェックリストも同時に。
個人開発の実験ログを月1回、無料で
失敗 / 実数字 / 仮説 / 次に試すこと。売れた話だけでなく売れなかった理由も共有します。
この記事が役に立ったらシェア