Коротко: Яндекс SmartCaptcha это капча в Яндекс Облаке: она определяет, человек перед ней или программа. Подключение состоит из двух частей: виджет на странице и проверка токена на вашем сервере. По справке Яндекса, 10 000 проверок в месяц бесплатны, дальше платно. Но одной капчи недостаточно: она защищает только ту форму, где стоит, и не останавливает ботов, которые отправляют запросы в обход страницы.

Если на сайте много спама в формах или накрученных регистраций, одно из первых решений это капча. У Яндекса есть свой сервис, который многие подключают, потому что он российский и работает без VPN. Разберём, как он устроен, как подключить, сколько стоит и что делать, когда капчи мало.

Что такое SmartCaptcha и как она работает

Согласно справке Яндекса, SmartCaptcha позволяет определить, кто пользуется системой: человек или компьютер. Сервис анализирует запрос и показывает проверку не всегда. Есть два режима:

  • Обычный виджет на странице («Я не робот») с заданием, если оно нужно.
  • Невидимая капча. Кнопки нет, а окно с заданием видят только те посетители, чьи запросы сервис посчитает подозрительными.

Как подключить: четыре шага

  1. Создайте капчу в консоли Яндекс Облака (раздел SmartCaptcha): укажите название, разрешённые домены и сложность задания (по умолчанию средняя).
  2. Скопируйте два ключа: клиентский (для виджета на сайте) и серверный (для проверки ответа). Серверный ключ нельзя показывать на странице.
  3. Добавьте виджет на страницу. Подключите скрипт и контейнер с клиентским ключом:
<script src="https://smartcaptcha.cloud.yandex.ru/captcha.js" defer></script>

<form method="post" action="/send">
    ...поля формы...
    <div class="smart-captcha" data-sitekey="КЛИЕНТСКИЙ_КЛЮЧ"></div>
    <button type="submit">Отправить</button>
</form>
  1. Проверьте токен на сервере. Виджет добавляет в форму одноразовый токен. Ваш сервер должен отправить его на проверку:
POST https://smartcaptcha.cloud.yandex.ru/validate
Content-Type: application/x-www-form-urlencoded

secret=СЕРВЕРНЫЙ_КЛЮЧ&token=ТОКЕН_ИЗ_ФОРМЫ&ip=IP_ПОСЕТИТЕЛЯ

Ответ приходит в виде JSON, в поле status значение ok или failed. Пример на PHP:

function check_smartcaptcha(string $token, string $secret, string $ip = ''): bool
{
    $ch = curl_init('https://smartcaptcha.cloud.yandex.ru/validate');
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => http_build_query(['secret' => $secret, 'token' => $token, 'ip' => $ip]),
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 5,
    ]);
    $body = curl_exec($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    if ($code !== 200) {
        return false; // сервис недоступен или ключ неверен: решите, пускать ли посетителя
    }
    $json = json_decode($body, true);
    return is_array($json) && ($json['status'] ?? '') === 'ok';
}

Мы проверили этот код на живом сервисе с заведомо неверным ключом: сервис отвечает кодом 403 и JSON {"status":"failed",...} с пояснением про неверный ключ, а функция возвращает false. Для проверки с настоящими ключами подставьте свои.

Самая частая ошибка: поставить виджет и не проверять токен на сервере. Тогда бот просто отправляет форму без токена, а виджет на странице ничего не решает.

Невидимая капча

Чтобы не показывать «галочку», виджет создаётся с параметром invisible: true, а проверка запускается вашим кодом, обычно при нажатии на кнопку отправки:

window.smartCaptcha.render('captcha-container', {
    sitekey: 'КЛИЕНТСКИЙ_КЛЮЧ',
    invisible: true,
    callback: callback,
});
// при отправке формы: window.smartCaptcha.execute();

Нюансы из справки: в правом нижнем углу показывается уведомление об обработке данных. Его можно переместить или скрыть, но тогда вы сами должны сообщить посетителям, что данные обрабатывает SmartCaptcha. Если на странице несколько виджетов, в execute() нужно передать идентификатор нужного. Время загрузки виджета может быть разным.

Сколько стоит

По справке Яндекса (страница тарификации обновлена 9 сентября 2026 года, цены могут измениться, проверяйте актуальные):

  • 10 000 проверок в календарный месяц бесплатно.
  • Дальше платно по ступеням: от 10 001 до 100 000 проверок по 109,8 ₽ за 1 000, свыше 100 000 по 76,86 ₽ за 1 000.
  • Тарифицируются только корректные запросы, на которые сервис вернул статус ok: токен и ключ верные, токен выпущен не больше 10 минут назад, посетитель признан человеком. Неверные токены и ошибки не оплачиваются.
  • Расчётный период календарный месяц по московскому времени.

Квоты на облако по справке: до 10 капч, до 32 вариантов заданий и до 250 правил показа (увеличиваются по запросу). Лимиты для самого сервиса, по тексту справки, не определены.

Чего капча не решает

  • Защищает только форму, где стоит. Бот может отправить запрос напрямую на адрес обработчика, минуя страницу и виджет, если обработчик не проверяет токен. Поэтому проверка на сервере обязательна.
  • Не видит ботов, которые не ходят в форму: парсеры, сканеры уязвимостей, скликивание рекламы, подбор паролей через API. Это отдельные типы угроз, их описывает классификация OWASP, на русском: 21 тип автоматизированных угроз.
  • Капчу обходят. Для этого существуют сервисы решения и фермы людей: это отдельная угроза в той же классификации (OAT-009, обход капчи). Подробнее: CAPTCHA: защита сайта от ботов и виды проверки.
  • Влияет на конверсию. Любое задание для посетителя это лишний шаг. Невидимый режим снижает неудобство, но не отменяет его полностью.
  • Платит каждый успешный проверенный посетитель после бесплатного лимита, а при активном трафике на формы стоимость растёт.

Чем дополнить капчу

Часть ботов можно остановить ещё до формы, не показывая людям ничего. Проверка на стороне сайта смотрит на запрос целиком: User-Agent, IP-адрес и сеть (датацентры и облака), заголовки браузера, отправку формы без перехода с вашего сайта и частоту запросов. Подозрительным посетителям показывается тихая проверка браузера, а обычные ничего не замечают. Так работает Bot Guard, и он подключается к WordPress плагином и к 1С-Битриксу модулем.

Практическая схема: серверная проверка отсекает очевидных ботов бесплатно и без заданий, а капча остаётся для спорных случаев и критичных форм. Для базовой защиты на уровне сервера можно использовать и fail2ban с nginx, а ограничение частоты запросов описано в статье про rate limiting. Посмотреть, есть ли у вас проблема, можно в анализаторе лога и в проверке Метрики.

Частые вопросы

Сколько стоит Яндекс SmartCaptcha?

По справке Яндекса, 10 000 проверок в календарный месяц бесплатны. Дальше от 109,8 ₽ за 1 000 проверок (с 10 001 до 100 000) и 76,86 ₽ за 1 000 свыше 100 000. Платятся только успешные проверки со статусом ok. Цены на странице тарификации могут меняться, поэтому сверяйтесь со справкой.

Как подключить SmartCaptcha к форме на сайте?

Создайте капчу в консоли Яндекс Облака, получите клиентский и серверный ключи, добавьте на страницу скрипт и контейнер с клиентским ключом, а на сервере проверьте токен запросом на адрес validate с серверным ключом. Без серверной проверки капча не защищает.

Что такое невидимая капча?

Это режим, в котором на странице нет кнопки «Я не робот», а задание видят только посетители, которых сервис посчитал подозрительными. Включается параметром invisible при создании виджета, проверка запускается вызовом execute.

Достаточно ли одной капчи для защиты от ботов?

Нет. Капча защищает форму, где стоит, и только если токен проверяется на сервере. Она не останавливает парсеры, сканеры, скликивание рекламы и запросы в обход страницы. Надёжнее сочетать её с проверкой запросов на стороне сайта.

Можно ли обойтись без капчи?

Для многих сайтов да: серверная проверка запросов, ограничение частоты, защита формы от отправки без перехода с сайта и тихая проверка браузера отсекают большую часть ботов, а посетители не видят заданий. Капчу оставляют для спорных случаев.

Сравнение Bot Guard, Cloudflare, SmartCaptcha и fail2ban в одной таблице: что выбрать.

Защитите свой сайт от ботов прямо сейчас

Подключение занимает несколько минут — вставьте один PHP-сниппет, и Bot Guard начнёт фильтровать ботов, скрейперов и попытки SQL-инъекций автоматически.

Зарегистрироваться бесплатно
Заказать звонок

Читайте также

Полезные и вредные боты: что мы увидели на 13 сайтах за 30 дней
Данные Bot Guard: 8,3 млн запросов и 1,3 млн блокировок на 13 сайтах. Сколько приходит пои…
Что такое социальная инженерия и как защитить сайт от атак
Узнайте, что такое социальная инженерия в кибербезопасности. Разбираем методы атак и даем …
Что такое атака «человек посередине» и как от неё защититься
Атака «человек посередине» (MITM) — скрытый перехват данных между сторонами. Узнайте, как …