← Zpět na blog
WordPressContact Form 7SpamOchrana proti botům

Cílené omezení spamu v Contact Form 7

Marc Wagner·5. října 2026·6 min čtení

Jaký problém máte?

Tři případy vypadají podobně, ale mají různé příčiny:

  • Chodí spam. Vaše schránka se plní reklamou, odkazy nebo nesmyslným textem. Formulář propouští boty.
  • Formulář hlásí chybu. Návštěvníci vidí „There was an error trying to send your message. Please try again later.“ (na webech v jiných jazycích v překladu). Může jít o ochranu proti spamu, nebo o problém s odesíláním e-mailů.
  • Chybí skutečné poptávky. Nikdo si nestěžuje, ale nic nepřichází. Pak možná ochrana odmítá lidi, nebo e-maily nedorazí do vaší schránky.

Nejdřív určete, o který případ jde, a teprve potom přidávejte ochranu. Jak na to, popisuje oddíl „Doručování e-mailů, nebo ochrana proti botům?“.

Co Contact Form 7 nabízí sám

Contact Form 7 má zabudováno několik opatření proti spamu (ověřeno na verzi 6.1.7):

  • Seznam zakázaných výrazů. CF7 porovnává každé odeslání se seznamem v „Settings → Discussion“ („Disallowed Comment Keys“). Shoda se počítá jako spam. Pomáhá to proti opakujícím se slovům a doménám, ne proti novým textům.
  • Kvízové pole. Se značkou [quiz] položí formulář otázku, kterou si sami určíte. Boti, kteří vyplňují jakýkoli formulář, neuspějí; boti cílení přímo na váš web projdou.
  • Akismet. S pluginem Akismet a klíčem Akismet kontroluje CF7 jméno, e-mailovou adresu a text přes službu Akismet.
  • reCAPTCHA v3. CF7 načítá skript od Googlu a odmítá odeslání pod prahovou hodnotou skóre.
  • Cloudflare Turnstile. CF7 integruje Turnstile; skript pochází od Cloudflare.

Seznam zakázaných výrazů a kvíz fungují bez externí služby. Akismet, reCAPTCHA a Turnstile posílají data vašich návštěvníků příslušnému poskytovateli a to patří do vašich zásad ochrany osobních údajů.

Kdy má další ochrana proti botům smysl

Specializovaná ochrana proti botům se vyplatí, pokud

  • spam chodí i přes seznam zakázaných výrazů a kvíz,
  • nechcete načítat skripty od Googlu nebo Cloudflare,
  • chcete u každého odmítnutého odeslání vidět, proč bylo odmítnuto.

Pokud vašemu formuláři stačí kvíz, nic dalšího nepotřebujete. Ochrana, kterou nikdo nepotřebuje, je jen další zdroj chyb.

Nastavení SilentShield pro Contact Form 7

Oficiální plugin „SilentShield – Captcha & Anti-Spam“ chrání Contact Form 7 bez vlastního kódu. Otestovali jsme ho s Contact Form 7 6.1.7 a WordPress 7.0.

  1. Nainstalujte a aktivujte plugin z adresáře WordPressu.
  2. V „SilentShield → API / SilentShield“ zadejte svůj klíč, klikněte na „Validate“, zapněte „Activate API“ a uložte.
  3. V „SilentShield → Forms“ zapněte Contact Form 7.

Web musí běžet přes https, jinak formulář nelze odeslat. Všechny kroky a otestované pluginy formulářů najdete v návodu pro WordPress. Každé odeslání se započítává do kvóty, viz ceny a kvóty.

Testování skutečných odeslání a odmítnutých pokusů

Skutečné odeslání: Otevřete stránku v anonymním okně, vyplňte formulář ručně a odešlete ho. Měli byste vidět potvrzení CF7 se zeleným okrajem.

Odmítnutý pokus: Odešlete stejný formulář bez prohlížeče na rozhraní CF7. ID formuláře a hodnotu pro _wpcf7_unit_tag najdete ve zdrojovém kódu stránky, ve skrytých polích formuláře.

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"

Měli byste dostat odpověď s "status":"spam". Se SilentShield zní hláška „Behavior check“.

Doručování e-mailů, nebo ochrana proti botům?

V Contact Form 7 mají „spam“ a „e-mail se nepodařilo odeslat“ stejný výchozí text. Rozlišit je můžete na dvou místech:

  • Barva okraje hlášky: oranžová znamená spam, červená znamená, že odeslání e-mailu selhalo – pokud váš motiv nepřepisuje barvy CF7.
  • Odpověď v prohlížeči: V nástrojích pro vývojáře (karta Síť) obsahuje odpověď na feedback pole status, buď spam, nebo mail_failed.

Pokud jde o mail_failed, ochrana proti botům odeslání propustila; problém je v odesílání e-mailů z WordPressu. Zkontrolujte pak nastavení e-mailu, například pomocí pluginu SMTP. Pokud jde o spam, odmítlo ho některé ochranné opatření. Se SilentShield hláška uvádí důvod, například „Behavior check“.

Omezení

  • Žádná ochrana nezastaví spam, který člověk napíše ručně.
  • Bez JavaScriptu v prohlížeči je odeslání do chráněného formuláře odmítnuto.
  • SilentShield chrání formuláře před boty. Nenahrazuje firewall webových aplikací ani ochranu proti DDoS.

Nastavit ochranu formulářů

Související stránky

Připraveni zbavit se CAPTCHA?

Začněte chránit své formuláře — neviditelně. Není potřeba platební karta.