# Turnstile, reCAPTCHA чи hCaptcha для форми

Cloudflare Turnstile, Google reCAPTCHA і hCaptcha для форми зворотного зв'язку: безкоштовні ліміти, що бачить відвідувач, приватність і перевірка на сервері.

Author: Formgong
Published: 2026-10-05
Language: uk
Canonical: https://formgong.com/uk/blog/turnstile-vs-recaptcha-vs-hcaptcha/

Для звичайної форми зворотного зв'язку найпростіший вибір — Cloudflare Turnstile. Він безкоштовний без ліміту перевірок і зазвичай не показує завдань. До того ж Cloudflare заявляє, що Turnstile не читає вміст форм. reCAPTCHA підійде, якщо ви вже працюєте з Google Cloud і хочете оцінку ризику. hCaptcha — якщо потрібен сервіс не від Google із безкоштовним тарифом. Будь-який із них працює, лише якщо сервер перевіряє токен.

## Коротке порівняння

Ціни й ліміти — як їх опублікували самі сервіси станом на 05.10.2026. Ціни вказано в доларах США.

Turnstile, reCAPTCHA і hCaptcha для форми зворотного зв'язку
Cloudflare TurnstileGoogle reCAPTCHAhCaptcha

БезкоштовноНеобмежено перевірок, до 20 віджетівДо 10 000 оцінок на місяць (Essentials)Тариф Basic безкоштовний
ПлатноЛише EnterprisePremium: $8 фіксовано за 10 001–100 000, далі $1 за 1000Pro: $99 на місяць за рік або $139 помісячно, 100 тис. перевірок включено
Що бачить відвідувачРежими Managed, Non-Interactive або Invisiblev2: галочка або невидима; v3: без завданьГалочка й завдання з картинками; пасивний режим на платних тарифах
Оцінка ризикуНі, лише «пройшов / не пройшов»Так, у v3 оцінка від 0.0 до 1.0На тарифі Enterprise
Кому підходитьБільшості формСайтам, які вже на Google CloudТим, хто хоче альтернативу Google із картинками

Жоден із них не є повним фільтром спаму. Люди, які пишуть спам вручну, проходять усі три. Поєднуйте будь-який із них із полем-пасткою та правилами на сервері, як описано в [документації для HTML](/uk/docs/html/).

## Cloudflare Turnstile

Turnstile запускає в браузері невеликі перевірки й у більшості випадків вирішує без завдань. Є три режими: Managed, Non-Interactive та Invisible. Безкоштовний тариф включає до 20 віджетів, необмежену кількість перевірок і 10 доменів на віджет. Переносити сайт на Cloudflare для цього не потрібно.

Cloudflare заявляє, що Turnstile не отримує, не зберігає й не передає вміст форм, а віджет відповідає WCAG 2.2 AA. Кожен токен діє 300 секунд і перевіряється лише раз. Повторна перевірка того самого токена повертає помилку `timeout-or-duplicate`.

Слабші місця: немає оцінки ризику, яку можна налаштувати, а аналітика на безкоштовному тарифі охоплює сім днів.

## Google reCAPTCHA

reCAPTCHA тепер частина Google Cloud із рівнями Essentials, Premium і Enterprise. Essentials безкоштовний до 10 000 оцінок на місяць для однієї організації. Далі Premium коштує $8 фіксовано до 100 000, потім $1 за кожну 1000.

Версія 3 ніколи не показує завдань. Вона повертає оцінку від 0.0 до 1.0, а Google радить почати з порогу 0.5. Що робити з низькими оцінками, вирішуєте ви. Токен діє дві хвилини, тож людині, яка довго пише повідомлення, може знадобитися новий.

Дві практичні деталі. Google просить показувати значок reCAPTCHA або рядок про те, що сайт захищено reCAPTCHA, з посиланнями на умови Google. А скрипт завантажується з серверів Google, тож це варто згадати в політиці конфіденційності.

## hCaptcha

hCaptcha працює дуже схоже на галочку reCAPTCHA v2, і в її власному посібнику з переходу лише кілька змін. Тариф Basic безкоштовний. Pro коштує $139 на місяць при помісячній оплаті або $99 на місяць при оплаті за рік. У нього включено 100 000 перевірок, далі $0.99 за 1000. Pro додає пасивний режим з мінімумом завдань, а Enterprise — оцінку ризику.

На безкоштовному тарифі відвідувачі частіше бачать завдання з картинками, ніж із Turnstile. Це коштує частини справжніх заявок, особливо з телефонів. hCaptcha заявляє, що відповідає GDPR, CCPA та іншим законам про приватність. Подробиці, важливі саме вам, шукайте в її політиці конфіденційності.

## Завжди перевіряйте токен на сервері

Усі три віджети кладуть токен у приховане поле форми. Сам по собі токен нічого не доводить. Сервер має надіслати його сервісу й отримати успішну відповідь. Форма, яка лише показує віджет, не захищена: бот може надіслати дані прямо на ваш сервер, оминаючи сторінку.

Приклад нижче перевіряє токен Turnstile у Cloudflare Worker. reCAPTCHA та hCaptcha працюють так само, лише зі своїми адресами перевірки й секретами.

```javascript
// Cloudflare Worker (або будь-який сервер із fetch), який приймає форму.
export default {
  async fetch(request, env) {
    const form = await request.formData();
    const check = new FormData();
    check.append("secret", env.TURNSTILE_SECRET_KEY); // секрет зберігайте лише на сервері
    check.append("response", form.get("cf-turnstile-response") || "");
    check.append("remoteip", request.headers.get("CF-Connecting-IP") || "");

    const result = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", {
      method: "POST",
      body: check,
    }).then((response) => response.json());

    // Токен працює один раз і діє 300 секунд.
    if (!result.success) return new Response("Спробуйте ще раз.", { status: 403 });

    // Перевірку пройдено: збережіть форму або передайте її далі.
    return new Response("Дякуємо, ми отримали ваше повідомлення.");
  },
};
```

**Код віджета для кожного сервісу**

```html
<!-- Cloudflare Turnstile: додає поле cf-turnstile-response -->
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
<div class="cf-turnstile" data-sitekey="YOUR_TURNSTILE_SITE_KEY"></div>

<!-- reCAPTCHA v2 з галочкою: додає поле g-recaptcha-response -->
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<div class="g-recaptcha" data-sitekey="YOUR_RECAPTCHA_SITE_KEY"></div>

<!-- hCaptcha: додає поле h-captcha-response -->
<script src="https://js.hcaptcha.com/1/api.js" async defer></script>
<div class="h-captcha" data-sitekey="YOUR_HCAPTCHA_SITE_KEY"></div>
```

## Типові помилки

- Секретний ключ у коді сторінки. Публічним має бути лише site key.

- Перевірка токена в браузері замість сервера.

- Подвійна перевірка того самого токена, наприклад під час повтору. Turnstile відхилить другу.

- Забутий другий домен, наприклад тестовий, у списку доменів віджета.

- Складне завдання на кожному візиті. Якщо спаму мало, поля-пастки може вистачити.

Якщо після додавання капчі форма раптом перестала доставляти заявки, часто винна саме перевірка токена. Знайти причину допоможуть кроки зі статті [чому форма на сайті не надсилає листи](/uk/blog/contact-form-not-sending-email/).

## Що з цього працює з Formgong

Formgong сам перевіряє Cloudflare Turnstile на сервері. Увімкніть **Вимагати Cloudflare Turnstile** у налаштуваннях форми й вкажіть там свої site key і secret від Turnstile. Потім додайте віджет у форму, і Formgong перевірятиме токен у кожній заявці. Це працює й на безкоштовному тарифі.

Токени reCAPTCHA та hCaptcha Formgong не перевіряє. Якщо ваша форма використовує одну з них, Formgong збереже токен як звичайне поле й покладеться на власні перевірки: поле-пастку, час заповнення й вміст. Про захист даних читайте в статті [як обрати бекенд для форм під GDPR](/uk/blog/gdpr-form-backend/). Ця стаття не є юридичною консультацією.

## Питання та відповіді

### Чи справді Cloudflare Turnstile безкоштовний?

Так. Станом на 05.10.2026 безкоштовний тариф включає необмежену кількість перевірок і до 20 віджетів. Інші сервіси Cloudflare для цього не потрібні.

### Чи reCAPTCHA досі безкоштовна?

До 10 000 оцінок на місяць на організацію на рівні Essentials. Понад це Google бере оплату за рівнем Premium.

### Чи легко перейти з reCAPTCHA на hCaptcha або Turnstile?

Зазвичай так. Замініть скрипт і віджет, а на сервері — назву поля, адресу перевірки й секрет. hCaptcha має короткий посібник із переходу з reCAPTCHA.

### Чи потрібна капча у формі зворотного зв'язку взагалі?

Спершу часто ні. Поле-пастка, мінімальний час заповнення й правила на сервері зупиняють більшість ботів. Додайте Turnstile, коли боти почнуть проходити.

## Джерела та документація

- [Cloudflare Turnstile](https://developers.cloudflare.com/turnstile/)
- [Turnstile plans](https://developers.cloudflare.com/turnstile/plans/)
- [Turnstile widget modes](https://developers.cloudflare.com/turnstile/concepts/widget/)
- [Turnstile server-side validation](https://developers.cloudflare.com/turnstile/get-started/server-side-validation/)
- [Google Cloud: compare reCAPTCHA tiers](https://cloud.google.com/recaptcha/docs/compare-tiers)
- [reCAPTCHA v3](https://developers.google.com/recaptcha/docs/v3)
- [reCAPTCHA FAQ (badge)](https://developers.google.com/recaptcha/docs/faq)
- [hCaptcha pricing](https://www.hcaptcha.com/pricing)
- [hCaptcha: switch from reCAPTCHA](https://docs.hcaptcha.com/switch)
- [Formgong для HTML](https://formgong.com/uk/docs/html/)

[Отримати ключ](https://formgong.com/uk/#top)
