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:
- 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. - 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.
- 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”.
- Pełna skrzynka albo zmieniony adres. Ktoś zmienił e-mail kontaktowy, a formularz dalej wysyła na stary.
- 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.
Ź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)
