Перейти к содержанию
← Все статьи Google Search Console API: выгрузка больше 1000 строк

Google Search Console API: выгрузка больше 1000 строк

Практическая схема выгрузки Search Analytics через API: пагинация, квоты, проверка результата и границы доступных данных.

Google Search Console API нужен, когда данных в интерфейсе недостаточно для повторяемого анализа: он позволяет забирать показатели поиска программно, сохранять одинаковые настройки запросов и обновлять отчёты без ручного экспорта. Для полной выгрузки нельзя ограничиваться первым ответом. У метода Search Analytics значение rowLimit по умолчанию равно 1 000, максимум — 25 000, а следующие строки запрашиваются через startRow. Даже после пагинации Google возвращает самые значимые строки в пределах внутренних ограничений, поэтому результат нельзя называть полным журналом всех запросов.

Ниже — практическая схема для человека, которому нужны страницы, запросы, клики, показы, CTR и позиция. Она отделяет Search Analytics от URL Inspection и управления sitemap, использует доступ только для чтения и показывает, как проверить выгрузку числами. У готового файла должна сохраняться карточка запроса: свойство, даты, тип поиска, измерения, фильтры, режим данных и время получения.

Какие задачи решает Google Search Console API?

Search Console API — это несколько ресурсов с разными назначениями. Через них можно читать данные эффективности, просматривать доступные свойства, работать с sitemap и проверять сведения об индексированной версии отдельного URL. Официальный обзор API подчёркивает, что для обращения к свойству нужны соответствующие права в Search Console.

ЗадачаМетодЧто получитсяГлавное ограничение
Выгрузить клики и показыsearchAnalytics.queryСтроки по датам, страницам, запросам, странам, устройствам и другим измерениямВозвращаются верхние строки; API не обещает все возможные сочетания
Проверить сведения об URLurlInspection.index.inspectСтатус индексирования, канонический адрес, сведения об обходе и обнаруженные проблемыПроверяется версия в индексе, а не опубликованная страница в реальном времени
Получить список sitemapsitemaps.listОтправленные карты сайта и их состояниеЭто не список всех URL сайта
Узнать доступные свойстваsites.listСвойства, к которым есть доступ у авторизованного пользователяНабор зависит от прав учётной записи

Такое разделение предотвращает типичную ошибку: Search Analytics нельзя использовать как проверку индексирования, а URL Inspection API — как массовый тест опубликованной версии. В описании URL Inspection прямо указано, что метод сообщает о версии, известной индексу Google.

Если сначала нужно разобраться, какой вопрос решает каждый отчёт интерфейса, используйте обзор возможностей Search Console. API имеет смысл подключать после определения нужного отчёта и уровня агрегации.

Почему стандартная выгрузка заканчивается на 1 000 строках?

В теле запроса Search Analytics параметр rowLimit необязателен. Если его не передать, сервис использует 1 000 строк. Допустимый диапазон — от 1 до 25 000. Параметр startRow задаёт нулевой индекс первой строки следующей порции. Эти значения приведены в справочнике метода query.

Увеличение rowLimit до 25 000 решает только размер одного ответа. Для продолжения нужно повторить тот же запрос, изменив startRow с 0 на 25 000, затем на 50 000. Даты, измерения, фильтры, тип поиска и режим данных при этом должны оставаться одинаковыми. Если менять параметры между страницами, строки уже нельзя считать частями одной выгрузки.

{
  "startDate": "2026-09-01",
  "endDate": "2026-09-01",
  "type": "web",
  "dimensions": ["page", "query"],
  "rowLimit": 25000,
  "startRow": 0,
  "dataState": "final"
}

Свойство указывается в адресе запроса. Для URL-prefix оно содержит протокол и завершающий слеш, например https://example.com/; для доменного свойства используется форма sc-domain:example.com. Это технические примеры синтаксиса, а не адрес исследуемого проекта.

Как выгрузить больше 1 000 строк без пропусков между пакетами?

Алгоритм останавливается, когда ответ пуст или содержит меньше запрошенных 25 000 строк. Google отдельно описывает постраничную выгрузку Search Analytics: если объём равен точной границе пакета, следующий запрос вернёт пустой ответ. Поэтому пустая третья страница после двух заполненных страниц — нормальное подтверждение конца, а не ошибка.

start_row = 0
batch_size = 25000

while True:
    body["startRow"] = start_row
    body["rowLimit"] = batch_size
    rows = request_search_analytics(body)
    save(rows)
    if len(rows) < batch_size:
        break
    start_row += batch_size

Наш расчёт. Если один день и один тип поиска дают ровно 50 000 доступных строк, потребуются три обращения: два ответа по 25 000 и один пустой ответ, который фиксирует границу. Для 31 дня при ежедневной выгрузке одного типа это до 93 обращений: 31 × 3. Это расчёт количества запросов для данного сценария, а не обещание, что каждое свойство вернёт 50 000 строк.

После каждого пакета сохраните номер страницы и число строк. После объединения проверьте уникальность набора измерений, например date + page + query + country + device. Дубликат такого ключа указывает на повторное сохранение пакета или несовпадающие параметры, но не доказывает ошибку Google.

Почему даже пагинация не гарантирует абсолютно все запросы?

Search Analytics сортирует результаты по кликам и предупреждает, что из-за внутренних ограничений возвращает верхние строки, а не гарантированно все строки данных. Отдельная инструкция о получении данных эффективности указывает максимум 50 000 строк в день для одного типа поиска. Поэтому формулировка «полная выгрузка» означает максимально доступную выборку при заданных параметрах, а не список каждой анонимизированной или редкой комбинации.

Чтобы сохранить больше доступных строк, Google рекомендует запрашивать данные отдельно по дням и типам поиска. Широкий диапазон удобнее, но он не увеличивает дневной предел. Разбиение на устройства или страны создаёт дополнительные запросы и может менять агрегацию; это следует делать для конкретного анализа, а не ради искусственного увеличения файла.

Граница вывода. Если сумма кликов из детальных строк меньше агрегированного итога, нельзя создавать строку «unknown query» и приписывать ей выдуманные показатели. Сохраните агрегат и детализацию как разные уровни данных и явно отметьте неполноту измерений.

Как настроить доступ без передачи лишних прав?

Для данных пользователя нужен OAuth 2.0. Обычный API key не заменяет авторизацию Search Console. В инструкции Google по авторизации перечислены два основных scope: webmasters.readonly для чтения и webmasters для чтения и изменения. Для выгрузки эффективности выбирайте scope только для чтения.

  1. Создайте проект в Google Cloud Console и включите Search Console API.
  2. Настройте экран согласия OAuth и создайте клиент для используемого типа приложения.
  3. Запросите https://www.googleapis.com/auth/webmasters.readonly.
  4. Авторизуйте пользователя, у которого есть доступ к нужному свойству.
  5. Храните refresh token как секрет и не записывайте его в отчёты или репозиторий.

Google перечисляет эти предварительные условия в руководстве по подготовке приложения. Права внутри Search Console продолжают действовать: токен не открывает свойства, которых нет у пользователя.

Какие квоты учитывать до запуска массовой выгрузки?

Квоты зависят от ресурса. Согласно актуальной странице ограничений, Search Analytics допускает 1 200 запросов в минуту на сайт и на пользователя; для проекта указаны отдельные минутные и дневные пределы. Кроме количества запросов действует нагрузочная квота: запросы с группировкой или фильтрацией одновременно по странице и запросу дороже, а длинные диапазоны создают больше нагрузки.

URL Inspection ограничен 2 000 проверок в день и 600 в минуту для одного свойства. Это отдельный бюджет: им нельзя измерять эффективность, и его не следует тратить на повторную проверку неизменившихся URL. Для ошибок квоты используйте задержку с увеличением интервала и повтор, а не плотный бесконечный цикл.

СигналПроверкаДействие
Ответ содержит 25 000 строкЕсть ли следующая страницаУвеличить startRow на 25 000
Ответ короче 25 000 строкПараметры не менялисьЗавершить этот срез
Ответ пуст на точной границеПредыдущий пакет был полнымЗафиксировать конец, не считать ошибкой
Quota exceededКакой ресурс и какое окно квотыРазнести запросы и повторить позже
Сумма деталей ниже агрегатаУровень группировки и внутренние пределыХранить агрегат отдельно, описать ограничение

Как проверить качество готового CSV или таблицы?

Сначала сравните не строки, а настройки. У двух файлов должны совпадать часовой смысл дат, тип поиска, режим final или all, измерения, фильтры и свойство. Затем посчитайте строки по пакетам, минимальную и максимальную дату, число уникальных ключей и сумму кликов с показами. CTR лучше пересчитать как сумма кликов / сумма показов, а среднюю позицию не следует усреднять повторно без понимания весов.

Для разового анализа можно использовать инструмент полной выгрузки GSC. Он избавляет от настройки OAuth-клиента и ручной пагинации, но не отменяет ограничения исходного API. Рядом с файлом всё равно сохраните параметры и дату получения.

Чего Search Console API не делает?

API не добавляет сайт в индекс, не отправляет произвольные страницы на ускоренное индексирование и не раскрывает скрытые запросы. Он не является сервисом проверки позиции в фиксированной выдаче: поле position — агрегированный показатель Search Console. URL Inspection API не выполняет live test, а Search Analytics не объясняет причину роста или падения.

Также API не исправляет качество исходной модели данных. Если объединить разные типы поиска, периоды и свойства без явных полей, большой файл будет выглядеть убедительно, но потеряет смысл. Автоматизация полезна только тогда, когда один и тот же запрос можно повторить и объяснить.

Что делать после первой выгрузки?

Сохраните конфигурацию и необработанный ответ до построения производных метрик. Сделайте отдельные таблицы для дневного агрегата и детальных строк. Затем проверьте одну задачу: например, какие страницы получают показы без кликов или какие запросы изменились между сопоставимыми периодами. Для разбора первых сигналов используйте материал о первых показах и кликах; он помогает не принимать короткий всплеск за устойчивую динамику.

FAQ по статье

Короткие ответы на частые вопросы по теме статьи.

Есть ли у Google Search Console API?
Да. Search Console API включает ресурсы Search Analytics, Sites, Sitemaps и URL Inspection. Они решают разные задачи и требуют прав к соответствующему свойству.
Что такое Google Search Console API?
Это REST API для программного обращения к части функций Search Console. Через него можно получать данные эффективности, список доступных свойств, сведения о sitemap и индексированной версии URL.
Как получить доступ к Google Search Console API?
Нужно включить API в проекте Google Cloud, создать OAuth-клиент и авторизовать пользователя с доступом к свойству. Для экспорта достаточно scope webmasters.readonly.
Нужен ли API key для Search Console?
Для частных данных Search Console нужен OAuth 2.0. API key применяется к отдельным публичным testing tools и не заменяет согласие пользователя на чтение его данных.
Как выгрузить из Search Console больше 1 000 строк?
Установите rowLimit до 25 000 и повторяйте одинаковый запрос, увеличивая startRow на размер пакета. Остановитесь после короткого или пустого ответа и сохраните параметры всех пакетов.