«Не удаётся связаться с сервисом reCAPTCHA» — фраза, которую в 2026 году видит каждый второй российский владелец сайта: токен не определяется, site key «невалидный», v3-скор падает до нуля, а форма просто не отправляется. Разбираем 7 главных причин, почему reCAPTCHA перестаёт работать, — и для каждой даём конкретный способ починить. В конце — честный ответ на вопрос, который задают после пятой причины: а стоит ли вообще чинить, или пора переезжать на российскую альтернативу.
Введение
reCAPTCHA — самый массовый captcha-сервис мира, и именно поэтому у неё самая массовая база «сломанных» сайтов. Запросы «recaptcha не работает», «recaptcha verification failed», «не определен токен recaptcha» и «не удается связаться с сервисом recaptcha» вместе собирают несколько сотен показов в месяц — и каждый из них означает форму, которая прямо сейчас теряет заявки.
Хорошая новость: в 90% случаев проблема лечится за 10–30 минут. Плохая новость: у российской аудитории есть ещё и системная причина, которую «починить» нельзя — зависимость от инфраструктуры Google. Разберём всё по порядку: от «перепутали ключи» до «Google недоступен», а в конце соберём чек-лист диагностики.
Причина 1. Сервис Google недоступен из России
Самая частая причина для российской аудитории. reCAPTCHA живёт на инфраструктуре Google: виджет грузится с доменов Google, токен проверяется на сервере Google. Если этот путь заблокирован или деградировал — DNS, firewall, оператор — вы получите ровно то, что написано в заголовке: «Не удаётся связаться с сервисом reCAPTCHA». Пользователь видит ошибку, форма не отправляется, заявка потеряна.
Признаки:
- Ошибка приходит «волнами»: сегодня работает, завтра — нет. Это характерно для сетевых проблем, а не для вашего кода.
- В консоли браузера — ошибки загрузки скриптов Google (
www.gstatic.com,accounts.google.com). - Работает у вас, но не у части клиентов (разные провайдеры, разные маршруты).
Как починить. Полностью починить из России нельзя — это зависит от доступности инфраструктуры Google. Временные меры: резервный маршрут DNS, CDN-прокси скриптов Google (не всегда помогает и создаёт свои проблемы), ускоренная отправка формы при недоступности капчи (рискованно: боты получат открытую дверь). Долгосрочное решение — переезд на captcha-сервис с серверами в России. Разбор рисков Google-капчи для российского бизнеса — в статье лимиты reCAPTCHA 2026, а план миграции — в импортозамещении капчи.
Причина 2. Перепутаны site key и secret key
Классика разработчиков. У reCAPTCHA два ключа: site key (публичный, вставляется в HTML) и secret key (секретный, используется только серверной проверкой). Типовые ошибки:
- В HTML лежит secret key вместо site key — виджет не грузится или выдаёт
Invalid Site Key. - На сервере проверяют токен с site key вместо secret — проверка всегда падает с ошибкой
invalid-input-secret. - Ключи созданы для одного домена, а сайт работает на другом (subdomain, staging, зеркало).
Как починить. Зайдите в консоль reCAPTCHA, убедитесь, что в HTML именно site key (начинается с 6Lc...), на сервере — secret key, и что в списке доменов ключа есть все домены, на которых работает сайт (включая поддомены и тестовые окружения). После добавления домена изменения вступают в силу в течение нескольких минут.
Причина 3. Домен не добавлен в ключ
Даже с правильными ключами reCAPTCHA откажет, если текущий домен страницы не входит в список доменов, привязанных к ключу. Ошибка — domain-not-allowed при серверной проверке. Типовые ситуации: переезд на новый домен, запуск staging-зеркала, поддомен для формы (form.your-site.ru), локальная разработка с публичным ключом.
Как починить. Добавьте все рабочие домены в консоль reCAPTCHA. Для локальной разработки Google официально поддерживает localhost, но для любого публичного домена нужен явный список. Если доменов много (сеть сайтов) — проще завести отдельный ключ на сайт и не плодить список.
Причина 4. Клиентские ошибки: grecaptcha не загрузился, токен «не определён»
Ошибка «не определён токен recaptcha» (или grecaptcha is not defined в консоли) почти всегда означает, что клиентская часть не смогла получить токен. Причины:
- Скрипт reCAPTCHA не загрузился — та же сетевая проблема из причины 1, либо
onerrorв загрузке. - Порядок выполнения. Код формы обращается к
grecaptcha.execute()до того, как скрипт капчи подгрузился (асинхронная загрузка безonload-колбэка). - Конфликт версий. На странице два скрипта reCAPTCHA (например, от темы WordPress и от плагина) с разными версиями API.
- CSP (Content Security Policy). Политика безопасности сайта блокирует скрипты или iframe с доменов Google.
- Adblockers и privacy-расширения блокируют iframe reCAPTCHA у части пользователей — для них форма «не отправляется», хотя код у вас правильный.
- Noscript / старые браузеры.
noscript-фолбэк не настроен.
Как починить. Проверяйте в консоли браузера: грузится ли скрипт, есть ли grecaptcha, нет ли ошибок CSP. Вешайте onload-колбэк инициализации, убирайте дубли скриптов, при необходимости расширяйте CSP (script-src и frame-src для доменов Google). Для adblock-аудитории готовьте деградацию: если капча не загрузилась за N секунд, показывать форму с предупреждением или резервную проверку (server-side risk check).
Причина 5. Токен истёк или был использован повторно
Токен reCAPTCHA живёт 2 минуты и одноразов: после успешной серверной проверки повторное использование того же токена вернёт ошибку duplicate-token-submission. Типовые сценарии:
- Пользователь заполнял форму дольше двух минут — токен на момент отправки уже мёртв.
- Фронтенд отправляет форму дважды (двойной клик, ретраи) — вторая проверка падает.
- Бэкенд проверяет токен асинхронно «с задержкой» (очередь, webhooks) — к моменту проверки 2 минуты уже прошли.
Как починить. Проверяйте токен синхронно в момент отправки формы, а не в фоне. Дедуплицируйте отправку (отключить кнопку до ответа сервера). Если архитектура требует асинхронной проверки — храните токен коротко и проверяйте в пределах минуты. Для пользователя: при ошибке повторного прохождения показывайте капчу заново, а не «что-то сломано».
Причина 6. Серверная проверка падает
Клиент сдал токен, а серверная проверка https://www.google.com/recaptcha/api/siteverify отработала с ошибкой. Типовые причины:
- Неверный secret key —
invalid-input-secret. - Сервер не видит Google — корпоративный firewall, прокси, egress-ограничения. Если бэкенд в облаке с закрытым egress, проверка упрётся в сетевую политику.
- Неверный remoteip. Передаёте IP клиента, но сервер за CDN/балансировщиком —
error-validate-ip. - Таймауты. Внешний запрос к Google висит, бэкенд роняет его через 2–3 секунды — проверка «случайно» падает.
Как починить. Логируйте ответы siteverify (Google возвращает понятные коды ошибок). Проверьте egress-доступ сервера к доменам Google, настройте проксирование, если нужно. Для CDN-сценариев передавайте реальный IP клиента (X-Forwarded-For). Таймаут внешнего запроса — 5–10 секунд с ретраем, а не 2.
Причина 7. reCAPTCHA v3: низкий скор и лимиты Enterprise
У «невидимой» v3 нет видимого виджета — есть скор 0.0–1.0, и решаете вы, при каком пороге считать пользователя ботом. Типовые проблемы:
- Скор «упал» без видимых изменений. Google пересобирал модель, изменил трафик сайта, появился новый источник рефералов. Порог 0.5, который год работал, вдруг начинает резать живых пользователей.
- Порог выбран неправильно. Строгий порог (0.7+) отсекает часть реальных людей, мягкий (0.3) — не ловит ботов. Корректный порог подбирается по данным, а не угадывается.
- Достигнут лимит. Бесплатные 10 000 проверок в месяц исчерпаны, платный Enterprise не подключён — проверки начинают падать.
- Биллинг. У Enterprise-аккаунта закончилась карта или исчерпан кредит — сервис деградирует.
Как починить. Для skора: включайте сбор данных по сегментам (устройство, источник, путь), стройте порог по конверсии, а не «на глаз». Для лимитов: следите за счётчиком в консоли Google Cloud, настраивайте алерты за 80% лимита. Альтернатива: гибридная схема — v3 как фон + видимая капча (v2) для подозрительных сессий. Разбор версий v2/v3/Enterprise — в статье reCAPTCHA v2, v3 и Enterprise.
Чек-лист: как быстро найти причину
- Откройте консоль браузера на странице формы. Ошибки загрузки скриптов Google → причина 1 (сеть).
grecaptcha is not defined→ причина 4 (клиент). - Проверьте ключи. Site key в HTML, secret key на сервере, домен в списке ключа → причины 2–3.
- Посмотрите логи серверной проверки. Код ошибки siteverify скажет всё:
invalid-input-secret,domain-not-allowed,duplicate-token-submission,timeout-or-duplicate. - Проверьте egress сервера.
curl https://www.google.com/recaptcha/api/siteverifyс того же сервера, что и бэкенд — если не отвечает, причина 6. - Оцените паттерн. «Волнами» — сеть (причина 1). «Всегда» — код/ключи (2–6). «Скор странно» — v3 (причина 7).
- Протестируйте на мобильном и у «чужого» провайдера. Если у вас работает, а у клиента нет — почти наверняка сетевая причина 1.
Если после чек-листа остаётся только «всё правильно, а Google недоступен» — вы уперлись в причину 1, и это не баг, а архитектура.
Когда чинить бессмысленно: переезд на российскую капчу
Ситуация, при которой все 7 причин «починены», а проблема возвращается волнами: виджет reCAPTCHA деградирует из-за доступности инфраструктуры Google. Для российского сайта это фоновое состояние, а не сбой. Варианты:
- Оставить reCAPTCHA + резервная капча. Двойная интеграция, двойная поддержка, двойные проблемы. Работает, но дорого по инженерии.
- Переехать на российский captcha-сервис. Один виджет, серверная проверка в РФ, оплата в рублях, данные в РФ. Миграция занимает меньше часа: заменяется скрипт виджета и endpoint серверной проверки.
На практике второй путь выглядит так. Подключаете СВАЙПЕР: одна строка скрипта перед </body> — <script src="https://verifsite.ru/widget.js" data-site-key="ВАШ_КЛЮЧ" data-mode="hard"></script>. Фронтенд подписывается на событие slider-captcha:passed. Бэкенд заменяет вызов siteverify на POST /api/v1/introspect — серверную проверку, что слайдер прошёл человек. Первые 5 000 проверок в месяц — бесплатно, дальше тарифы от 2 490 ₽ в месяц за 200 000 проверок, оплата YooKassa российскими картами. Серверы в РФ, соответствие 152-ФЗ. Пошагово про переезд — в статье импортозамещение капчи: план миграции.
Частые вопросы
Почему reCAPTCHA не работает только в России?
Потому что виджет и серверная проверка идут через инфраструктуру Google, доступность которой из России нестабильна. Если в других странах форма работает, а в России — «не удаётся связаться с сервисом», это сетевая причина №1. Локальное «лечение» (DNS, прокси) нестабильно; надёжное решение — captcha-сервис с серверами в России.
Что значит «не определен токен recaptcha»?
Клиент не сдал токен на сервер: либо grecaptcha не загрузился, либо токен истёк (2 минуты), либо форма отправлена до прохождения капчи. Чинится проверкой загрузки скрипта, синхронной отправкой и дедупликацией запросов. Подробности — в причинах 4 и 5 выше.
reCAPTCHA verification failed — что это?
Серверная проверка вернула отказ: неверный secret key, домен не в списке, токен использован повторно, IP не совпал или скор v3 ниже порога. Коды ошибок siteverify конкретные — смотрите логи бэкенда, а не гадание.
Сколько живёт токен reCAPTCHA?
2 минуты, и токен одноразов. Если пользователь заполняет форму дольше двух минут — нужен механизм повторного получения токена. Если бэкенд проверяет токен «в фоне» с задержкой — проверка начнёт падать.
Стоит ли платить за reCAPTCHA Enterprise, чтобы починить проблему?
Если проблема — в доступности Google из России, Enterprise её не решит: это платная версия того же сервиса с тем же контуром. Enterprise решает другие задачи: детальный скор, аналитика, SLA. Для российского сайта с проблемами доступности — платная российская альтернатива, а не платная Google.
Итоги
«reCAPTCHA не работает» — это 7 разных проблем: недоступность Google из России, перепутанные ключи, недоавторизованный домен, клиентские ошибки загрузки, истёкший токен, падение серверной проверки и странности v3-скора. Первые шесть чинятся за 10–30 минут по чек-листу: консоль браузера → ключи → логи siteverify → egress сервера → паттерн ошибок. Седьмая — системная: зависимость от инфраструктуры Google. Если форма в России «умирает волнами», чинить нечего — пора переезжать на российский captcha-сервис.
СВАЙПЕР — российская слайдер-капча с серверами в РФ, 152-ФЗ и оплатой в рублях: 5 000 бесплатных проверок в месяц, подключение одной строкой скрипта, серверная проверка одним запросом. Зарегистрируйтесь — и форма перестанет терять заявки из-за недоступного Google.