В интерфейсе Google Search Console таблица запросов показывает не больше тысячи строк, а выгрузку приходится делать вручную по каждому сайту. Если сайтов несколько или нужна ежедневная статистика в таблице или BI-системе, выручает программный интерфейс — Search Console API.
Разбираем, что умеет API, как получить доступ без лишних сложностей, какие есть лимиты и как выглядит рабочий пример на Python. Всё — по официальной документации Google на октябрь 2026 года.
Коротко:
- Доступ бесплатный, но требует проекта в Google Cloud и авторизации.
- Главный метод — searchanalytics.query: запросы, страницы, страны, устройства, клики, показы, CTR и позиции.
- Программно доступна и проверка URL — до 2 000 адресов в день на один сайт.
- Проще всего подключаться через сервисный аккаунт, добавленный в пользователи консоли.
- Indexing API — другой сервис: официально он предназначен только для вакансий и прямых трансляций.
Зачем программный доступ, если есть кабинет
- Больше строк. В интерфейсе — до 1 000 строк в таблице. Программно за один запрос можно получить до 25 000 строк и листать дальше.
- Автоматизация. Скрипт каждый день складывает данные в Google Таблицы, базу или BI — без ручных выгрузок.
- Много сайтов. Агентству или владельцу сети сайтов удобно собирать статистику всех ресурсов одним скриптом.
- Своя аналитика. Данные можно объединить с CRM, рекламой и Метрикой и строить собственные отчёты.
- Массовая проверка индексации. Проверить статус сотен адресов, а не по одному.
Если нужна только регулярная выгрузка в отчёт, сначала посмотрите на готовые варианты: связку с GA4 (подробнее — в статье как связать Search Console и Google Analytics) или коннектор Looker Studio. Свой скрипт нужен, когда этих инструментов не хватает.
Что умеет программный интерфейс консоли

| Ресурс | Методы | Что даёт |
|---|---|---|
| Search Analytics | query | Данные отчёта «Эффективность»: клики, показы, CTR, позиция с группировкой по запросу, странице, стране, устройству, дате, виду в поиске |
| URL Inspection | index.inspect | То же, что проверка URL в интерфейсе: в индексе ли адрес, когда сканирован, какой канонический |
| Sitemaps | list, get, submit, delete | Список карт сайта, их статус, отправка новых |
| Sites | list, get, add, delete | Ресурсы, к которым есть доступ |
Чего здесь нет: отчёта «Страницы» с причинами неиндексации целиком, ссылок, Core Web Vitals и статистики сканирования. Эти данные доступны только в интерфейсе или через массовый экспорт в BigQuery.
Как получить доступ

- Создайте проект в Google Cloud Console (console.cloud.google.com) или выберите существующий.
- В разделе «API и сервисы» → «Библиотека» найдите API консоли поиска Google и нажмите «Включить».
- В «IAM и администрирование» → «Сервисные аккаунты» создайте сервисный аккаунт. Откройте его, перейдите во вкладку «Ключи» и создайте ключ в формате JSON. Файл скачается на компьютер.
- Скопируйте e-mail сервисного аккаунта (вида name@project.iam.gserviceaccount.com).
- В Search Console откройте «Настройки» → «Пользователи и разрешения» и добавьте этот e-mail. Для чтения данных хватит ограниченного доступа; для отправки Sitemap нужен полный.
- Установите библиотеку и отправьте первый запрос — пример ниже.
JSON-ключ — это пароль к данным. Не публикуйте его в репозиториях, не пересылайте в мессенджерах и храните отдельно от кода.
Сервисный аккаунт или OAuth
Есть два способа авторизации:
- Сервисный аккаунт — для скриптов, которые работают сами по расписанию. Не требует входа человека.
- OAuth 2.0 — для приложений, где пользователь входит под своим Google-аккаунтом и разрешает доступ к своим сайтам. Сложнее в настройке, зато не нужно добавлять отдельный e-mail в каждую консоль.
Для внутренних задач агентства или компании проще сервисный аккаунт.
Пример на Python
Установите библиотеки:
pip install google-api-python-client google-authСкрипт выгружает топ запросов за месяц:
from google.oauth2 import service_account from googleapiclient.discovery import build SCOPES = ["https://www.googleapis.com/auth/webmasters.readonly"] creds = service_account.Credentials.from_service_account_file("key.json", scopes=SCOPES) service = build("searchconsole", "v1", credentials=creds) body = { "startDate": "2026-09-01", "endDate": "2026-09-30", "dimensions": ["query"], "rowLimit": 25000, } resp = service.searchanalytics().query(siteUrl="https://site.ru/", body=body).execute() for row in resp.get("rows", []): print(row["keys"][0], row["clicks"], row["impressions"], round(row["position"], 1))Что важно в коде:
-
siteUrl— ровно как ресурс в консоли:
https://site.ru/для префикса в URL или
sc-domain:site.ruдля доменного ресурса;
-
dimensions— группировка:
query,
page,
country,
device,
date,
searchAppearance;
-
rowLimit— до 25 000 строк; дальше листайте параметром
startRow;
- для только чтения достаточно области
webmasters.readonly.
Фильтры
Параметр
dimensionFilterGroups отбирает строки: например, только запросы со словом «директ» или только одну страницу. Оператор задаётся как
contains ,
equals ,
notContains и другие. Так удобно выгружать данные по отдельному разделу сайта.
Пример: выгрузка по дням в таблицу
Типовая задача — каждое утро дописывать в таблицу вчерашние клики и показы по страницам. Порядок такой:
- Запросите данные за один день с группировкой
["date", "page"].
- Сохраните строки в CSV или отправьте в Google Таблицы через их программный интерфейс.
- Запустите скрипт по расписанию — через планировщик заданий Windows, cron на сервере или облачную функцию.
- Раз в неделю сверяйте итоги с интерфейсом консоли, чтобы убедиться, что выгрузка не теряет дни.
Запросы за один день лёгкие, поэтому квота нагрузки почти не расходуется.
Лимиты
| Ресурс | Ограничение |
|---|---|
| Search Analytics — на сайт | 1 200 запросов в минуту |
| Search Analytics — на пользователя | 1 200 запросов в минуту |
| Search Analytics — на проект | 30 млн запросов в день, 40 000 в минуту |
| Проверка URL — на сайт | 2 000 запросов в день, 600 в минуту |
| Остальные ресурсы — на пользователя | 20 в секунду, 200 в минуту |
Кроме количества, у Search Analytics есть квота нагрузки. По документации, самые «тяжёлые» запросы — с группировкой и по странице, и по запросу одновременно, а также за длинные периоды.
Если получаете ошибку о превышении квоты, подождите 15 минут, разбейте выгрузку по дням и не запрашивайте одни и те же данные повторно.
Ограничение на полноту данных
Google прямо предупреждает: метод не гарантирует возврат всех строк — только самых важных. Редкие запросы скрываются ради конфиденциальности, поэтому сумма кликов по запросам обычно меньше общей суммы кликов сайта. Это нормально и одинаково в выгрузке и в интерфейсе.
API GSC и Indexing API — не одно и то же
В выдаче по этой теме много статей про Indexing API — их часто путают. Разница:
| API GSC | Indexing API | |
|---|---|---|
| Для чего | Получать данные консоли | Сообщать Гуглу о новых или удалённых страницах |
| Официальное назначение | Любые сайты | Страницы с вакансиями и прямыми трансляциями |
| Ускоряет индексацию | Нет | Для поддерживаемых типов страниц |
Использовать Indexing API для обычных страниц — статей, услуг, товаров — Google не рекомендует. Для них работают Sitemap, внутренние ссылки и «Запросить индексирование» в проверке URL.
Готовые инструменты без программирования
- Looker Studio — бесплатный коннектор Search Console, отчёты строятся мышкой.
- Массовый экспорт в BigQuery — настраивается в консоли, выгружает все данные ежедневно; платный BigQuery, но без лимита строк.
- Дополнения для Google Таблиц — Search Analytics for Sheets и аналоги выгружают данные по расписанию.
- SEO-сервисы — многие подключаются к консоли через API и сами строят отчёты.
Частые ошибки
- 403 — нет доступа. E-mail сервисного аккаунта не добавлен в пользователи консоли или добавлен в другой ресурс.
- Пустой ответ. Неверный
siteUrl: указали https://site.ru/ вместо sc-domain:site.ru или наоборот.
- Данные за последние дни пустые. Статистика приходит с задержкой в 2–3 дня.
- Сумма по запросам меньше общей. Это особенность данных, а не ошибка скрипта.
- Интерфейс не включён в проекте. Включите его в библиотеке Google Cloud.
Что смотреть в самой консоли — в нашем руководстве по Google Search Console, а как добавить сайт — в пошаговой инструкции.
Похожий программный доступ к статистике есть у Яндекса — например, API Метрики и API Вордстата.
