「数値を見ても『ふーん』で終わってしまい、次に何をすればいいか分からない…」
そんな悩みを抱えていませんか?
このロードマップ第3話では、GA4やサーチコンソールのデータをAIに分析させ、具体的な「サイト改善のアクションプラン」を立てる方法を徹底解説します。
- メリット1:面倒なサイト分析を「自動化」できる。
- メリット2:AIが「次にやるべき事」を具体的に教えてくれる。
- メリット3:専門知識ゼロでも、データに基づいたブログ改善ができる。
このロードマップ第3話では、GA4やサーチコンソールのデータをAIに分析させ、具体的な「サイト改善のアクションプラン」を立てる方法を徹底解説します。
関連記事
AIが作った記事に「あなたの経験」を加えて説得力を生む「型」と、AIを家庭教師にして「ウェブ基礎知識」を学ぶ重要性を解説。さらに、継続と収益化を両立する「黄金のジャンル選定法」(好きなこと・読者の課題・マネタイズ)も紹介します。
この記事で解説する『生成AIを使ったサイト分析入門』動画解説板。
※テキストでじっくり読みたい方はこのまま読み進めてください!
AIに”丸投げ”する前に!GA4とサチコで「最低限見るべき数字」の意味
AIに分析を任せるとはいえ、最低限「何の数字が何を示しているか」だけ知っておくと、AIからの回答の精度が格段に上がります。安心してください、覚えるのはこれだけです。
Google Analytics (GA4):「読者の行動」を知る4つの指標
GA4は「ブログに来た後、読者がどう動いたか」を見る場所です。AIには以下のCSVデータを渡します。
| 名前 | 意味 |
|---|---|
| セッション数 | 訪問数 |
| 新規ユーザー数 | 訪問数のうちの新規 |
| 表示回数(PV) | 閲覧数 |
| エンゲージメント率 | ページの評価 |
Google Search Console (サチコ):「ブログへの入り口」を知る3つの指標
サチコは「読者がGoogle検索で、どうやってあなたのブログを見つけたか」を見る場所です。AIには以下のCSVデータを渡します。
| 名前 | 意味 |
|---|---|
| 合計クリック数 | 表示された結果、「実際にクリックされた回数」 |
| 合計表示回数 | 読者の目に触れた回数 |
| CTR | クリック率 |
サイト分析業務のルーティーン

このサイクルを継続的に回すことで、勘や思いつきではなく、データに基づいた合理的なサイト改善が可能になります。自分のサイトの強みやチャンスを見逃さないように、このサイクルを継続的に回しましょう。
日次:異常検知と速報チェック(5分)
サイトが正常に動いているか、突発的な変化が起きていないかを確認する「ヘルスチェック」です。 深い分析は不要です。「いつもと違う」異常を早期に発見し、被害を最小限に抑えることが最優先です。
| ツール | 見る場所 | チェックポイント |
|---|---|---|
| GA4 | リアルタイムレポート | ・今、ユーザーは来ているか?(0人なら計測タグの問題かも) ・意図しない流入(スパムリファラなど)はないか? |
| GA4 | 集客 > トラフィック獲得 | ・前日と比較し、トラフィックが極端に増減していないか? ・SNSでバズった、TVで紹介された、などの突発的要因を把握 |
| サチコ | 概要 | ・クリック数や表示回数に大きな変動はないか? |
| サチコ | インデックス作成 > ページ | ・「エラー」が急増していないか?(サイト全体がクロール不可になっている等) |
P (Plan – 計画):
- 「サイトが停止していないこと」
- 「計測タグが正常に動作していること」
- 「スパムなどの大きな攻撃を受けていないこと」
D (Do – 実行):
- 日々のサイト運営・監視。
C (Check – 評価):
- GA4 (リアルタイム): アクセスが「0」になっていないか? 不審な参照元(リファラスパム)が大量発生していないか?
- GA4 (トラフィック獲得): 前日と比べ、トラフィックが極端に増減していないか? (SNSでのバズなども把握)
- サチコ (概要): クリック数や表示回数に大きな変動はないか?
- サチコ (インデックス作成 > ページ): 「エラー」が急増していないか?
A (Act – 改善):
- もしアクセスが「0」なら: 計測タグの状態確認、サーバーの状態確認。
- もしスパムが多ければ: GA4のフィルタ設定を検討(※急がなければ月次対応でも可)。
- もしエラーが急増なら: サチコでエラー内容(例: サーバーエラー5xx)を確認し、サーバー会社などに連絡。
週次:傾向把握とコンテンツ評価(30分)
公開した記事の反応や、直近の施策(リライト、SNS投稿など)がどのような影響を与えたか、短期的なトレンドを把握します。
P (Plan – 計画):
- (例)「先週公開した記事Aが、狙ったクエリでサチコに表示され始める」
- (例)「今週リライトした記事BのCTR(クリック率)が改善する」
- (例)「今週SNSで告知した記事Cの流入が増える」
D (Do – 実行):
- 新規記事の公開、既存記事のリライト、SNSでの告知活動。
C (Check – 評価):
- サチコ (検索パフォーマンス): 記事Aが狙ったキーワードで「表示」され始めたか? 記事BのCTRは上昇傾向にあるか?
- 記事Aが、狙ったクエリで「表示」され始めたか?
- 記事BのCTRは、リライト前と比較して上昇傾向にあるか?
- GA4 (ページとスクリーン): 記事Cのページビューは増えているか? 各記事のエンゲージメント率(読まれているか)は低すぎないか?
- GA4 (トラフィック獲得): 「Organic Search(SEO)」、「Social(SNS)」など、どの経路からの流入が伸びているか?
- 記事Cのページビューは増えているか?
- 記事A, B, Cのエンゲージメント率(読まれているか)は他の記事と比べて低すぎないか?
A (Act – 改善):
- もし記事Aが表示されない: インデックス状況をサチコで確認。内容が薄ければ追記を検討。
- もし記事BのCTRが低いまま: 検索結果で競合のタイトルと比較し、より魅力的なタイトルに修正する。
- もし記事Cのエンゲージメント率が低い: SNSの告知文と記事内容の期待値がズレているかも。→ 導入文やSNSの告知文を見直す。
| ツール | 見る場所 | チェックポイント |
|---|---|---|
| GA4 | エンゲージメント > ページとスクリーン | ・表示回数: どの記事がよく読まれているか? ・エンゲージメント率: 読者はしっかり読んでくれているか?(低いページは改善候補) ・コンバージョン: 設定した目標(例: 申込、特定リンククリック)は発生しているか? |
| GA4 | 集客 > トラフィック獲得 | ・チャネル: 「Organic Search(SEO)」、「Social(SNS)」、「Direct(直接)」など、どの経路からの流入が伸びているか? |
| サチコ | 検索パフォーマンス | ・クエリ: どんな検索語句で流入しているか? ・ページ: どのページのクリック数・表示回数・CTR(クリック率)が伸びているか? ・(Tips) 新規公開した記事が、意図したクエリで表示されているか? |
月次:戦略評価と次の計画(1時間)
サイト全体の成長を俯瞰し、「行った施策が正しかったか」を評価し、次月の戦略を立てます。
P (Plan – 計画):
- (例)「サイト全体のOrganic Search流入を前月比10%増やす」
- (例)「『〇〇』カテゴリの記事を5本追加し、このカテゴリの流入を強化する」
- (例)「サイト全体のコンバージョン率(CVR)を0.5%から0.6%に改善する」
D (Do – 実行):
- 計画に基づいた記事制作、リライト、内部リンク改善、導線改善などを1ヶ月間実行する。
C (Check – 評価):
- GA4(トラフィック獲得): Organic Search流入は前月比・前年同月比で目標(10%増)を達成したか?
- サチコ(検索パフォーマンス):
- 強化した「〇〇」カテゴリのページの表示回数・クリック数は増えたか?
- 表示回数は多いがCTRが低いクエリ(=改善の宝庫)はないか?
- 順位が11〜30位のクエリ(=リライトすればトップ10を狙える候補)はないか?
- GA4(コンバージョン): CVRは目標(0.6%)を達成したか?どのランディングページがCVに貢献しているか?
A (Act – 改善) → 次のP (Plan) へ
- (評価結果の分析):
- なぜ流入が増えた(減った)のか?(例: 強化したカテゴリが成功した、Googleのアップデートの影響を受けた、など)
- CVRが上がった(下がった)要因は?(例: 特定の記事からの導線改善が効いた、など)
- (次のPlanの策定):
- 成功施策の横展開: 「〇〇」カテゴリの強化が成功したので、来月は隣接する「△△」カテゴリも同様の手法で強化する。
- 改善点の抽出: サチコで見つけた「CTRが低いクエリ」の記事を、来月のリライト対象にする。
- 新規施策: 「順位が11〜30位のクエリ」の記事を強化し、トップ10入りを目指す。
| ツール | 見る場所 | チェックポイント |
|---|---|---|
| GA4 | エンゲージメント > ランディングページ | ・どの「入口ページ」が最もユーザーを呼び込み、エンゲージメント(やコンバージョン)に貢献しているか? ・離脱率が高すぎるランディングページはないか? |
| GA4 | 集客 > トラフィック獲得 | ・チャネル別の成長: メインの集客チャネル(特にOrganic Search)が前月比・前年同月比で伸びているか? |
| サチコ | 検索パフォーマンス | ・前月比 / 前年同月比: クリック数・表示回数は成長しているか? ・クエリ分析: →改善対象: 表示回数は多いがCTRが低いクエリ(→タイトル・ディスクリプション改善) →リライト対象: 掲載順位が11〜30位のクエリ(→記事の質を上げてトップ10を狙う) |
| サチコ | エクスペリエンス > ウェブに関する主な指標 | ・サイトの表示速度(LCP, CLSなど)に「不良」URLが増えていないか?(ユーザビリティの低下はSEOに悪影響) |
【実践】GA4とサチコを合体!AI分析用の「最強データ」を10分で作成する全手順
サイト運営のPDCAサイクルが重要ということはわかりました。
「いや素人には難しいよ!」ここまで読んで頭がパンクしてしまったみなさん。ご安心ください。
実際にも詰め込んで覚えるというより、本来は日々サイト運営しながら経験を積んで数年かかります。
そこで、GA4とサチコから必要なデータだけをGoogleスプレッドシートに自動で取得し、AI専用の分析データ(CSVファイル)を作成する方法をお教えします。
GoogleAnalytics情報をスプレットシートからダウンロードする方法
ステップ1:インストール方法
- Googleスプレッドシートを新規で開きます。
- 上部メニューの「拡張機能」をクリックします。
- 「アドオン」 > 「アドオンを取得」を選択します。
- 検索ウィンドウで「GA4 Reports Builder」と入力します。
GA4 Reports Builder for Google Analytics™という公式アドオンを選択し、「インストール」をクリックします。- Googleアカウントの選択と、アナリティクスデータへのアクセス許可を求められるので、「許可」します。

ステップ2:レポートの作成方法 (Create new report)
インストールが完了すると、「拡張機能」メニューの中にGA4 Reports Builder...が追加されます。

- 「拡張機能」 > 「GA4 Reports Builder for Google Analytics™」 > 「Create new report」を選択します。
- 画面右側に設定用のサイドバーが開きます。ここで「どんなレポートが欲しいか」を定義します。
- Report name:
- レポートの名前を決めます(例: 「週次PVレポート」「ページ別訪問数」)。
- 重要: この名前のシートが新しく作成され、そこにデータが出力されます。
- Account / Property:
- データを取得したいGA4のアカウントとプロパティをプルダウンから選択します。
- Start date / End date:
- データの取得期間を指定します。
today(今日)、yesterday(昨日)のほか、「NdaysAgo」という書き方が便利です。例えば、Startに7daysAgo、Endにyesterdayを指定すると「過去7日間」のデータを常に取得できます。
- Dimensions (ディメンション):
- 分析の「切り口」です。(例:
date(日付別)、pagePath(ページパス別)、sessionSourceMedium(参照元/メディア別))
- 分析の「切り口」です。(例:
- Metrics (メトリクス):
- 集計したい「数値」です。(例:
sessions(セッション数)、activeUsers(アクティブユーザー数)、pageviews(表示回数)、conversions(コンバージョン数))
- 集計したい「数値」です。(例:
- Filters (フィルタ):
- 特定の条件でデータを絞り込みたい場合に使います。(例: 特定のページパスだけを集計する)
- 必要な項目を入力したら、サイドバー下部の「Create Report」ボタンを押します。

書き込まれたデータサンプル

ステップ3:レポートの実行方法 (Run reports)
ステップ2で作成した「設定値」に基づき、実際にGA4からデータを取得します。
- 「拡張機能」 > 「GA4 Reports Builder for Google Analytics™」 > 「Run reports」を選択します。
- アドオンが「Report Configuration」シートの設定を読み込み、GA4のAPIを呼び出します。
- 処理が完了すると、ステップ2で指定した
Report name(例: 「週次PVレポート」)という名前の新しいシートが自動で作成され、そこにデータが出力されます。
ステップ4:レポートの自動更新 (Schedule reports)
これがこのアドオンの強力な機能です。設定したレポートを定期的に自動実行できます。
- 「拡張機能」 > 「GA4 Reports Builder for Google Analytics™」 > 「Schedule reports」を選択します。
- 右側のサイドバーにスケジューラーが開きます。
- 「Enable reports to run automatically」のチェックボックスをオンにします。
- 「Select frequency(頻度の選択)」で、自動実行したいタイミングを選びます。
every hour(毎時)every day(毎日)every week(毎週)every month(毎月)
- 時間帯なども指定し、「Save」をクリックします。
これで、指定した頻度で自動的に「Run reports」が実行され、データシートが常に最新の状態に保たれます。
サーチコンソール情報をスプレットシートからダウンロードする方法
ステップ1:インストール方法
GA4アドオンの時と手順は同じです。
- 今作業しているスプレッドシート(GA4のデータを取得しているシート)で、上部メニューの「拡張機能」をクリックします。
- 「アドオン」 > 「アドオンを取得」を選択します。
- 検索ウィンドウで「Search Analytics for Sheets」と入力します。
- 表示されたアドオンを「インストール」します。
- GA4の時と同様に、アカウントの選択と、Search Consoleへのアクセス許可を求められるので、「許可」します。 (※必ずGA4と同じ、サイトを登録しているGoogleアカウントを選んでください)

ステップ2:基本的な使い方(サイドバーでの設定)
GA4アドオンと操作感は似ています。
- 「拡張機能」 > 「Search Analytics for Sheets」 > 「Open sidebar」を選択します。
- 画面右側に設定用のサイドバーが開きます。
- Verified Site: データを取得したいサイトを選択します。
- Date Range: データの取得期間を選択します。(例:
Last 7 days(過去7日間)) - Search Type:
Web(ウェブ検索)のままでOKです。 - Group By (重要):何を「切り口」にするかを選びます。GA4の
Dimensionsに似ています。Query(検索キーワード別)Page(ページ別)Date(日付別) (複数選択も可能です。例:QueryとPageを選ぶと、「どのページが、どのキーワードで」が分かります)
- Metrics (参考): このアドオンは賢く、必要な指標(クリック、表示回数、CTR、平均順位)を自動で全て取得するため、GA4のようにメトリクスを細かく選ぶ必要は通常ありません。
- Results Sheet: データを出力するシート名です。(空欄のままでもOKです)
- 設定が完了したら、サイドバー下部の「Request Data」ボタンを押します。
- 新しいシートが作成され、そこにサーチコンソールのデータ(キーワード、クリック数、表示回数、CTR、平均順位)が出力されます。

ステップ3:自動化の方法(スケジュール)
このアドオンにも自動化機能があります。
- 「Recurrent Requests」をクリックします。
- 「Enable backup」をオンにします。
- 毎日(Daily)か毎月(Monthly)かを選びます。
これで、GA4アドオンと同じように、サーチコンソールのデータも自動でスプレッドシートに蓄積されていきます。
これで、1つのスプレッドシート(ファイル)の中に、GA4のデータ(先週のセッションシートなど)と、Search Consoleのデータ(Queryシートなど)の両方が自動で集まる環境が整いました。
複数のシートをGASで合体したCSVをGoogleドライブに保存する方法
シート一つひとつをCSVでダウンロードしてAIに渡しても良いですが、最後に「複数のシートを1つのCSVにまとめる」作業をGAS(Google Apps Script)で自動化する方法を紹介します。
少し難しく見えますが、コピペだけで動きますので安心してください。
シートを丸ごと配布
シートをコピーすれば、面倒なスプレットシートとGoogle Apps Script(GAS)の連携は不要で利用することができます。
関連記事
パワーアップ版
初回実行時の承認
- 初めて実行する際に「承認が必要です」というダイアログが表示されます。「続行」をクリックしてください。
- 自分のGoogleアカウントを選択します。
- 「このアプリは Google で確認されていません」という警告画面が表示される場合がありますが、これは自作のスクリプトのためです。左下の「詳細」をクリックし、「(プロジェクト名)(安全ではないページ)に移動」をクリックして次に進んでください。
- 「メールの送信」などを許可する画面が表示されるので、「許可」をクリックします。
承認が完了すると、スクリプトが実行されます。
GASコードのみ利用する
シート名は必ず「Config」にしてください。

// スプレッドシートを開いたときにカスタムメニューを追加する
function onOpen() {
const ui = SpreadsheetApp.getUi();
ui.createMenu('CSVエクスポート')
.addItem('選択したシートをCSVに結合', 'runCsvExport')
.addToUi();
}
/**
* メインの処理:シートから設定を読み込み、CSVを生成してドライブに保存する
*/
function runCsvExport() {
const ui = SpreadsheetApp.getUi();
// 1. 設定シートから情報を読み込む
const configSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Config');
if (!configSheet) {
ui.alert('エラー', '「Config」という名前のシートが見つかりません。', ui.ButtonSet.OK);
return;
}
// A2:Bの範囲で、最後の行までデータを取得
const range = configSheet.getRange('A2:B' + configSheet.getLastRow());
const values = range.getValues().filter(row => row[0] && row[1]);
if (values.length === 0) {
ui.alert('情報', 'Configシートに処理対象が指定されていません。', ui.ButtonSet.OK);
return;
}
let combinedData = [];
let headerSkipped = false;
// 2. 各スプレッドシートをループしてデータを取得
try {
for (const row of values) {
const url = row[0];
const sheetName = row[1];
let targetSpreadsheet;
try {
targetSpreadsheet = SpreadsheetApp.openByUrl(url);
} catch (e) {
Logger.log(`URLが開けません: ${url} - ${e.message}`);
ui.alert(`エラー: URLが開けませんでした。\n${url}`);
continue;
}
const targetSheet = targetSpreadsheet.getSheetByName(sheetName);
if (!targetSheet) {
Logger.log(`シートが見つかりません: ${sheetName} (URL: ${url})`);
ui.alert(`エラー: シートが見つかりませんでした。\nシート名: ${sheetName}\nURL: ${url}`);
continue;
}
const data = targetSheet.getDataRange().getValues();
if (data.length === 0) {
continue;
}
// 3. データを結合(2つ目以降はヘッダー行をスキップ)
if (!headerSkipped) {
combinedData.push(...data);
headerSkipped = true;
} else {
combinedData.push(...data.slice(1));
}
}
if (combinedData.length === 0) {
ui.alert('情報', '取得できるデータがありませんでした。', ui.ButtonSet.OK);
return;
}
// 4. データをCSV文字列に変換
const csvString = convertArrayToCsvString(combinedData);
// 5. CSVファイルとしてGoogleドライブに保存(ファイル名は日時でユニークにする)
const fileName = `combined_export_${Utilities.formatDate(new Date(), 'JST', 'yyyyMMdd_HHmmss')}.csv`;
// 文字化け対策のため、UTF-8のBOM付きでファイルを作成します
const blob = Utilities.newBlob(csvString, MimeType.CSV, fileName).getBytes();
const file = DriveApp.createFile(Utilities.newBlob(blob, MimeType.CSV, fileName));
// 6. ダウンロードURLをポップアップで表示
const fileUrl = file.getUrl();
const message = `CSVファイルの生成が完了しました。\n以下のURLからダウンロードできます:\n${fileUrl}`;
ui.alert('エクスポート完了', message, ui.ButtonSet.OK);
} catch (err) {
Logger.log(err);
ui.alert('スクリプトエラー', err.message, ui.ButtonSet.OK);
}
}
function convertArrayToCsvString(data) {
let csv = '\uFEFF';
data.forEach(row => {
let rowArray = [];
row.forEach(cell => {
let cellString = String(cell);
if (cellString.includes(',') || cellString.includes('"') || cellString.includes('\n')) {
cellString = '"' + cellString.replace(/"/g, '""') + '"';
}
rowArray.push(cellString);
});
csv += rowArray.join(',') + '\r\n';
});
return csv;
}
『指定したシート合体してCSVでダウンロード』ダウンロード使い方
「Config」シートのA列に【シートのURL】B列に【シート名】を記載します。


右上のメニューの【CSVエクスポート】→【選択したシートをCSVに結合】
Googleドライブに1つのCSVにまとまったデータがアップロードされます。

このデータをGeminiなどAIに渡し、下記のようなプロンプトを書いてレポートを作成して貰えば完了です。
あなたはプロのWebアナリストです。GA4・Search ConsoleデータとサイトURLから、【今週】の傾向を分析し、特に改善すべき点を3つ挙げてください。
サイト URL
https://URL


まとめ:
次回(4/6)は「ウェブ分析その2 サイト簡単可視化編」です。GA4やサチコのデータが情報量が多すぎて見づらいと感じる方のために、Looker Studioを使って「人の目でもわかりやすい」自分オリジナルの分析レポートを作成する方法を解説します。
関連記事
「GA4が難しくて分析をサボってしまう…」そんな初心者ブロガーの救世主、Google公式「Looker Studio」を解説。GA4とサーチコンソールを連携し、毎朝のチェックを「たった1分」にする自分専用レポートの作り方を、画像付きでステップ解説します。



