Подключение Google Search Console
В дашборде два способа авторизации к GSC. В подавляющем большинстве случаев достаточно OAuth.
| Что нужно | Способ |
|---|---|
| Просмотр запросов, страниц, стран, кликов / показов / CTR / позиций | OAuth — один клик |
| Управление sitemap'ами | OAuth — один клик |
| Проверка индексации через URL Inspection API | OAuth — один клик |
| Отправка URL на (пере)индексацию через Indexing API | Service Account JSON (см. ниже) |
Способ 1 · OAuth — основной (рекомендуется)
Ничего настраивать в Google Cloud Console не нужно. Дашборд использует уже зарегистрированное OAuth-приложение okolo-seo.ru.
- Открой настройки проекта в дашборде: Step 3 · Google Search Console.
- Нажми Connect Google Search Console.
- В открывшемся всплывающем окне выбери Google-аккаунт, в котором у тебя есть права на GSC-сайт. Подтверди доступ.
- Окно закроется автоматически. Дашборд подтянет список GSC property из твоего аккаунта.
- В поле GSC Property появится дропдаун — выбери нужный сайт (или дашборд выберет его автоматически, если property всего одна).
Если в дропдауне нет нужного сайта — добавь его в Search Console с уровнем не ниже Full, потом нажми Refresh в настройках.
Что увидит дашборд: только данные Search Console (просмотр статистики, sitemap'ы, URL Inspection). Никаких писем, файлов или других данных Google-аккаунта.
Что хранится в БД: refresh-токен в зашифрованном виде (AES-256-GCM). Email Google-аккаунта показывается в настройках, чтобы было видно, под каким аккаунтом подключено.
Если потерял доступ: Google сам отзовёт токен, если ты сменишь пароль или удалишь приложение из настроек безопасности Google-аккаунта. В дашборде появится жёлтый бейдж «Access revoked» — нажми Reconnect. Если у тебя включены Telegram-уведомления, придёт сообщение об отзыве.
Способ 2 · Service Account JSON — только для Indexing API
Indexing API (urlNotifications.publish — отправка URL на (пере)индексацию) официально не работает через user-OAuth — Google требует именно Service Account. Если ты планируешь только смотреть статистику и работать со sitemap'ами — этот раздел можно пропустить.
2.1. Создание проекта в Google Cloud
- Открой console.cloud.google.com.
- Нажми выпадающее меню проектов вверху → New Project.
- Введи имя (например,
gsc-indexing) → Create. - Убедись, что выбран только что созданный проект.
2.2. Включение Indexing API
В боковом меню: APIs & Services → Library.
Найди и включи (Enable):
| API | Название в поиске |
|---|---|
| Web Search Indexing API | Web Search Indexing API |
Google Search Console API включать не нужно — он используется через OAuth-флоу выше.
2.3. Создание Service Account
- APIs & Services → Credentials → Create Credentials → Service account.
- Service account name: любое (например,
indexing-bot). - Service account ID: заполнится автоматически.
- Create and Continue.
- Разделы «Grant this service account access to project» и «Grant users access» можно пропустить — Done.
2.4. Создание JSON-ключа
- В списке Service Accounts открой созданный.
- Вкладка Keys → Add Key → Create new key.
- Формат: JSON → Create.
- Файл скачается автоматически — сохрани его, повторно скачать его уже не получится.
2.5. Добавление Service Account как владельца в Search Console
Обязательный шаг — без него Indexing API вернёт 403.
- Открой search.google.com/search-console.
- Выбери нужный сайт.
- Settings (шестерёнка) → Users and permissions → Add user.
- Email Service Account — выглядит как
indexing-bot@gsc-indexing.iam.gserviceaccount.com(он жеclient_emailв JSON-файле). - Роль: Owner.
Для Indexing API Google требует именно Owner, не Full.
- Add.
2.6. Загрузка JSON в дашборд
- В настройках проекта раскрой Advanced: Service Account JSON (for Indexing API).
- Вставь содержимое JSON-файла или загрузи файл через Upload JSON file.
- Save.
JSON хранится в БД в зашифрованном виде (AES-256-GCM) и используется только для вызовов Indexing API.
FAQ
Можно ли использовать только Service Account, без OAuth? Да. Тогда нужно (а) включить и Google Search Console API, и Indexing API в Cloud Console, (б) добавить Service Account как Owner в GSC, (в) загрузить JSON в настройки проекта. Дашборд автоматически использует Service Account, если OAuth не подключён. Но OAuth удобнее — никакой возни с Cloud Console.
Можно использовать одновременно и OAuth, и Service Account? Да. OAuth имеет приоритет для всех чтений (статистика, sitemap, URL Inspection). Service Account будет использоваться только для Indexing API.
Что если у меня нет доступа Owner к сайту в GSC, но есть Full? OAuth-флоу будет работать (Full достаточно для чтения и для управления sitemap'ами). Indexing API — нет, только Owner.
Кто видит мой OAuth-токен или JSON?
Никто, кроме сервера дашборда. Оба секрета хранятся в БД зашифрованными ключом ENCRYPTION_KEY (AES-256-GCM) и расшифровываются только для вызовов Google API.