プログラマー向けモードで表示中ビジネスユーザー向けへ
Bright Data 学習ポータル
UC-SERP-001SERPLv2Lv3

Organic Keyword Tracking(順位監視)

キーワード順位の定点観測を自動化し、変動を検知する。

SERP API

KPI 例

  • 順位変動
  • 取得成功率
  • 更新頻度

順位監視の難しさは、順位そのものよりも「同じ条件で取り続けること」にあります。Bright Data では SERP API を使うことで、Google や Bing の検索結果を JSON として取得し、日次比較に必要な ranktitlelink をそのまま保存できます。

誰の課題か

  • SEO 担当者が、キーワードごとの順位変動を毎日同じ条件で追いたい
  • コンテンツチームが、施策前後で露出がどう変わったかを確認したい
  • データ担当者が、検索順位を CSV や DB に保存して可視化したい

推奨製品セット

製品役割使いどころ
SERP API検索結果の取得順位、タイトル、URL を構造化で取る
API Access認証方式Authorization: Bearer $BRIGHTDATA_API_KEY で呼ぶ
  • 順位監視では、まず Google 検索の 1 クエリを安定して取得し、その後に日次ジョブへ広げる形が安全です。
  • zone は SERP 専用に分け、他の取得系 API と混ぜないほうが運用しやすくなります。

最小実装イメージ

curl

curl -X POST "https://api.brightdata.com/request" \
  -H "Authorization: Bearer $BRIGHTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "zone": "serp_api1",
        "url": "https://www.google.com/search?q=bright+data+api",
        "format": "json",
        "method": "GET",
        "country": "jp"
      }'

Python

import csv
import os
import requests
 
API_KEY = os.environ["BRIGHTDATA_API_KEY"]
ZONE = "serp_api1"
QUERY = "bright data api"
 
response = requests.post(
    "https://api.brightdata.com/request",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json={
        "zone": ZONE,
        "url": f"https://www.google.com/search?q={QUERY.replace(' ', '+')}",
        "format": "json",
        "method": "GET",
        "country": "jp",
    },
    timeout=60,
)
response.raise_for_status()
data = response.json()
 
with open("serp_snapshot.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["query", "rank", "title", "link"])
    for item in data.get("organic", []):
        writer.writerow([
            QUERY,
            item.get("rank"),
            item.get("title"),
            item.get("link"),
        ])
  • format: "json" を使うと、organic[] に順位監視向きの構造化結果が入ります。
  • まずは 10 件程度で確認し、必要になってからページングや複数キーワードへ広げます。

運用ポイント

  • 順位は国や言語で変わるため、country と検索 URL を毎回固定します。
  • 日次比較では rank だけでなく titlelink も保存し、同順位でも結果差し替えを追えるようにします。
  • 料金は成功リクエスト単位なので、検証と本番で実行頻度を分けます。
  • 429 や 5xx は再試行対象ですが、クエリ数の増やしすぎ自体も見直します。

関連リンク