reCAPTCHA w WordPressie: jak skutecznie dodać do formularzy

reCAPTCHA w WordPressie to prosty i skuteczny sposób na zmniejszenie spamu oraz ochronę formularzy przed botami. Jeśli zauważasz zalew niechcianych wiadomości w formularzu kontaktowym, rejestracji czy komentarzach, zastosowanie reCAPTCHA może w kilka minut ograniczyć problem bez zauważalnego utrudniania życia prawdziwym użytkownikom.

Czym właściwie jest reCAPTCHA i jakie są jej wersje?

Poznaj różnice między v2, v3 i wersją niewidoczną, aby dobrać najlepszą ochronę.

reCAPTCHA to mechanizm Google, który pomaga odróżnić ludzi od botów. Działa na kilka sposobów, w zależności od wybranej wersji:

  • reCAPTCHA v2 “I’m not a robot” — klasyczny checkbox, czasem z dodatkowymi łamigłówkami obrazkowymi. Prosta i zrozumiała, ale bywa delikatnie inwazyjna.
  • reCAPTCHA v2 Invisible — bez checkboxa; test uruchamia się po wysłaniu formularza i zwykle nie wymaga interakcji, chyba że coś wyda się podejrzane.
  • reCAPTCHA v3 — system ocenia zachowanie użytkownika w tle i przyznaje wynik (score). Nie przeszkadza w interakcji, ale wymaga przemyślanej konfiguracji progu punktowego i ewentualnych działań “warunkowych”.

Dla większości stron świetnym kompromisem jest v2 Invisible lub v3. Jeśli chcesz maksymalnej przejrzystości dla użytkownika, wybierz v3. Jeśli wolisz “namacalne” potwierdzenie, checkbox v2 zadziała najlepiej.

reCAPTCHA w WordPressie: gdzie warto ją włączyć?

Zabezpieczaj wszystkie kluczowe formularze, nie tylko kontakt.

W ekosystemie WordPress formularze pojawiają się w wielu miejscach. Oprócz klasycznego “Kontakt” rozważ ochronę:

  • komentarzy (wbudowany formularz komentarzy),
  • logowania i rejestracji użytkowników,
  • resetu hasła,
  • koszyka i checkoutu w WooCommerce,
  • wszelkich formularzy tworzonych przez wtyczki (WPForms, Contact Form 7, Gravity Forms, Fluent Forms, Formidable Forms itp.).

Im szerszy zakres ochrony, tym mniejsze ryzyko spamu i nadużyć. Nie zostawiaj “dziur” — boty znajdą najsłabsze ogniwo.

Jak zdobyć klucze API od Google

Krok po kroku: rejestracja, wybór typu i przypisanie domeny.

Aby uruchomić reCAPTCHA, potrzebujesz dwóch kluczy: Site Key (do frontu) i Secret Key (do weryfikacji po stronie serwera).

  1. Wejdź na stronę admin.recaptcha.net lub google.com/recaptcha/admin.
  2. Zaloguj się kontem Google.
  3. Utwórz nową “etykietę” (projekt) — wpisz nazwę rozpoznawalną dla swojej strony.
  4. Wybierz typ: v2 (checkbox lub invisible) albo v3.
  5. Dodaj domenę (bez https:// i bez ścieżek, np. moja-domena.pl). Jeśli masz staging, dodaj go też.
  6. Zaakceptuj regulamin i utwórz zestaw kluczy.
  7. Skopiuj Site Key i Secret Key. Secret Key traktuj jak hasło — nie publikuj go nigdzie publicznie.

Najprostsza droga: wtyczki bez kodowania

Wybierz wtyczkę zgodną z Twoimi formularzami i gotowe.

Jeśli nie chcesz dotykać kodu, skorzystaj z popularnych rozwiązań:

  • Advanced noCaptcha & Invisible reCaptcha — obsługuje komentarze, logowanie, rejestrację, WooCommerce i wiele wtyczek formularzy.
  • reCaptcha by BestWebSoft — szybka konfiguracja, kilka miejsc integracji.
  • Contact Form 7 (wbudowana integracja z reCAPTCHA v3 lub przez dodatkowe rozszerzenia dla v2).
  • WPForms, Gravity Forms, Fluent Forms, Formidable Forms — mają natywne integracje z reCAPTCHA (często wybierasz typ w ustawieniach globalnych i przypisujesz do formularza).

Ogólny schemat jest podobny:

  1. Zainstaluj i aktywuj wtyczkę.
  2. W ustawieniach podaj Site Key i Secret Key.
  3. Wybierz typ reCAPTCHA (v2, invisible lub v3).
  4. Włącz reCAPTCHA dla wybranych formularzy/obszarów.
  5. Zapisz i przetestuj na stronie.

Pamiętaj o cache i CDN — po konfiguracji opróżnij cache i sprawdź działanie w trybie incognito.

Integracja z Contact Form 7

Skorzystaj z wbudowanego połączenia lub modułów dodatkowych.

  • Przejdź do Integracje w Contact Form 7 i podaj klucze reCAPTCHA (domyślnie v3).
  • Zapisz zmiany i sprawdź formularz. W stopce zobaczysz odznakę v3.
  • Jeśli preferujesz v2 (checkbox), doinstaluj rozszerzenie “Contact Form 7 reCAPTCHA v2”, podaj klucze v2 i użyj odpowiedniego taga w formularzu.

Integracja z WPForms

Włącz reCAPTCHA globalnie, przypisz do formularzy.

  • W WPForms > Ustawienia > CAPTCHA wybierz Google reCAPTCHA (v2 lub v3).
  • Wklej klucze, zapisz.
  • Otwórz wybrany formularz i włącz reCAPTCHA w jego ustawieniach.

WooCommerce i formularze logowania/rejestracji

Chroń kluczowe punkty procesu zakupowego.

Wtyczki typu Advanced noCaptcha dodają ochronę do:

  • formularza logowania, rejestracji i “Zapomniałem hasła”,
  • recenzji produktów i sometimes checkout.

Włącz odpowiednie przełączniki w ustawieniach wtyczki i przetestuj cały lejek.

Jak dodać reCAPTCHA ręcznie (dla własnych formularzy)

Minimalny przykład front-end i weryfikacji po stronie serwera.

Jeśli tworzysz własny formularz, możesz dodać reCAPTCHA “na piechotę”.

Front-end (v2 checkbox):

Po wysłaniu formularza Google zwraca token w polu g-recaptcha-response. Trzeba go zweryfikować na serwerze.

Weryfikacja w PHP (schemat):

  • Wyślij POST na https://www.google.com/recaptcha/api/siteverify z parametrami: secret, response (g-recaptcha-response) i opcjonalnie remoteip.
  • Odbierz JSON i sprawdź pole success (dla v3 dodatkowo score i action).
  • Jeśli weryfikacja nie powiedzie się, zablokuj przetwarzanie formularza i wyświetl komunikat.

Dla v3:

  • Ładujesz skrypt z akcją, np. grecaptcha.execute(‘SITE_KEY’, {action: ‘contact_form’});
  • Token przekazujesz do back-endu i po stronie serwera weryfikujesz, oceniając score i action.

Wskazówka: Nie akceptuj zgłoszeń, gdy weryfikacja zawiedzie lub score spadnie poniżej progu (np. 0.5). Dla ostrożnych wdrożeń dodaj fallback: jeśli v3 da niski score, pokaż klasyczną łamigłówkę lub honeypot.

Najczęstsze błędy i jak je naprawić

Domeny, klucze, cache i konflikty wtyczek to typowe źródła problemów.

  • Błędny typ klucza: klucze v3 nie działają z v2 i odwrotnie. Upewnij się, że typ reCAPTCHA we wtyczce = typ kluczy.
  • Zła domena: jeśli w panelu Google nie dodasz prawidłowej domeny (lub subdomeny), weryfikacja się nie powiedzie.
  • Konflikty wtyczek i motywów: dwie wtyczki ładujące reCAPTCHA naraz potrafią się “gryźć”. Wyłącz jedną i sprawdź ponownie.
  • Cache/Minifikacja: opóźnienia w wczytywaniu skryptu lub łączenie plików przez optymalizatory mogą blokować reCAPTCHA. Wyklucz skrypt Google z minifikacji, opróżnij cache.
  • Blokady przeglądarek i adblocków: niektóre wtyczki prywatności blokują domeny Google. Poinformuj użytkowników lub zapewnij alternatywę.

Dobre praktyki i UX

Zabezpieczenie ma chronić, ale nie frustrować użytkowników.

  • Wybierz najlżejszy wariant: v3 lub v2 Invisible, a checkbox zostaw jako fallback.
  • Dostosuj progi dla v3: zacznij od 0.5 i koryguj po obserwacji spamu/fałszywych blokad.
  • Dodaj honeypot i ogranicz liczbę zgłoszeń “na użytkownika” — warstwowa obrona jest skuteczniejsza.
  • Zadbaj o dostępność: checkbox v2 jest czytelny, ale testy obrazkowe bywają trudne. Zapewnij alternatywę audio i poprawne etykiety.
  • Szanuj wydajność: ładuj skrypt reCAPTCHA tylko na stronach z formularzami (np. warunkowo), by nie spowalniać całej witryny.

Prywatność i zgodność z RODO

Informuj o przetwarzaniu danych i uwzględnij zapisy w polityce prywatności.

reCAPTCHA wiąże się z przesyłaniem wybranych danych do Google (np. adres IP, fingerprint przeglądarki). Dlatego:

  • Zaktualizuj politykę prywatności: wskaż użycie reCAPTCHA i cel.
  • Jeśli korzystasz z banerów zgód, rozważ ładowanie reCAPTCHA dopiero po akceptacji kategorii “funkcjonalne” lub “marketingowe” — zależnie od interpretacji.
  • W sklepach i serwisach z rejestracją wdrażaj tylko niezbędne mechanizmy, minimalizując dane.

Testy po wdrożeniu

Sprawdź działanie w różnych scenariuszach, zanim odetchniesz z ulgą.

  • Przetestuj jako wylogowany użytkownik, w trybie incognito i na telefonie.
  • Sprawdź formularze w różnych przeglądarkach (Chrome, Firefox, Safari).
  • Zbadaj logi wtyczki (jeśli dostępne) i raporty w konsoli reCAPTCHA (dla v3 zobaczysz statystyki score).
  • Zweryfikuj, czy zgłoszenia docierają, a fałszywe pozytywy nie blokują prawdziwych użytkowników.

Alternatywy dla reCAPTCHA

Jeśli nie chcesz rozwiązań Google, masz co najmniej trzy dobre opcje.

  • hCaptcha — podobne do reCAPTCHA, często chwalone za prywatność. Wiele wtyczek wspiera je równie łatwo.
  • Cloudflare Turnstile — bardzo lekki i bezłamanigłówkowy, rośnie w popularnośći dzięki prostocie.
  • Metody pasywne: honeypot, pytania kontrolne, limitowanie prób, blokady IP/ASN, firewall aplikacyjny (np. wtyczki bezpieczeństwa).

W praktyce świetnie działa połączenie lekkiej weryfikacji + honeypot + ochrona serwera.

Podsumowanie

W skrócie: wybierz wersję, zdobądź klucze, skonfiguruj w wtyczce lub ręcznie i dokładnie przetestuj.

Dodanie reCAPTCHA do Twoich formularzy to jeden z najszybszych sposobów na ograniczenie spamu w WordPressie. Najpierw zdecyduj, czy stawiasz na v2 (checkbox lub invisible), czy v3. Zarejestruj domenę w panelu Google, skopiuj klucze i wdroż rozwiązanie przez wtyczkę zgodną z Twoimi formularzami — lub zrób to ręcznie, jeśli masz własny kod. Na końcu przetestuj różne scenariusze i monitoruj efekty. Porządek w konfiguracji i dbałość o UX sprawią, że użytkownicy nawet nie zauważą dodatkowej warstwy bezpieczeństwa, a Ty przestaniesz walczyć ze spamem.

Łukasz Janeczko

Nazywam się Łukasz i stoję za DropDigital – ogarniam PrestaShop, WordPressa i własne moduły, które ułatwiają życie przedsiębiorcom. Prywatnie fan muzyki, Linuxa i motoryzacji, z zamiłowaniem do rozwiązywania problemów “po swojemu”.

Zostaw swój numer - oddzwonię

Cześć! Zadzwoń +48 572 651 439 lub napisz lub zostaw numer telefonu, a oddzwonię w ciągu 1h i porozmawiamy o ofercie.

Picture of Łukasz Janeczko

Łukasz Janeczko

Programista - DropDigital.pl