seo-google について
seo-googleは、GoogleのSEOデータを取得するスキルとスクリプトのセットです。検索、インデックス、トラフィック、ページ体験を分析する用途に向け、認証ティアに応じてSearch Console、PageSpeed、CrUX、GA4、YouTubeなどのAPIを利用できます。
主な機能
- 01PageSpeedとCrUXの指標を取得
- 02Search Consoleの実績とインデックス状態を確認
- 03GA4のトラフィック・チャネルレポートを作成
- 04YouTube動画とコメントを検索
- 05テキストのエンティティ、感情、分類を分析
- 06キーワード、検索ボリューム、URLの安全性を確認
活用シーン
- 01ページのインデックス状態とcanonicalを確認
- 02Core Web Vitalsの週次推移を追跡
- 03自然検索とAIからの参照トラフィックを分析
- 04キーワード、検索実績、YouTube動画を調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ seranking/ seo-skills --skill seo-googleインストール後、Claude Code で/seo-googleを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/templates/cwv-audit-report.mdgsc-performance-report.mdindexation-status-report.mdreferences/auth-setup.mdcross-skill-integration.mdga4-data-api.mdindexing-api.mdkeyword-planner-api.mdnlp-api.mdpagespeed-crux-api.mdrate-limits-quotas.mdsearch-console-api.mdsupplementary-apis.mdyoutube-api.md詳細
Google SEO API
Google 独自の SEO データに直接アクセスできます。クロールベースの分析(カタログのその他のツール)と、Chrome ユーザーの実際の指標、実際のインデックス登録状況、検索パフォーマンス、オーガニックトラフィックといった Google のリアルタイムのフィールドデータをつなぎます。
すべての API は無料です。セットアップには、API キーおよび/またはサービスアカウントを備えた Google Cloud プロジェクトが必要です。手順を確認するには setup コマンドを実行するか、references/auth-setup.md を直接ご覧ください。
AgriciDaniel/claude-seoのseo-googleスキルを基にしています(MIT)。スクリプト、リファレンス、コマンドの構成は上流の実装に準拠しています。元のものと問題なく共存できるよう、設定パスは~/.config/seo-skills/名前空間に設定されています。
前提条件
- 必須: Python 3.10+ と Google API クライアントライブラリ。
bash extensions/google/install.shでインストールしてください。 - 必須: 最低限、Google API キー(Tier 0)が必要です。すべての機能を利用するには、Google Cloud サービスアカウント(Tier 1 以上)に加えて、必要に応じて GA4 プロパティ ID(Tier 2)と Google Ads デベロッパートークン(Tier 3)が必要です。
- 設定ファイル:
~/.config/seo-skills/google-api.json。
コマンドを実行する前に、認証情報を確認してください。
python scripts/google_auth.py --check --json
設定ファイルの形式(~/.config/seo-skills/google-api.json):
{
"service_account_path": "/path/to/service_account.json",
"api_key": "AIzaSy...",
"default_property": "sc-domain:example.com",
"ga4_property_id": "properties/123456789"
}
ファイルがない場合は、references/auth-setup.md を読み、セットアップをユーザーに案内してください。
認証情報のティア
| Tier | 検出条件 | 利用可能なコマンド |
|---|---|---|
| 0(API キー) | api_key が存在 | pagespeed、crux、crux-history、youtube、nlp、entity、safety |
| 1(OAuth/SA) | + OAuth トークンまたはサービスアカウント | Tier 0 + gsc、inspect、sitemaps、index |
| 2(フル) | + ga4_property_id が設定済み | Tier 1 + ga4、ga4-pages、ga4-referrals、ga4-channel-mix、ga4-properties |
| 3(Ads) | + ads_developer_token + ads_customer_id | Tier 2 + keywords、volume |
コマンドを実行する前に、検出されたティアを必ず伝えてください。
クイックリファレンス
| コマンド | 機能 | Tier |
|---|---|---|
setup | API 認証情報の確認/設定 | -- |
pagespeed <url> | PSI Lighthouse + CrUX フィールドデータ | 0 |
crux <url> | CrUX フィールドデータのみ(p75 指標) | 0 |
crux-history <url> | 25 週間の CWV トレンド分析 | 0 |
gsc <property> | Search Console:クリック数、表示回数、CTR、掲載順位 | 1 |
inspect <url> | URL 検査:インデックス状況、正規 URL、クロール情報 | 1 |
inspect-batch <file> | ファイルから URL を一括検査 | 1 |
sitemaps <property> | GSC サイトマップの状況 | 1 |
index <url> | URL を Indexing API に送信 | 1 |
index-batch <file> | 最大 200 件の URL を一括送信 | 1 |
ga4 [property-id] | GA4 オーガニックトラフィックレポート | 2 |
ga4-pages [property-id] | オーガニックランディングページの上位一覧 | 2 |
ga4-referrals [property-id] | ソース別の参照セッション — デフォルトでは AI アシスタント | 2 |
ga4-channel-mix [property-id] | チャネルグループ(Direct / Organic / Referral / Paid …)別のセッション内訳 | 2 |
ga4-properties | サービスアカウントが読み取り可能な GA4 アカウントとプロパティをすべて一覧表示 | 2 |
youtube <query> | YouTube 動画検索(再生回数、いいね数、再生時間) | 0 |
youtube-video <id> | YouTube 動画の詳細と上位コメント | 0 |
nlp <url-or-text> | NLP によるエンティティ抽出 + 感情分析 + 分類 | 0 |
entities <url-or-text> | E-E-A-T 向けのエンティティ分析のみ | 0 |
keywords <seed> | Google Ads Keyword Planner によるキーワード候補 | 3 |
volume <keywords> | Keyword Planner による検索ボリュームの照会 | 3 |
entity <query> | Knowledge Graph のエンティティ確認 | 0 |
safety <url> | Web Risk による URL の安全性確認 | 0 |
quotas | すべての API のレート制限を表示 | -- |
report <type> | 収集した JSON から PDF/HTML/XLSX レポートを生成 | -- |
PageSpeed + CrUX
pagespeed <url>
Lighthouse のラボデータと CrUX のフィールドデータを統合します。
スクリプト: python scripts/pagespeed_check.py <url> --json
リファレンス: references/pagespeed-crux-api.md
デフォルト: モバイルとデスクトップの両方の戦略、Lighthouse のすべてのカテゴリ。
出力では、ラボスコア(特定時点の Lighthouse)とフィールドデータ(Chrome ユーザーの28日間の指標)を統合します。CrUX はまず URL レベルでデータを取得し、取得できない場合はオリジンレベルにフォールバックします。
crux <url>
CrUX のフィールドデータのみを取得します(Lighthouse の実行なし)。より高速です。
スクリプト: python scripts/pagespeed_check.py <url> --crux-only --json
crux-history <url>
CrUX の25週間の履歴トレンドです。CWV 指標が改善、安定、または悪化しているかを示します。
スクリプト: python scripts/crux_history.py <url> --json
リファレンス: references/pagespeed-crux-api.md
出力には、指標ごとのトレンドの方向、変化率、週ごとの p75 値が含まれます。
Search Console
gsc <property>
検索アナリティクス:過去28日間のクリック数、表示回数、CTR、掲載順位です。
スクリプト: python scripts/gsc_query.py --property <property> --json
リファレンス: references/search-console-api.md
デフォルト: 28日間、dimensions=query,page、type=web、limit=1000。
クイックウィンの検出機能も含まれます。表示回数が多く、掲載順位が4~10位のクエリが対象です。
フィルタリング: --device {desktop,mobile,tablet}、--country <ISO3>、--page <url-or-substring>(デフォルトでは contains で照合します。完全一致する URL を指定する場合は --page-match equals を渡します)。URL ごとのクエリ分析には、組み合わせて使用します:--page /blog/best-ai-seo-tools/ --dimensions query。
AI Overview/AI Mode: --ai-overview(または --ai-mode)を指定すると、Google が AI Overview/AI Mode の SERP を表示し、そこに自分の URL が含まれていたクエリに結果を絞り込みます。これは「AI Overview で引用されているか?」に対する Google の公式データです。クリック数、表示回数、CTR、平均掲載順位を GSC から直接取得できます。--dimensions query,page と組み合わせると、AI Overview に表示されたクエリとページを確認できます。また、--page /post/ と組み合わせると、特定の URL に絞り込めます。他の表示タイプ(RICH_RESULT、REVIEW_SNIPPET など)には --search-appearance <value> を使用します。
inspect <url>
URL 検査:Google による実際のインデックス登録状況を確認します。
スクリプト: python scripts/gsc_inspect.py <url> --json
返される情報:判定(PASS/FAIL)、カバレッジ状態、robots.txt の状態、インデックス登録状態、ページ取得状態、正規 URL の選択状況、モバイル ユーザビリティ、リッチリザルト。
inspect-batch <file>
ファイルから一括で検査します(1行につき URL を1つ指定)。サイトごとのレート制限は1日あたり2,000件です。
スクリプト: python scripts/gsc_inspect.py --batch <file> --json
sitemaps <property>
送信済みサイトマップのステータス、エラー、警告を一覧表示します。
スクリプト: python scripts/gsc_query.py sitemaps --property <property> --json
Indexing API
index <url>
URL の更新を Google に通知します。
スクリプト: python scripts/indexing_notify.py <url> --json
リファレンス: references/indexing-api.md
Indexing API の公式な対象は JobPosting および BroadcastEvent/VideoObject ページです。この制限について、必ずユーザーに伝えてください。1日あたりの割り当ては publish リクエスト200件です。
index-batch <file>
ファイルから URL を一括送信します。割り当ての使用状況を追跡します。
スクリプト: python scripts/indexing_notify.py --batch <file> --json
GA4 トラフィック
すべての GA4 レポートでは、オプションの --page <path-or-url> フラグを指定して、レポートを単一のランディングページに絞り込めます(GA4 の landingPage ディメンションと完全一致します。完全な URL は自動的にパス部分だけに変換されます)。サイト全体ではなく「この記事の実績はどうか?」を知りたい場合は、必ず使用してください。
--report organic と --report top-pages では --channel <name|all> を指定できます。デフォルトは organic(オーガニック検索)です。チャネルフィルターを解除するには all を渡します(すべてのトラフィックソースを対象にページ全体の週次トレンドを確認する場合に必要です)。また、GA4 のデフォルト チャネル グループ(Direct、Referral、Paid Search、Organic Social など)をそのまま指定することもできます。
ga4 [property-id]
日次時系列のトラフィックレポート:セッション数、ユーザー数、ページビュー数、直帰率、エンゲージメント。
スクリプト: python scripts/ga4_report.py --property <id> --json
リファレンス: references/ga4-data-api.md
デフォルト: 過去 28 日間のデータを対象とし、Organic Search チャネルグループで絞り込みます。トラフィックを絞り込まずに取得するには、--channel all を指定します。
トラフィックの大半が Organic ではなく Direct または Referral の場合に、「この投稿は週ごとにどのように伸びているか?」に答えるのが、全チャネル版です。これは、AI が引用するコンテンツの典型的なケースです。例:--report organic --page /blog/best-ai-seo-tools/ --channel all --days 99。
ga4-pages [property-id]
指定したチャネル(デフォルトは Organic Search。全流入元を対象としたサイト全体の上位ページを取得するには、--channel all を指定)について、セッション数の多いランディングページを表示します。
スクリプト: python scripts/ga4_report.py --property <id> --report top-pages --json
ga4-referrals [property-id]
sessionSource ごとに分類したリファラーセッション数です。デフォルトでは、厳選した AI アシスタントのホスト名リストを使用します。OpenAI(chatgpt.com、chat.openai.com)、Anthropic(claude.ai)、Google
(gemini.google.com、bard.google.com)、Microsoft(copilot.microsoft.com)、Perplexity
(perplexity.ai)、Alibaba/Qwen(chat.qwen.ai、qwen.com、tongyi.aliyun.com)、Mistral
(chat.mistral.ai)、DeepSeek(chat.deepseek.com)、xAI/Grok(grok.com、x.ai)に加え、
you.com / phind.com / poe.com が含まれます。そのため、「AI アシスタントは実際にどれくらいのトラフィックを送っているのか?」という疑問に、1 つのコマンドで答えられます。seo-ai-search-share-of-voice と seo-geo の AI 可視性データを現実の状況と照らし合わせるのに使ってください。リファラー数が測るのは、AI チャットでユーザーがリンクを共有した数であり、AI が自発的にあなたを引用しているかどうかではありません。
スクリプト: python scripts/ga4_report.py --property <id> --report referrals --json
ソースモード(--sources):
ai(デフォルト)— 厳選した AI アシスタントのホスト名リストall— Referral チャネルグループのすべてのソースchatgpt.com,perplexity.ai,...— カンマ区切りで指定するソースのリスト
--page と組み合わせると、「この特定の投稿には AI からどれくらいのトラフィックがあったか?」に答えられます:
--report referrals --page /blog/best-ai-seo-tools/。
ga4-channel-mix [property-id]
sessionDefaultChannelGroup(Direct / Organic Search / Referral / Paid Search / Organic Social / …)ごとに分類したセッション数です。チャネルでの絞り込みはありません。「このページへのトラフィックは実際にはどこから来ているのか?」を調べるための診断ビューです。各行には share_of_sessions の割合が含まれており、チャネル構成をひと目で確認できます。
スクリプト: python scripts/ga4_report.py --property <id> --report channel-mix --json
"この投稿は主にオーガニック検索で成果を上げているのか、それともトラフィックは別のところから来ているのか?" といった疑問に答えるレポートです。AI アシスタントからのトラフィックは、Referral ではなく(計測上の流入元が記録されない)Direct に分類されることがよくあります。そのため、公開から間もないコンテンツ中心のページで Direct の割合が高いこと自体が、AI 可視性のシグナルとなります。より全体像を把握するには、ga4-referrals と併用してください。
ページ単位の診断:--report channel-mix --page /blog/best-ai-seo-tools/ --days 90。
ga4-properties
サービスアカウントが読み取り可能な GA4 アカウントとプロパティをすべて一覧表示します。クライアントが複数の GA4 プロパティ(マーケティングサイトとアプリで分けている、または地域ごとに分けている場合が一般的です)を持ち、クエリ対象の property_id を確認する必要があるときは、ga4 / ga4-pages / ga4-referrals / ga4-channel-mix を実行する前に使ってください。出力では、親アカウントごとにプロパティをまとめます。property_id フィールドの数値を --property に渡してください。
スクリプト: python scripts/ga4_admin.py properties --json
Cloud プロジェクトで Google Analytics Admin API(Data API とは別の API)を有効にし、サービスアカウントに少なくとも 1 つのプロパティの閲覧者アクセス権を付与する必要があります。
YouTube(動画 SEO)
YouTube の言及は、AI 可視性との相関が最も強く(0.737)、無料で利用でき、必要なのは API キーのみです。
youtube <query>
YouTube で動画を検索します。タイトル、チャンネル、再生回数、高評価数、再生時間を返します。
スクリプト: python scripts/youtube_search.py search "<query>" --json
リファレンス: references/youtube-api.md
クォータ: 検索 1 回あたり 100 単位(無料枠は 1 日あたり 10,000 単位)。
youtube-video <video_id>
動画の詳細情報、タグ、上位 10 件のコメントを取得します。
スクリプト: python scripts/youtube_search.py video <video_id> --json
クォータ: 2 単位(動画の詳細情報とコメント)。
NLP コンテンツ分析
Google 独自のエンティティ/感情分析です。E-E-A-T のスコアリングを強化します。
nlp <url-or-text>
NLP の完全な分析を行います。エンティティ、感情、コンテンツ分類を取得します。
スクリプト: python scripts/nlp_analyze.py --url <url> --json または --text "..."
リファレンス: references/nlp-api.md
無料枠: 月あたり 5,000 単位。GCP プロジェクトで課金を有効にする必要があります。
entities <url-or-text>
エンティティの抽出のみを行います(処理が速く、クォータの消費も少なくなります)。
スクリプト: python scripts/nlp_analyze.py --url <url> --features entities --json
キーワード調査(Google Ads)
ゴールドスタンダードのキーワード検索ボリュームデータです。Google Ads アカウントが必要です。
keywords <seed>
シードキーワードからキーワード候補を生成します。
スクリプト: python scripts/keyword_planner.py ideas "<seed>" --json
リファレンス: references/keyword-planner-api.md
必要なもの: 設定に Ads デベロッパートークンと顧客 ID(ティア 3)。
volume <keywords>
指定したキーワード(カンマ区切り)の検索ボリュームを取得します。
スクリプト: python scripts/keyword_planner.py volume "<kw1>,<kw2>" --json
補助機能
entity <query>
ナレッジグラフのエンティティを確認します。ブランドの存在を検証します。
リファレンス: references/supplementary-apis.md
API キーを使用して Knowledge Graph Search API を利用します。
safety <url>
Web Risk API で、マルウェアやソーシャルエンジニアリングのフラグを確認します。
リファレンス: references/supplementary-apis.md
quotas
レート制限の表を表示します。references/rate-limits-quotas.md を読み込みます。
レポート
分析コマンドの実行後、PDF/HTML/XLSX レポートの生成を提案してください。
report <type>
グラフと分析情報を含む、プロフェッショナルな PDF/HTML/XLSX レポートを生成します。
スクリプト: python scripts/google_report.py --type <type> --data <json> --domain <domain> --format pdf
| 種類 | 入力 | 出力 |
|---|---|---|
cwv-audit | PSI + CrUX + CrUX History データ | ゲージ、タイムライン、分布を含む Core Web Vitals 監査 |
gsc-performance | GSC クエリデータ | クエリ表とすぐに実行できる改善策を含む Search Console レポート |
indexation | 一括検査データ | カバレッジのドーナツチャート付きインデックス登録状況 |
full | すべてのデータを統合 | 包括的な Google SEO レポート(全セクション) |
ワークフロー:
- データ収集コマンド(
pagespeed、gsc、inspect-batchなど)を実行します - JSON 出力をファイルに保存します:
python scripts/pagespeed_check.py <url> --json > data.json - レポートを生成します:
python scripts/google_report.py --type cwv-audit --data data.json --domain <domain>
慣例: 分析が完了したら、「レポートを生成しますか? report <type> を使用してください。」と提案します。
レート制限
| API | 分あたり | 日あたり | 認証 |
|---|---|---|---|
| PSI v5 | 240 QPM | 25,000 QPD | API キー |
| CrUX + History | 150 QPM(共有) | 無制限 | API キー |
| GSC Search Analytics | 1,200 QPM/サイト | 30M QPD | サービスアカウント |
| GSC URL Inspection | 600 QPM | 2,000 QPD/サイト | サービスアカウント |
| Indexing API | 380 RPM | 公開 200 件/日 | サービスアカウント |
| GA4 Data API | 同時 10 件 | 約 25K トークン/日 | サービスアカウント |
スキル間の連携
seo-technical-audit—pagespeed_check.pyを使用して実際の CWV フィールドデータを取得します。inspectを使用して、SE Ranking の監査で検出されたインデックス登録状況を確認します。seo-page—gscを介して、推定トラフィックを実際の GSC のquery,pageデータに置き換えます。inspectを介してインデックス登録状況を確認します。seo-drift—crux-history(25 週間の推移)と GSC の差分追跡をベースライン/比較スナップショットに追加します。seo-sitemap—sitemapsコマンドで、Google が実際に処理したサイトマップとそのエラー/警告件数を確認できます(クロールのみを行う SE Ranking の監査とは異なります)。seo-content-audit—nlpにより、監査対象ページの E-E-A-T エンティティ/センチメントのスコアリングを強化します。gscにより、そのページがターゲットキーワードでインプレッションを獲得しているかを確認します。seo-geo—gsc --ai-overview --page <url>を使うと、「この URL は AI Overview に表示されたか、またどのような成果を得たか」を Google 独自のデータで確認でき、SE Ranking の AIO 引用取得を補完できます。gsc --ai-overview --dimensions query,pageと GEO の推奨事項を組み合わせ、URL ごとに成果を確認してください。seo-ai-search-share-of-voice—ga4-referrals(chatgpt.com/perplexity.ai/gemini.google.com などからの下流トラフィック)と SoV の取得結果(上流の引用/ブランド言及の有無)を組み合わせると、AI での可視性を包括的に把握できます。SoV は LLM が自社を引用しているかを測定し、GA4 の参照トラフィックは、ユーザーが実際にクリックしてサイトにアクセスしたかを測定します。seo-keyword-cluster/seo-keyword-niche—volume(Tier 3)を利用可能な場合、SE Ranking の検索ボリュームを Google Ads の標準となる検索ボリュームに置き換えます。seo-plan— GSC と GA4 が設定されている場合、「現在の状況」のベースラインには、SE Ranking の推定値ではなく、実際のインプレッション数/クリック数/コンバージョン数を使用します。
出力形式
- CWV 指標:信号機形式の評価(良好/改善が必要/不良)
- パフォーマンスレポート:並べ替え可能な列を含む表
- データの鮮度に関する注記を必ず記載
- レポートを
GOOGLE-API-REPORT-{domain}.mdとして保存 - 構造化された出力には
assets/templates/のテンプレートを使用
技術的な注意事項
- 2024 年 3 月 12 日に INP が FID に置き換わりました。FID には言及しないでください。
- CrUX の CLS 値は文字列としてエンコードされています(例:「0.05」)。スクリプトが解析を処理します。
- CrUX の 404 はトラフィック不足を意味し、認証エラーではありません。
- Search Analytics のデータには 2~3 日の遅延があります。
- CrUX では 2025 年 2 月に
effectiveConnectionTypeがround_trip_timeに置き換わりました。 - Custom Search JSON API は 2025 年以降、新規顧客の受付を終了しています。
エラー処理
| 状況 | 対応 |
|---|---|
| 認証情報が設定されていない | setup を実行します。API キーだけで動作する Tier 0 コマンドを一覧表示します。 |
| サービスアカウントに GSC へのアクセス権がない | エラーを報告します。次の手順を案内します:GSC > Settings > Users > Add で client_email を追加します。 |
| CrUX データを利用できない(404) | Chrome のトラフィックが不足していることを報告します。代替手段として PSI のラボデータを提案します。 |
| GA4 プロパティが見つからない | エラーを報告します。GA4 Admin > Property Details でプロパティ ID を確認する方法を示します。 |
| Indexing API のクォータを超過した | 1 日あたり 200 件の上限を報告します。最も重要な URL を優先するよう提案します。 |
| レート制限(429) | 待機し、指数バックオフで再試行します。制限に達した API を報告します。 |