Googleオートコンプリートからキーワードリサーチデータをスクレイピングする

Googleオートコンプリートは、適切なエンドポイントを使用すれば無料でリアルタイムのキーワードリサーチフィードを提供します。ここでは非公式のcomplete/search API、その地理情報とカーソルパラメータ、および出力をクラスタリングする方法を紹介します。

Googleオートコンプリートは最も正直なキーワードリサーチのソースです。提案は実際のクエリであり、人々が実際に入力するものに基づいてランク付けされ、リアルタイムで更新され、地理的に特定されています。そして、どのエンドポイントを使用するかを知っていれば、非公式のエンドポイントから無料で取得できます。"google autocomplete api"の検索結果の多くは、有料のGoogle Places住所自動入力製品に誘導されますが、これは全く異なるものです。このガイドでは、実際のクエリオートコンプリートエンドポイント、その地理情報とカーソルパラメータ、1つのシードを数百のクエリにクラスタリングする方法、およびブロックされずにスケールで実行する方法をカバーします。

まずは混乱を解消しましょう

"autocomplete"という名前を持つ3つの異なるものがあり、それらを混同すると時間を無駄にします。

キーワードアイデアが欲しいなら、最初のもの(制御のため)か3番目のもの(スケールのため)が必要です。Places APIは"best running shoes for flat feet"を提供することはありません - それは住所しか知りません。

コード付きの非公式エンドポイント

クエリオートコンプリートエンドポイントはhttps://www.google.com/complete/searchです。client=chromeを設定すると、2番目の要素が提案リストであるJSON配列を返します。2つのパラメータがそれをおもちゃではなくリサーチツールにします:gl(2文字の国コード)とhl(2文字の言語コード)、これにより提案がローカライズされます:

import requests

proxy = "http://USER:PASS@gate.quantumproxies.io:8000"
proxies = {"http": proxy, "https": proxy}

def autocomplete(seed, gl="us", hl="en"):
    r = requests.get("https://www.google.com/complete/search",
                     params={"q": seed, "client": "chrome", "gl": gl, "hl": hl},
                     proxies=proxies, timeout=15)
    return r.json()[1]  # chrome client: index 1 holds the suggestions

print(autocomplete("running shoes", gl="gb"))
print(autocomplete("running shoes", gl="us"))  # compare markets

これら2行を実行すると、地理的効果がすぐにわかります - 英国と米国の提案セットは異なります。なぜなら、オートコンプリートは各市場が検索するものを反映しているからです。また、クエリ内でカーソルがどこにあるかを設定するcpパラメータ("カーソルポインタ")もあり、完了を洗練します - フレーズの中間提案を引き出すのに便利です。clientchromefirefoxgws-wizの間で切り替えると、応答の形状や結果が変わることがあるので、1つを選んで一貫性を保ちましょう。

キーワードリサーチのためのクエリオートコンプリート、有料の住所用プレイスオートコンプリート、および管理されたSERP APIオートコンプリートバーティカルの比較、キーワードデータに役立つのは2つだけ
3つのAPIが"autocomplete"の名前を共有しています。キーワードデータを提供するのはクエリエンドポイントとそれをラップするSERP APIだけです。

1つのシードを数百のキーワードに変える

1回の呼び出しで約10の提案が返されます。それを増やすテクニックがアルファベットスープです:シードにa-zの各文字を追加し、すべての完了を収集します。プレフィックス(howwhatbestvs)やサフィックス(near mefor2026)を重ねると、1つのシードが広範で意図に富んだマップになります:

import string, time

def expand(seed, gl="us"):
    found = set(autocomplete(seed, gl))
    for c in string.ascii_lowercase:          # a-z soup
        found.update(autocomplete(f"{seed} {c}", gl))
        time.sleep(0.4)                         # pace the requests
    for p in ("how", "what", "best", "vs"):    # intent prefixes
        found.update(autocomplete(f"{p} {seed}", gl))
        time.sleep(0.4)
    return sorted(found)

keywords = expand("running shoes", gl="us")
print(len(keywords), "suggestions")

出力を意図ごとにクラスタリング - 情報的(howwhat)、商業的(bestvsnear me)、ナビゲーショナル(ブランド用語) - し、重複を排除します。それが実際のキーワードマップであり、ライブの検索行動に基づいており、ツールの推定ではありません。これらのシードを完全なSERPにフィードバックすることでランクトラッカーを構築します。ランクトラッカーの構築についてのガイドでは次のステップをカバーしています。

1つのシードキーワードからglとhlパラメータを使ってオートコンプリートエンドポイントを通過し、アルファベットスープとプレフィックス拡張を行い、意図ごとにクラスタリングされた重複排除されたキーワードマップにする流れ
アルファベットスープとプレフィックス拡張は、1つのシードを数百の実際のクエリに増やし、それを意図ごとにクラスタリングします。

関連性スコアを読む

chromeクライアントは文字列以上のものを返します - 各提案には関連性スコアがあり、順序は実際の需要を反映しています。それを利用しましょう。拡張セットを関連性でソートすると、リストの先頭が検索ボリュームが集中する場所であり、その下のロングテールが低競争の機会が隠れている場所です。有料のキーワードツールから月次ボリュームを引き出す前に、無料でおおよその需要ランキングを得ることができるため、他のデータソースを持っていてもオートコンプリートは迅速な初期フィルターとなります。

ブロックされずにスケールする

アルファベットスープの拡張は、シードごとに数十のリクエストを発生させ、数百のシードは同じGoogleエンドポイントへの数千の呼び出しを意味します。それがIPをスロットルするちょうどそのボリュームです。2つの方法があります。ハンズオンルート:ジオマッチングを行う回転プロキシプールにリクエストを分散し、ペースを調整します - スケールでのキーワードリサーチ中にIPブロックを回避するのと同じ規律です。管理されたルート:SERP APIを使用し、回転、ジオ、解析を処理し、クリーンなJSONを返すオートコンプリートバーティカルを使用します - スロットリングを監視する必要はありません。私たちの2026年のSERPスクレイピングの内訳では、そのインフラストラクチャを自分で運用するのがなぜ難しいかを説明しています。

SERP APIでオートコンプリートをスケールで取得する

データをどう活用するか

オートコンプリートデータはコンテンツカレンダー以上のものを供給します。同じシードをglhlで市場ごとに実行してサイトを適切にローカライズし、提案が時間とともにどのように変化するかを追跡して上昇トレンドを早期にキャッチし、競合がターゲットにしていないロングテールの商業クエリを掘り起こします。提案は検索行動から直接来るため、月次キーワードボリュームツールに現れる前に需要を示す先行指標です。拡張されたシードをSERP APIにパイプして各ライブ結果をキャプチャすることで、タイトル、People Also Ask、AIオーバービューを一度に取得し、フラットなキーワードリストを完全なコンテンツブリーフに変えます。このデータを大量に消費するAIおよびSEO製品のために、AI/SEOツールのためのSERP APIの選び方では、見るべきバーティカルとJSONの形状をカバーし、グローバルにSERPの変化を監視するではトラッキング側をカバーしています。

よくある質問

無料のGoogleオートコンプリートAPIはありますか?

公式の無料APIはありませんが、非公式のエンドポイントgoogle.com/complete/search?client=chrome&q=...はJSONとして提案を返し、無料で呼び出せます。ボリュームが多いとレート制限されるので、軽い使用を超える場合はプロキシや管理されたSERP APIが必要です。これは住所用の有料のPlacesオートコンプリートとは異なります。

特定の国のGoogle提案を取得するにはどうすればよいですか?

glパラメータに2文字の国コード(usgbde)を渡し、hlに言語コード(endefr)を渡します。提案は地理的に特定されているため、同じシードでも市場ごとに異なる結果が返されます - 正確なデータを得るためには、プロキシの出口をクエリしている国に合わせる必要があります。

なぜ私のオートコンプリートスクレイパーがブロックされるのですか?

アルファベットスープの拡張は、1つのGoogleエンドポイントに対してシードごとに数十のリクエストを発生させ、単一のIPをすぐにスロットルします。回転プロキシプールに呼び出しを分散し、リクエスト間に遅延を追加し、出口のジオをglの値に合わせるか、回転とペースを処理するSERP APIを使用します。

Googleオートコンプリートはキーワードリサーチに良いですか?

優れています。なぜなら、提案は実際の検索需要によってランク付けされた実際のクエリであり、ライブで更新され、国ごとにローカライズされているからです。アルファベットスープとプレフィックス拡張は、1つのシードを意図に富んだ数百の用語に変え、しばしば月次ボリュームキーワードツールに現れる前にロングテールやトレンドのクエリを浮き彫りにします。

Googleオートコンプリートは、住所用のエンドポイントではなくクエリエンドポイントを使用することで、無料でリアルタイム、地理対応のキーワードフィードになります。complete/searchで取得し、glhlでローカライズし、アルファベットスープでシードを増やし、意図ごとにクラスタリングします。スケールで実行するには、回転プールまたはSERP APIを背後に置き、インフラストラクチャにスロットリングを処理させましょう。

SERP APIからクリーンなオートコンプリートデータを取得する