mcpField
T
tracking-google-serp-rankings

tracking-google-serp-rankings

github.com/apidojo-ioマーケティング・グロース1799 回インストール24 週間前に更新
リポジトリ

tracking-google-serp-rankings について

Google の検索結果をスクレイピングし、キーワード順位、競合の位置、SERP 機能をまとめるワークフロースキルです。国、言語、取得ページ数、モバイル表示を指定でき、SEO 監査や調査に使えます。

主な機能

  1. 01Google 検索結果のスクレイピング
  2. 02キーワード順位の追跡
  3. 03SERP 機能の特定
  4. 04競合ドメインの比較
  5. 05地域とデバイスの指定

活用シーン

  1. 01SEO キーワード順位の監査
  2. 02コンテンツギャップの発見
  3. 03競合の検索上の可視性の確認

MCP 対応

Apify MCP サーバーが利用可能な場合、Apify Google Search スクレイパーを実行できます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill tracking-google-serp-rankings

インストール後、Claude Code で/tracking-google-serp-rankingsを入力して読み込まれたか確認します。

詳細

Google SERP ランキングの追跡

Google 検索結果を任意のキーワードでスクレイピングし、どのサイトがどの順位に表示されるか、どのような SERP 機能(強調スニペット、PAA、ローカルパック、広告)が表示されるか、競合がどのように位置づけられているかを確認します。SEO 監査、コンテンツギャップ分析、キーワード調査に活用できます。

前提条件

  • APIFY_TOKEN 環境変数が設定されていること
  • 任意:Apify MCP サーバーがインストールされていること

入力

パラメーター型必須デフォルト備考
startUrlsarray任意[]Google 検索 URL
searchTermsarray任意[]Google で検索するキーワード
countryCodestring任意USGoogle 検索の対象国(例:US、GB、TR)
languageCodestring任意—検索結果の言語(例:en)
maxItemsnumber任意無制限すべてのクエリで返す検索結果の最大数
maxPagesPerQueryinteger任意1クエリごとの検索結果ページの最大数
mobileResultsboolean任意falseモバイル版 SERP レイアウトを取得する
customMapFunctionstring任意—各出力オブジェクトを変換する JavaScript 関数

ワークフロー

Progress:
- [ ] Step 1: Define keywords and search parameters
- [ ] Step 2: Run google-search-scraper
- [ ] Step 3: Fetch and parse SERP data
- [ ] Step 4: Map ranking positions and SERP features
- [ ] Step 5: Deliver ranking report
ステップ 1:パラメーターを確認する

ユーザーに次の情報を尋ねます。

  • 追跡するキーワード(1~20 個)
  • 国(デフォルト:US)
  • 言語(デフォルト:英語)
  • キーワードごとの検索結果数(デフォルト:20=上位 2 ページ)
  • デバイス — デスクトップまたはモバイル(デフォルト:デスクトップ)
  • セーフサーチ — オンまたはオフ(フィルターなしの検索結果を得る場合、デフォルト:オフ)
  • 追跡する特定のドメイン(任意 — 例:「これらのキーワードで example.com は何位ですか?」)
ステップ 2:Actor を実行する

推奨 — run_actor.js(待機、出力、ファイル保存を自動処理):

# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.json --format json

APIFY_TOKEN は環境または .env ファイルに設定する必要があります。

Apify MCP を利用できる場合:

Tool: apify:run-actor
Actor: "apidojo~google-search-scraper"
Input:
{
  "queries": ["[keyword1]", "[keyword2]", "[keyword3]"],
  "maxPagesPerQuery": 2,
  "countryCode": "US",
  "languageCode": "en",
  "mobileResults": false
}

REST API による代替方法:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~google-search-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": ["[keyword1]", "[keyword2]"],
    "maxPagesPerQuery": 2,
    "countryCode": "US",
    "languageCode": "en"
  }'
ステップ 3:SERP データを解析する

データセットから、キーワードごとに次の項目を抽出します。

  • オーガニック検索結果:position、url、title、description、displayedUrl
  • SERP 機能:featuredSnippet、peopleAlsoAsk、localPack、ads、relatedSearches
  • オーガニック検索結果の合計数

特定のドメインを追跡する場合は、url に対象ドメインを含むすべての順位を検索します。

ステップ 4:ランキングをまとめる

キーワードごとに順位表を作成します。次の項目を算出します。

  • すべてのキーワードにおける平均順位(特定のドメインの場合)
  • 対象ドメインが上位 3 位/上位 10 位に表示されるキーワード、およびまったく表示されないキーワード
  • 同じ競合が獲得しているキーワード(URL のドメインが複数回表示されるもの)
ステップ 5:レポートを整形する

出力形式

# Google SERP Ranking Report
Keywords analyzed: [N] | Country: [US] | Device: [Desktop] | Date: [DATE]

## Rankings Summary (for [target domain], if specified)
- Keywords in top 3: [N]
- Keywords in top 10: [N]
- Keywords on page 2: [N]
- Keywords not ranking: [N]

## Keyword-by-Keyword Results

### "[keyword1]"
| Position | URL | Title | Type |
|----------|-----|-------|------|
| 1 | [url] | [title] | Organic |
| 2 | [url] | [title] | Organic |
| — | — | Featured Snippet: "[snippet text excerpt]" | Feature |
| — | — | People Also Ask: [N] questions | Feature |
| [pos] | [your domain] | [title] | **YOUR RANKING** |

SERP features present: [Featured Snippet / PAA / Local Pack / Ads]
Ranking difficulty signal: [Easy / Medium / Hard — based on DR of top results if available]

### "[keyword2]"
[same structure]

## Competitor Dominance Analysis
| Domain | Keywords Where They Rank Top 3 | Avg Position |
|--------|-------------------------------|--------------|
| [domain] | [N] | [X.X] |

## SERP Feature Opportunities
Keywords where a featured snippet exists but [your domain] is not the source:
- "[keyword]" — snippet currently owned by [domain]
- "[keyword]" — snippet currently owned by [domain]

トラブルシューティング

実行ごとに検索結果が異なります: Google は検索結果をパーソナライズし、順位を入れ替えます。一貫性のある追跡を行うには、同じ時間帯、同じ場所で実行してください。 キーワードの検索結果がありません: 検索ボリュームが非常に少ないキーワードでは、検索結果が限られる場合があります。より広範なバリエーションを試してください。 広告が多い SERP: キーワードによっては広告が大半を占め、オーガニック検索の 1 位がページ下部に表示されることがあります。その場合はレポートに記載してください。

コメント