「無料で自社サイトの検索順位を計測したい」という方も多いのではないでしょうか。今回は、「Custom Search API」と「Google Apps Script(GAS)」を使用してGoogleスプレッドシート上で検索順位を計測する方法を解説します。
APIやGASと聞くと難しく感じるかもしれませんが、これから解説する手順通りに設定すれば、検索順位計測のスプレッドシートを作成できます。
このような検索順位計測シートが出来上がります
これから解説する手順通りに設定をしていただけると、以下の画像のようにGoogleスプレッドシート上で検索順位を計測できるようになります。A列にキーワード、B列に対象サイトのURL、C列以降に日付付きの順位が表示される仕組みになります。

実際の手順
それでは、実際に作成していきましょう。検索順位を計測するために以下の手順を行う必要があります。
- 新規のスプレッドシートの準備
- Google Cloud Platformの設定とAPIキーの作成
- Programmable Search Engineと設定検索エンジン IDの作成
- Google Apps Scriptの設定
- 実行と権限設定
- 順位計測・動作確認
各手順ごとに画像を使って詳しく説明をしていきます。
※Googleの仕様変更により、画面表示が記事の内容と異なる場合があります。もし実際の画面と説明が一致しない箇所がございましたら、お気軽にお知らせください。
【手順1】新規のスプレッドシートの準備
新しいGoogleスプレッドシートを作成します。A1セルに「キーワード」、B1セルに「URL」と以下の画像のように見出し部分を入力してください。次にA列に検索順位を調査したいキーワードを入力します(例:アルテナ株式会社)。B列にチェックしたいWebサイトのURLを入力します(例:https://altenas.jp/)。
※Google Custom Search APIの無料枠は1日あたり100キーワードとなっております。そのため、4行目以降も記載していただいて問題ありません。詳しくは「注意点と制限」をご覧ください。

【手順2】Google Cloud Platformの設定とAPIキーの作成
【手順2-1】プロジェクトの作成
まず、Google Cloud Console にアクセスします。画面上部の左側の「プロジェクト選択」をクリックします。(下図赤枠)

画面中央に出てきた項目の右上部分の「新しいプロジェクト」をクリックします。(下図赤枠)

プロジェクト名を入力し(例:「search-rank-tracker」)、「作成」をクリックします。これで新しいプロジェクトができあがります。(下図赤枠)

ここまでできたら、左側の「≡」3本線のメニューをクリックしてタブを開きます。
【手順2-2】Custom Search APIの有効化
左側からタブが表示されたら、「APIとサービス」→「ライブラリ」を選択します。(下図赤枠)

画面中央の検索欄に「Custom Search API」と入力して検索します。「Custom Search API」をクリックします。(下図赤枠)

次に「有効にする」ボタンをクリックします。(下図赤枠)

【手順2-3】APIキーの作成
左側の「≡」3本線のメニューから「APIとサービス」→「認証情報」をクリックします。(下図赤枠)

画面上部の「認証情報を作成」をクリックします。(下図赤枠)

画面中央に出てくる項目の「APIキー」をクリックしコピーします。コピーした「APIキー(※)」を安全な場所に保存します。(下図赤枠)
※APIキー:こちらの情報が漏洩すると、不正利用される可能性がありますので、取り扱いには注意が必要です。

【手順3】Programmable Search Engineと設定検索エンジンIDの作成
次に、Programmable Search Engine にアクセスします。画面左上の「検索エンジンを追加」をクリックします。新しい検索エンジンを作成の画面にて、以下の設定を行います。
- 名前:任意の名前(例:「検索順位トラッカー」)
- 検索対象:「ウェブ全体を検索」を選択
- 「作成」をクリックします(下図赤枠)

「新しい検索エンジンが作成されました」という画面に切り替わるので「カスタマイズ」をクリックする。(下図赤枠)

「検索エンジン ID」をクリックしコピーします。コピーした「検索エンジン ID(※)」を安全な場所に保存します。(下図赤枠)
※検索エンジン ID:こちらの情報が漏洩すると、不正利用される可能性がありますので、取り扱いには注意が必要です。

【手順4】Google Apps Scriptの設定
「【手順1】新規のスプレッドシートの準備」で作成したスプレッドシートで、「拡張機能」→「Apps Script」をクリックします(下図赤枠)

デフォルトで開かれる「コード.gs」ファイルの内容を削除します。以下のGoogleドキュメント内のスクリプトをコピー&ペーストして、貼り付けます。(下図赤枠)
スクリプト
※スクリプトが長いためGoogleドキュメントに記載し公開しました、こちらのリンクをクリックすると、弊社のGoogleドキュメントに遷移します。

スクリプト内の以下の部分に関しまして、「APIキー」「検索エンジンID」に置き換えて下さい。
「YOUR_API_KEY」の部分に【手順2】で取得した「APIキー」を貼り付けてください。「YOUR_SEARCH_ENGINE_ID」の部分に【手順3】で取得した「検索エンジンID」を貼り付けてください。
スクリプトをそのままコピーしていただければ、108・109行目、238・239行目、338・339行目の3箇所あるのですべてを変更してください。(下図赤枠)
const API_KEY = ‘YOUR_API_KEY’; // ← 実際のAPIキーに置き換える
constSEARCH_ENGINE_ID=’YOUR_SEARCH_ENGINE_ID’; //← 実際のサーチエンジンIDに置き換える


ファイル名「コード.gs」をクリックして「rank-tracker」などの分かりやすい名前に変更し、「保存」ボタンをクリックします。(下図赤枠)

【手順5】実行と権限設定
スプレッドシートに戻り、ページを更新すると、上部メニューに「検索順位トラッカー」が追加されます。(下図赤枠)

「検索順位トラッカー」→「API接続をテスト」をクリックします。権限確認項目が表示されるので、「権限を確認」をクリックし、自分のGoogleアカウントを選択し、「詳細」→「無題のプロジェクト(安全ではないページ)に移動」をクリック(下図赤枠)

「すべて選択」→「続行」をクリックします。テストが成功するとアラートが表示されます(下図赤枠)

【手順6】順位計測・動作確認
「検索順位トラッカー」→「単一キーワードをテスト」をクリックします。アラートで結果が表示されれば問題ありません。(下図赤枠)

「検索順位トラッカー」→「すべてのキーワードを最初から処理」をクリックします。(下図赤枠)

処理が完了すると、C列に日付と各キーワードの検索順位が表示されます。(下図赤枠)

注意点と制限
無料枠は1日100件まで
Google Custom Search APIの無料枠は1日あたり100クエリまでです。1日100件までの検索であれば無料で、それ以上の101件以上の検索には費用がかかります。詳しくは、公式サイトで費用を確認してください。
Custom Search JSON API では、1 日あたり 100 件の検索クエリを無料で利用できます。これを超えて必要な場合は、API Console でbillingをお申し込みいただけます。追加リクエストの料金は、クエリ 1, 000 クエリあたり $5 で、1 日あたり 1 万クエリまでです。
この1日の上限にすぐに達しないよう、弊社が用意した上述のスクリプトでは、10位以内までしか計測しないようになっております。
10位以上計測する方法
1位から20位以内などもっと広く調べてほしい場合、スクリプトの中身を変更する必要があります。しかし無料枠の100クエリの制限に注意が必要です。
Googleの1ページに対して1クエリを消費するため、10位以内を計測するのであれば1クエリ消費されます。しかし、11位〜20位の場合は2ページ目まで確認するため2クエリ分消費するので、無料枠が早く到達してしまいます。20位以内であれば1日50キーワードほど調査できるので設定を変更しても良いかもしれません。
それでは、以下の4つの手順に従ってスクリプトを修正しましょう。
まず、スプレッドシートの「拡張機能」から、「Apps Script」をクリックしてください。

【手順1】BATCH_SIZE の変更(36行目)
「const BATCH_SIZE = 20;」というコードを「const BATCH_SIZE = 10;」に変更してください。(下図赤枠)

【手順2】待機時間の変更(55行目)
「Utilities.sleep(2000);」というコードを「Utilities.sleep(5000);」に変更してください。(下図赤枠)

【手順3】getRankForKeyword関数を書き換える(90行目から)
「function getRankForKeyword(keyword, targetUrl) {」の関数部分を一式(90〜170行目)削除してください。
削除方法としては、「function getRankForKeyword(keyword, targetUrl) {」の行の番号(90)の数字の右側に>のボタンがありますのでそちらを押していただくと、該当する関数を折りたたむことができるので簡単に削除することができます。(下図赤枠)

削除した部分に以下のスクリプトをコピーして貼り付けてください。(下図赤枠)
スクリプト-10位以上計測用-getRankForKeyword関数
※スクリプトが長いためGoogleドキュメントに記載し公開しました、こちらのリンクをクリックするとGoogleドキュメントに遷移します。

追加したスクリプト内の107行目と108行目に関しまして、取得した「APIキー」「検索エンジンID」に置き換えて下さい。(下図赤枠)
const API_KEY = ‘YOUR_API_KEY’; // ← 実際のAPIキーに置き換える
constSEARCH_ENGINE_ID=’YOUR_SEARCH_ENGINE_ID’; //← 実際のサーチエンジンIDに置き換える

【手順4】スクリプトを保存してリロードする
スクリプトを保存ボタンをクリックしてください。(下図赤枠)

スプレッドシートに戻り、ページを更新することで変更したスクリプトが反映されて、10位以上の順位を計測することができるようになります。(下図赤枠)

20位以上計測する場合の設定方法
【手順3】getRankForKeyword関数を書き換える、の中で変更した「const MAX_RANK = 20;」こちらの部分の値を調査したい順位まで広げれば、20位以上の順位を計測することができます。(例:30位以内を計測したい場合「const MAX_RANK = 30;」に変更)(下図赤枠)

エラー時の対処法
一日のAPI制限に達してしまった場合
100件以上の検索をした場合、エラーが表示されるようになります。しかし、翌日まで待っていただければ、再び、100件調べられるようになります。また、Google Cloud Platformでクォータの引き上げを申請していただければ、料金がかかってしまいますが、1日の上限を超えて調べることができます。(下図赤枠)

まとめ
今回は、無料で、順位計測をする方法について解説しました。これを使えば、自社サイトやブログがどのキーワードで何位に表示されているかということを把握できるようになります。順位を確認したうえで、より上位表示するための施策を考えながらWebサイトを運営してみてください。