tracking-google-serp-rankings について
Google の検索結果をスクレイピングし、キーワード順位、競合の位置、SERP 機能をまとめるワークフロースキルです。国、言語、取得ページ数、モバイル表示を指定でき、SEO 監査や調査に使えます。
主な機能
- 01Google 検索結果のスクレイピング
- 02キーワード順位の追跡
- 03SERP 機能の特定
- 04競合ドメインの比較
- 05地域とデバイスの指定
活用シーン
- 01SEO キーワード順位の監査
- 02コンテンツギャップの発見
- 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 サーバーがインストールされていること
入力
| パラメーター | 型 | 必須 | デフォルト | 備考 |
|---|---|---|---|---|
startUrls | array | 任意 | [] | Google 検索 URL |
searchTerms | array | 任意 | [] | Google で検索するキーワード |
countryCode | string | 任意 | US | Google 検索の対象国(例:US、GB、TR) |
languageCode | string | 任意 | — | 検索結果の言語(例:en) |
maxItems | number | 任意 | 無制限 | すべてのクエリで返す検索結果の最大数 |
maxPagesPerQuery | integer | 任意 | 1 | クエリごとの検索結果ページの最大数 |
mobileResults | boolean | 任意 | false | モバイル版 SERP レイアウトを取得する |
customMapFunction | string | 任意 | — | 各出力オブジェクトを変換する 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 位がページ下部に表示されることがあります。その場合はレポートに記載してください。