Skip to content

Все для WordPress, веб-розробки — і не тільки

🚫 Як зупинити спам із Contact Form 7 у WordPress

🚫 Як зупинити спам із Contact Form 7 у WordPress

Форма зворотного зв'язку завалена спамом? Десятки порожніх відправлень на день забивають пошту, а реальні заявки клієнтів губляться в смітті.

Contact Form 7, найпопулярніший безплатний плагін контактних форм для WordPress, понад 5 мільйонів активних встановлень. Популярність зробила його ціллю №1 для спам-ботів: ті знаходять сайти на WordPress, вираховують стандартну URL-адресу форми й заливають автоматичні відправлення тисячами.

Спам-повідомлення в інтерфейсі контактної форми WordPress

Закривати форму або ставити громіздку CAPTCHA не обов'язково. Нижче, п'ять робочих методів, від вбудованих функцій CF7 до спеціалізованих плагінів. Жоден не потребує коду: все налаштовується через адмінку за 10-15 хвилин.

💡 Швидкий огляд:

  • Вмикаємо вбудовану вікторину CF7, боти не вміють відповідати на запитання
  • Налаштовуємо мінімальну довжину повідомлення, відсікаємо односкладовий спам
  • Підключаємо Akismet, розумна фільтрація на основі глобальної бази спамерів
  • Встановлюємо CF7 Apps з honeypot-пасткою, приховане поле, яке бачать тільки боти
  • Крайній випадок, Really Simple CAPTCHA: простий, але морально застарілий захист

1. Вбудована вікторина Contact Form 7

Найбільш недооцінений, але ефективний спосіб. CF7 дозволяє додати до форми тег [quiz], просте запитання, відповідь на яке знає будь-яка людина, але не знає бот.

Працює так: ви ставите запитання на кшталт «Скільки буде три плюс чотири?» або «Який зараз рік?», вказуєте правильну відповідь через вертикальну риску. Якщо відвідувач відповідає неправильно, форма не відправляється.

1[quiz math-test "Сколько будет три плюс четыре?|7"]

Боти не парсять контекст запитання, вони просто заповнюють поля й тиснуть «Відправити». Вікторина повністю ламає цю логіку.

Плюси: безплатно, працює з коробки, не сповільнює сайт, не додає плагінів. Мінус один: теоретично цілеспрямованого бота під конкретний сайт можна натренувати на відповідь. Але для переважної більшості сайтів це надлишковий сценарій, спамери не витрачають час на ручний обхід одного блогу.

2. Мінімальна та максимальна довжина повідомлення

Результати опитування про методи боротьби зі спамом у CF7

Значна частина автоматичного спаму — це короткі повідомлення з двох-трьох слів або взагалі одного числа. Логіка спамерів проста: залити якомога більше форм за мінімальний час. Витрачати ресурси на генерацію осмисленого тексту ніхто не буде.

CF7 підтримує параметри minlength і maxlength прямо в шорткоді поля:

1[textarea your-message minlength:20 maxlength:500]

Двадцять символів, безпечний мінімум: реальний клієнт пише «Добрий день, цікавить вартість доставки», бот шле «12345» або «Buy now cheap». Усе, що коротше за 20 знаків, відсікається до відправлення.

Параметр maxlength водночас захищає й від іншого вектора: наддовгих повідомлень, куди боти вставляють тисячі ключових слів для SEO-спаму. П'ятсот символів покривають будь-який нормальний запит, але ріжуть простирадла.

Тут немає недоліків, метод варто вмикати завжди, незалежно від решти.

3. Akismet, розумна фільтрація спаму

clipboard 2026 06 22T18 19 17

Akismet — це хмарний антиспам-сервіс від Automattic (команди WordPress). Він аналізує вміст надісланого, звіряє з глобальною базою відомих спамерів і ухвалює рішення за мілісекунди. За даними самого сервісу, Akismet блокує 99.8% спаму на сайтах WordPress.

Не всі знають, що Akismet працює не лише з коментарями, а й із Contact Form 7. Після встановлення плагіна та активації API-ключа (безкоштовно для некомерційних сайтів) потрібно додати невелику інтеграцію, і Akismet автоматично перевіряє поля форми CF7 на спам-патерни.

У реальних тестах на сайті з високим трафіком сам лише Akismet знизив потік спаму приблизно на дві третини. Решту добивають комбінацією з вікториною та мінімальною довжиною, і на виході отримуємо практично нуль паразитних надсилань без жодної CAPTCHA.

🔗 Akismet на WordPress.org

4. CF7 Apps: Honeypot і hCaptcha в одному плагіні

clipboard 2026 06 22T18 19 29

Класичний Contact Form 7 Honeypot виріс у комбайн CF7 Apps, модульний плагін, який додає до CF7 кілька функцій одночасно. Нас цікавлять дві з них.

Honeypot, приховане поле-пастка. У форму додається невидимий для людини input, стилізований через CSS так, що реальний відвідувач його не бачить і не заповнює. Бот же парсить HTML-код, знаходить поле й заповнює, на цьому й потрапляє. Плагін бачить заповнений honeypot і блокує надсилання.

Додається одним шорткодом:

1[honeypot honeypot-837]

Цифри в назві можна змінювати — це ускладнює життя ботам, які вчаться обходити стандартні імена полів.

hCaptcha, сучасна альтернатива reCAPTCHA, яка не збирає дані користувачів. Після отримання ключів на сайті hCaptcha вмикається однією галочкою в налаштуваннях CF7 Apps, і на формі з’являється віджет, який більшість реальних відвідувачів навіть не помічають.

Обидві функції працюють незалежно: можна увімкнути лише honeypot, лише hCaptcha або обидві одразу. Плагін активно оновлюється (остання версія, 2026 рік), на відміну від багатьох конкурентів.

🔗 CF7 Apps на WordPress.org

5. Really Simple CAPTCHA, запасний варіант

clipboard 2026 06 22T18 19 51

Really Simple CAPTCHA створив той самий розробник, що й Contact Form 7, тому два плагіни працюють у зв’язці без конфліктів. Він генерує просте зображення з кодом, який потрібно ввести для надсилання форми.

Підключення просте: встановлюєте плагін, додаєте тег [captchac] у форму CF7, і все працює.

Однак цей спосіб має нюанси. По-перше, плагін давно не отримував великих оновлень і офіційно не тестувався з останніми версіями WordPress, хоча користувачі підтверджують роботу аж до WP 6.9. По-друге, йому потрібна бібліотека GD + FreeType на сервері, яка може бути відсутня на дешевих хостингах. По-третє, CAPTCHA з текстом відчутно дратує користувачів, частина реальних відвідувачів просто йде, не заповнивши форму.

Ми рекомендуємо пробувати Really Simple CAPTCHA лише якщо перші чотири методи не дали результату. У більшості випадків комбінації вікторини, мінімальної довжини та Akismet достатньо.

🔗 Really Simple CAPTCHA на WordPress.org

Що спрацювало в нашому випадку

Один із клієнтів звернувся з проблемою: форма Contact Form 7 на сайті з відвідуваністю близько 10 000 унікальних відвідувачів на місяць збирала десятки спам-надсилань щодня. Ми діяли поетапно:

  • Встановили Akismet, спам скоротився з кількох десятків до 5-10 повідомлень на день.
  • Додали вікторину [quiz] із запитанням «Скільки буде два плюс два?», залишилися поодинокі проскакування.
  • Увімкнули minlength:20 для поля повідомлення, спам зник повністю.

Комбінація трьох методів без жодної CAPTCHA вирішила проблему за пів години роботи. Жоден реальний клієнт не поскаржився на незручність, вони навіть не помітили змін, тому що вікторина виглядає природно, а ліміт у 20 символів непомітний для нормального спілкування.

Якщо ви тільки починаєте боротися зі спамом, поставте Akismet як перший рубіж. Це найпотужніше автономне рішення, якому не потрібні ні honeypot, ні капча для базового захисту. А далі нарощуйте шари за потреби, методом проб і помилок, відстежуючи статистику спаму після кожної зміни.

⁉️🤔 Часті запитання

Чому не використовувати Google reCAPTCHA?

reCAPTCHA v2 з вибором світлофорів і мостів дійсно блокує ботів, але ціною користувацького досвіду. За даними досліджень юзабіліті-лабораторій, кожен п’ятий відвідувач залишає форму, побачивши капчу. reCAPTCHA v3 працює непомітно, але потребує інтеграції через додатковий плагін для CF7 і має проблеми з хибними спрацюваннями. Вбудована вікторина CF7 вирішує те саме завдання без зовнішніх сервісів. Ми не використовуємо reCAPTCHA там, де достатньо вікторини CF7 та honeypot, вікторина не навантажує сайт зовнішніми запитами до Google і не збирає дані відвідувачів. Для проєктів, де принциповим є Google-антиспам, існують окремі плагіни-мости в каталозі WordPress.

Чи можна обійтися одним методом?

Залежить від обсягу спаму. Сайт із низькою відвідуваністю часто обходиться одним Akismet або однією вікториною. Сайт із тисячами відвідувачів на день майже напевно потребуватиме комбінації з 2-3 методів, спамери використовують хмарні ферми ботів, і те, що зупинило одного, інший обійде.

На практиці ми починаємо з Akismet. Якщо потік спаму падає до прийнятного рівня, зупиняємося. Якщо ні, додаємо вікторину. Якщо й цього замало, honeypot через CF7 Apps. Поступове нарощування краще за встановлення п’яти плагінів одночасно, кожен новий шар має сенс лише тоді, коли попереднього недостатньо.

Чим CF7 Apps кращий за старий Contact Form 7 Honeypot?

Старий плагін Contact Form 7 Honeypot робив рівно одне: додавав приховане поле. CF7 Apps, його сучасний спадкоємець від активного розробника Saad Iqbal. Крім honeypot він вміє hCaptcha, збереження заявок у базу, редіректи після надсилання, вебхуки та інтеграцію з ACF, усе в одному плагіні.

Усі модулі незалежні: увімкнули лише honeypot, він і працює, без зайвого коду. Плагін оновлюється у 2026 році та сумісний з актуальними версіями WordPress, на відміну від старого однофункціонального Honeypot, який більше не підтримується.

Чи потрібно встановлювати всі п’ять методів одразу?

Ні, і ми не рекомендуємо цього робити. Кожен зайвий плагін уповільнює сайт і додає вектор відмови. Почніть з одного-двох методів, відстежуйте результат тиждень, потім ухвалюйте рішення про додавання наступного шару.

Мінімальний стек для більшості сайтів: Akismet + мінімальна довжина повідомлення. Цього достатньо в абсолютній більшості випадків. Вікторину додаємо, коли спам продовжує надходити попри Akismet. Honeypot, якщо боти навчилися обходити вікторину (рідкісний сценарій). CAPTCHA, лише коли нічого іншого не допомогло.

Що робити, якщо спам продовжується попри все?

Перевірте, чи не йде спам в обхід CF7: деякі теми та плагіни додають власні форми зворотного зв’язку, які CF7 не контролює. Також виключіть ручний спам, якщо повідомлення осмислені й тематичні, але рекламні — це живі люди, проти яких технічні методи безсилі.

У крайньому разі розгляньте зміну плагіна форм. Gravity Forms та WPForms мають агресивніші вбудовані антиспам-механізми й офіційну підтримку Google reCAPTCHA з коробки, без додаткових плагінів.

Який метод захисту від спаму обрати

Вибір залежить від одного параметра, обсягу паразитного трафіку на конкретному сайті. Загальної «срібної кулі» немає: сайт-візитівка з трьома сторінками та форум на тисячу користувачів потребують різного рівня захисту.

Якщо ви тільки починаєте, увімкніть Akismet і налаштуйте мінімальну довжину повідомлення (minlength:20). Ці два кроки займають десять хвилин і відсікають основну масу автоматичного спаму без жодної капчі та скарг користувачів.

Спам продовжується після Akismet, додайте вікторину [quiz]. Боти не відповідають на запитання, люди відповідають не замислюючись. Третій рубіж, CF7 Apps із honeypot-пасткою: приховане поле, про яке реальний відвідувач не знає.

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