← Späť na blog
WordPressContact Form 7SpamOchrana pred botmi

Ako cielene obmedziť spam v Contact Form 7

Marc Wagner·5. októbra 2026·6 min čítania

Aký problém máte?

Tri prípady vyzerajú podobne, ale majú rôzne príčiny:

  • Prichádza spam. Vaša schránka sa plní reklamou, odkazmi alebo nezmyselným textom. Formulár púšťa boty.
  • Formulár hlási chybu. Návštevníci vidia „There was an error trying to send your message. Please try again later.“ (na slovenských stránkach v preklade). Môže ísť o ochranu pred spamom alebo o problém s odosielaním e-mailov.
  • Chýbajú skutočné dopyty. Nikto sa nesťažuje, ale nič ani neprichádza. Potom ochrana možno odmieta ľudí, alebo e-maily nedorazia do vašej schránky.

Najprv určite, o ktorý prípad ide, a až potom pridávajte ochranu. Ako na to, je opísané v časti „Doručovanie e-mailov, alebo ochrana pred botmi?“.

Čo Contact Form 7 ponúka sám

Contact Form 7 má zabudovaných niekoľko opatrení proti spamu (overené vo verzii 6.1.7):

  • Zoznam zakázaných výrazov. CF7 porovná každé odoslanie so zoznamom v „Nastavenia → Diskusia“ („Disallowed Comment Keys“). Zhoda sa považuje za spam. Pomáha to proti opakujúcim sa slovám a doménam, nie proti novým textom.
  • Kvízové pole. Pomocou značky [quiz] sa formulár opýta otázku, ktorú si určíte sami. Boty, ktoré vypĺňajú akýkoľvek formulár, neuspejú; boty zamerané priamo na vašu stránku áno.
  • Akismet. S doplnkom Akismet a kľúčom Akismet CF7 kontroluje meno, e-mailovú adresu a text cez službu Akismet.
  • reCAPTCHA v3. CF7 načíta skript od Google a odmietne odoslania pod hranicou skóre.
  • Cloudflare Turnstile. CF7 integruje Turnstile; skript pochádza od Cloudflare.

Zoznam zakázaných výrazov a kvíz fungujú bez externej služby. Akismet, reCAPTCHA a Turnstile posielajú údaje vašich návštevníkov príslušnému poskytovateľovi, a to patrí do vašich zásad ochrany osobných údajov.

Kedy má zmysel ďalšia ochrana pred botmi

Špecializovaná ochrana pred botmi sa oplatí, ak

  • spam prichádza aj napriek zoznamu zakázaných výrazov a kvízu,
  • nechcete načítavať skripty od Google alebo Cloudflare,
  • chcete pri každom odmietnutom odoslaní vidieť, prečo bolo odmietnuté.

Ak vášmu formuláru stačí kvíz, nič viac nepotrebujete. Ochrana, ktorú nikto nepotrebuje, je len ďalší zdroj chýb.

Nastavenie SilentShield pre Contact Form 7

Oficiálny doplnok „SilentShield – Captcha & Anti-Spam“ chráni Contact Form 7 bez vlastného kódu. Otestovali sme ho s Contact Form 7 6.1.7 a WordPress 7.0.

  1. Nainštalujte a aktivujte doplnok z adresára WordPress.
  2. V časti „SilentShield → API / SilentShield“ zadajte svoj kľúč, kliknite na „Validate“, zapnite „Activate API“ a uložte.
  3. V časti „SilentShield → Forms“ zapnite Contact Form 7.

Stránka musí bežať cez https, inak formulár nemožno odoslať. Všetky kroky a otestované doplnky formulárov nájdete v príručke pre WordPress. Každé odoslanie sa započítava do kvóty, pozrite ceny a kvóty.

Testovanie skutočných odoslaní a neúspešných pokusov

Skutočné odoslanie: Otvorte stránku v súkromnom okne, vyplňte formulár ručne a odošlite ho. Očakávajte potvrdenie CF7 so zeleným orámovaním.

Neúspešný pokus: Pošlite ten istý formulár bez prehliadača na rozhranie CF7. ID formulára a hodnotu pre _wpcf7_unit_tag nájdete v zdrojovom kóde stránky, v skrytých poliach formulára.

curl -X POST "https://example.com/?rest_route=/contact-form-7/v1/contact-forms/123/feedback" \
  -F "_wpcf7=123" -F "_wpcf7_unit_tag=wpcf7-f123-p45-o1" -F "_wpcf7_container_post=45" \
  -F "your-name=Test" -F "[email protected]" -F "your-message=Test"

Očakávajte odpoveď s "status":"spam". So SilentShield hlásenie znie „Behavior check“.

Doručovanie e-mailov, alebo ochrana pred botmi?

V Contact Form 7 majú „spam“ a „e-mail sa nepodarilo odoslať“ rovnaký predvolený text. Rozlíšiť ich môžete na dvoch miestach:

  • Farba orámovania hlásenia: oranžová znamená spam, červená znamená, že odoslanie e-mailu zlyhalo, pokiaľ vaša téma neprepisuje farby CF7.
  • Odpoveď v prehliadači: V nástrojoch pre vývojárov (karta Sieť) obsahuje odpoveď na feedback hodnotu status, buď spam, alebo mail_failed.

Ak je to mail_failed, ochrana pred botmi odoslanie prepustila; problém je v odosielaní e-mailov z WordPressu. Skontrolujte potom nastavenia e-mailu, napríklad pomocou doplnku SMTP. Ak je to spam, odoslanie odmietlo ochranné opatrenie. So SilentShield hlásenie uvádza dôvod, napríklad „Behavior check“.

Obmedzenia

  • Žiadna ochrana nezastaví spam, ktorý človek napíše ručne.
  • Bez JavaScriptu v prehliadači sa odoslanie do chráneného formulára odmietne.
  • SilentShield chráni formuláre pred botmi. Nenahrádza firewall webových aplikácií ani ochranu pred DDoS.

Nastaviť ochranu formulárov

Súvisiace stránky

Pripravení zbaviť sa CAPTCHA?

Začnite chrániť svoje formuláre — neviditeľne. Kreditná karta nie je potrebná.