Formularz kontaktowy, który nie gubi zapytań. Spam, dostarczanie wiadomości i RODO

W skrócie

  • Formularz może wyglądać na działający, a wiadomości mogą od tygodni lądować w spamie albo nie docierać wcale. Klient tego nie widzi, Ty też nie.
  • Wysyłka przez uwierzytelnione SMTP i poprawne rekordy SPF, DKIM i DMARC to podstawa. Domyślna funkcja PHP mail() to proszenie się o kłopoty.
  • Przed spamem chronią pole-pułapka (honeypot) i niewidoczna weryfikacja, np. Cloudflare Turnstile. Uciążliwe zagadki odstraszają też ludzi.
  • Na odpowiedź na zapytanie nie potrzebujesz zgody klienta. Potrzebujesz informacji o przetwarzaniu danych. Osobnej zgody wymaga dopiero marketing.

„Wysłałam zapytanie dwa razy i nikt się nie odezwał”. Taką wiadomość dostaje się zwykle wtedy, gdy jest już za późno, bo klient poszedł do konkurencji. Formularz kontaktowy to najprostszy element strony, a jednocześnie jeden z tych, które psują się po cichu. Poniżej opisuję, co sprawdzić.

Dlaczego wiadomości z formularza giną?

Najczęstsze przyczyny, od najczęstszej:

  1. Wysyłka bez uwierzytelnienia. WordPress domyślnie wysyła pocztę funkcją PHP mail(), czyli „z serwera”, a nie z Twojej skrzynki. Serwery pocztowe Gmaila czy Onetu widzą wiadomość, która podaje się za Twoją domenę, ale nie ma na to dowodu. Efekt: spam albo odrzucenie.
  2. Brak lub błędne rekordy SPF, DKIM i DMARC. Od 2024 r. Google wymaga od wszystkich nadawców wysyłających na konta Gmail co najmniej SPF lub DKIM, a od nadawców masowych wszystkich trzech. Jak je ustawić, opisałem w tekście o poczcie firmowej.
  3. Adres nadawcy spoza domeny. Formularz wysyła wiadomość „od” adresu klienta, np. [email protected]. Dla serwera odbiorcy to podszywanie się pod Gmaila. Nadawcą powinien być adres w Twojej domenie, a adres klienta trafia do pola „Odpowiedz do”.
  4. Pełna skrzynka albo zmieniony adres. Ktoś zmienił e-mail kontaktowy, a formularz dalej wysyła na stary.
  5. Konflikt po aktualizacji. Wtyczka formularza albo wtyczka antyspamowa po aktualizacji przestaje działać. Dlatego test formularza jest stałym punktem po każdej aktualizacji, co opisuję w tekście o aktualizacjach WordPressa.

Jak ustawić to porządnie?

  • SMTP z prawdziwej skrzynki. Wtyczka SMTP (np. WP Mail SMTP lub FluentSMTP) łączy WordPressa z Twoją skrzynką firmową i wysyła pocztę tak, jak robi to program pocztowy: z loginem i hasłem albo kluczem API. Z tej samej przyczyny nie dochodzi też e-mail z resetem hasła, o czym piszemy w poradniku Nie mogę zalogować się do WordPressa.
  • Kopia każdej wiadomości w panelu. Formularz powinien zapisywać zgłoszenia także w bazie strony. Jeśli mail zginie, zgłoszenie zostaje. Ustal przy tym, po jakim czasie stare zgłoszenia są usuwane, bo to też dane osobowe.
  • Automatyczne potwierdzenie dla klienta. Krótka wiadomość „Dostaliśmy Twoje zapytanie, odpowiemy do jutra do 12:00” uspokaja klienta i od razu pokazuje, czy wysyłka działa.
  • Comiesięczny test. Wyślij formularz sam do siebie, z innego adresu, i sprawdź, czy przyszedł do skrzynki odbiorczej, a nie do spamu.

Spam z formularza: jak go ograniczyć?

Boty wypełniają formularze reklamami, linkami i próbami ataków. Skuteczne i mało uciążliwe metody to:

  • Honeypot, czyli ukryte pole, którego człowiek nie widzi, a bot wypełnia. Zgłoszenia z wypełnionym polem są odrzucane.
  • Cloudflare Turnstile, darmowa, zwykle niewidoczna weryfikacja, czy po drugiej stronie jest człowiek.
  • Google reCAPTCHA. Od 2024 r. działa w ramach Google Cloud, a darmowy limit to 10 000 weryfikacji miesięcznie. Dla małej firmy zwykle wystarczy, ale warto o tym wiedzieć przy wyborze.

Unikaj zagadek typu „zaznacz wszystkie sygnalizatory”. Odstraszają ludzi, zwłaszcza na telefonie, i bywają problemem dla osób z niepełnosprawnościami, o czym piszę w tekście o dostępności strony. Pamiętaj też, że narzędzia weryfikacyjne przetwarzają dane odwiedzających i trzeba je opisać w polityce prywatności.

RODO: co musi być przy formularzu?

  • Informacja o przetwarzaniu danych (art. 13 RODO): kto jest administratorem, w jakim celu i na jakiej podstawie przetwarza dane, jak długo i jakie prawa ma klient. Wystarczy krótka notka przy przycisku z linkiem do polityki prywatności.
  • Bez zbędnej zgody. Jeśli klient pyta o ofertę, podstawą do odpowiedzi są działania przed zawarciem umowy na jego żądanie (art. 6 ust. 1 lit. b RODO) albo prawnie uzasadniony interes (art. 6 ust. 1 lit. f). Obowiązkowy checkbox „wyrażam zgodę na przetwarzanie danych” nie jest tu potrzebny i bywa mylący.
  • Osobna, nieobowiązkowa zgoda na marketing. Jeśli chcesz później wysyłać klientowi oferty mailem lub SMS-em, potrzebujesz jego zgody. Od 10 listopada 2024 r. reguluje to art. 398 Prawa komunikacji elektronicznej. Checkbox nie może być zaznaczony domyślnie.
  • Minimum pól. Imię, kontakt, wiadomość. Każde dodatkowe pole obniża liczbę wysłanych formularzy i zwiększa zakres danych, za które odpowiadasz. W gabinetach dodaj prośbę, żeby nie opisywać w formularzu szczegółów zdrowotnych.

Formularz to nie jedyna droga

Część klientów woli zadzwonić, część napisać na WhatsAppie, część wysłać zdjęcie. Dobrze zaprojektowana strona daje kilka dróg, a formularz zbiera dokładnie te dane, których potrzebujesz do wyceny. Jak sprawdzić, która droga przynosi najwięcej zapytań, opisuję w tekście o mierzeniu efektów strony.

Nie masz pewności, czy Twój formularz działa?

Sprawdzamy to w ramach audytu, a w Opiece sprawdzamy formularz po każdej aktualizacji.

Źródła

  • Google, wytyczne dla nadawców e-maili: support.google.com (dostęp: 4.11.2026)
  • Cloudflare Turnstile, dokumentacja: developers.cloudflare.com (dostęp: 4.11.2026)
  • Google Cloud, porównanie wersji reCAPTCHA: cloud.google.com (dostęp: 4.11.2026)
  • Rozporządzenie (UE) 2016/679 (RODO), art. 6 i 13: EUR-Lex (dostęp: 4.11.2026)
  • Ustawa z 12 lipca 2024 r. Prawo komunikacji elektronicznej (Dz.U. 2024 poz. 1221), art. 398: ISAP (dostęp: 4.11.2026)