サーチコンソールAPIの上限|気づかず2か月で3割見落とした話

AI自動化の実録

※本記事にはプロモーションが含まれます

サーチコンソールAPIには取得件数の上限があり、しかもそれを超えてもエラーにならない。筆者はそれに気づかないまま2か月運用し、検索の数字を実数の3分の2しか見ていなかった。

筆者はブログ5サイトをAIで自動運営していて、検索の表示回数やクリック数は毎週自動で取得している。先月は同じ仕組みの別の場所でも取りこぼしが出た(自動化の失敗|同じ再試行では直らない時があるでは、Instagram自動投稿の障害が再試行では直らなかった話を書いた)。今回はそれより前に見つかった、取得そのものの話だ。

サーチコンソールAPIの取得に上限があった

サーチコンソールAPIの上限|気づかず2か月で3割見落とした話のイメージイラスト
イメージ(AI生成)

気づいたのは2026年9月10日、ログを読み返していたときだった。Googleが提供するサーチコンソールAPI(Search Console API)には、1回の呼び出しで返す行数を指定する「rowLimit」というパラメータがある。既定値は1,000件、1回のリクエストで指定できる上限は25,000件まで。ここだけ見れば十分な余裕がある数字だ。

ところが自分の取得スクリプトは、動作確認用に小さく入れた「25」という値のまま、本番でも2か月近く動いていた。

参考:Google Search Console API searchanalytics.query の仕様(rowLimit は1〜25,000・既定値1,000。startRow でページ送り)

サーチコンソールAPIの上限に気づいたきっかけ

5ブログ分のデータを毎週・毎月取得する仕組みを組んだとき、最初の動作確認に使った「25」をそのまま本番に持ち込んでしまい、見直す工程を挟んでいなかった。ここが一番の反省点だ。

厄介なのは、rowLimitを超えてもAPIはエラーを返さないこと。指定した行数だけを黙って返してくる。だから実行ログには毎回「✅成功」が積み重なっていき、どこにも異常は出ない。件数が足りているかどうかは、取得した後の数字を自分で疑わない限り分からない。

上限25件のまま2か月運用していた代償

取得対象のブログ群には、全部で290本ほどの記事がある。rowLimitはサイト1件ごとに指定するパラメータなので、25のままだと取れるのは各ブログの上位25URLまで。5ブログを合わせても最大125本分しか数字が見えていない計算になる。残りの記事の表示回数・クリック数は、合計の集計にすら入っていなかったということだ。検索上位でもアクセスが少ない理由を調べるにも、まずその「実数」が揃っていなければ話にならない。

上限を200件に上げてわかった実数

rowLimitを25から200へ引き上げ、同じ期間(2026/8/11〜9/7)をもう一度取得し直した結果が下の表だ。

項目 旧仕様(上限25件) 新仕様(上限200件)
対象期間 2026/8/11〜9/7 同じ期間を再取得
表示回数合計(5ブログ) 1,047 1,595
クリック数合計(5ブログ) 合計を把握できていなかった 23
見えていた割合 約66% 100%(打ち切りなし)
rowLimitを25から200に上げたときの表示回数合計の比較グラフ
図:自宅の実行ログ(2026-09-10計測・5ブログ合計・同一期間の再取得)より作成

1,047÷1,595を計算すると約66%。つまり残りの34%、およそ3割分の表示回数を、2か月の間ずっと見ないまま判断していたことになる。再取得では打ち切りを示すフラグも立たなかったので、200件なら全部取れているという確認まで一度に取れた。

「成功」のログと「全部取れた」は別物

今回の一番の学びはここだ。rowLimitのような件数上限は、超えてもエラーにならない。だから「成功」のログだけを見ていても、全部取れたのか一部だけ取れたのかは区別できない。

修正では、取得結果に totals(表示・クリックなどの合計値)と truncated(打ち切りが起きたかどうかのフラグ)を持たせるようにした。truncatedがtrueになっていれば、「これは全部ではない」とひと目で分かる。成功のログに安心せず、合計値そのものを毎回疑う仕組みに変えた、というのが今回の対処だ。

判定そのものは単純で、返ってきた行数が指定した上限と同じ数に達していれば打ち切りとみなしている。上限ちょうどで返ってきたデータは、たまたまそこで終わったのか、続きがあるのに切られたのかを区別できないからだ。ついでに合計値のほうにも、取得できたURLの数と検索語の数、そのとき使った上限値を一緒に入れておいた。あとからログを見返したときに、どの設定で取った数字なのかが本文を読まなくても分かる。

ここまでやっておくと、次に同じ種類の取りこぼしが起きたときの発見が早くなる。見るのは数字ではなくフラグひとつだ。

ブログの自動運営そのものに興味が出てきたら 【AIが自動でブログを運営】AIブログくんGOLDで効果的なAIブログを始めよう!無料体験実施中!

まとめ:サーチコンソールAPIの上限に気づける仕組みをどこに残すか

件数上限は一度決めてしまうと、見直される機会がないまま残りやすい。しかもエラーにならないので、気づくきっかけは自分で作るしかない。今回のように合計値とtruncatedフラグを結果に持たせておけば、気づくタイミングは「おかしいと気づいてから調べる」ではなく「次にログを読んだとき」に変わる。自動で回している処理ほど、この差は大きい。

よくある質問

Q. rowLimitを超えるとエラーになりますか?

いいえ。サーチコンソールAPIはrowLimitを超えてもエラーを返さず、指定した件数までを黙って返してきます。取得処理のログは成功のまま残るので、件数が足りているかどうかは別途確認することになります。

Q. rowLimitの上限はどれくらいまで上げられますか?

1回のリクエストで指定できるrowLimitは最大25,000件です。既定値は1,000件で、何も指定しないとこの件数に制限されます。それ以上必要な場合は、startRowを使ってページ送りして取得することになっています。

Q. rowLimitは5サイト分の合計件数ですか?

いいえ。rowLimitはリクエスト1回ごと、つまりサイト1件ごとの指定です。5サイトを順番に取得する場合は、サイトごとにその件数まで取れることになります。合計で何件取れたかを知りたいときは、取得した側で合算して確認します。