Formularz kontaktowy jest jedynym miejscem na stronie, które może nie działać tygodniami i nikt tego nie zauważy. Zepsuty przycisk albo brakujące zdjęcie widać od razu. Zapytania, które nie dotarło, nie widać wcale: klient wypełnił pola, zobaczył podziękowanie i czeka na odpowiedź, a firma nie wie, że ktokolwiek pisał.
Ten wpis jest instrukcją dla właścicieli firm i osób, które opiekują się firmową stroną na WordPressie. Opisuję w nim, skąd biorą się zgubione zapytania, jak zbudować formularz, który ludzie wypełniają do końca, jak ustawić wysyłkę wiadomości i jak ją zabezpieczyć na wypadek awarii poczty.
Po lekturze czytelnik będzie umiał samodzielnie ustawić wtyczkę Contact Form 7 zgodnie z jej dokumentacją, przenieść wysyłkę na SMTP, włączyć zapis zgłoszeń w bazie, przeprowadzić pełny test z kilku skrzynek i z telefonu oraz wprowadzić krótką comiesięczną kontrolę.
Po czym poznać, że formularz gubi zapytania?
Zgubione zapytania nie dają wyraźnego sygnału: strona działa, a po kliknięciu przycisku pojawia się podziękowanie. Są jednak oznaki, które powinny skłonić do kontroli. Pierwsza to wyraźna różnica między liczbą telefonów a liczbą wiadomości z formularza, zwłaszcza gdy wcześniej proporcje były inne. Druga to klienci, którzy dzwonią i mówią, że pisali kilka dni temu i nie dostali odpowiedzi. Trzecia to nagły spadek liczby zapytań po zmianie na stronie: po aktualizacji wtyczek, zmianie serwera, zmianie adresu poczty albo przebudowie serwisu. Czwarta to licznik wysłań w statystykach, który rośnie, choć wiadomości w skrzynce nie przybywa.
Dlaczego wiadomość z formularza nie dociera do firmy?
Droga wiadomości jest dłuższa, niż się wydaje. Formularz przyjmuje dane, wtyczka sprawdza je i przekazuje WordPressowi, WordPress oddaje wiadomość serwerowi, serwer wysyła ją do poczty odbiorcy, a tam filtr decyduje, czy trafi ona do skrzynki odbiorczej, do spamu, czy zostanie odrzucona. Zapytanie może przepaść na każdym z tych odcinków.
W praktyce przyczyn jest kilka i dobrze jest znać je wszystkie, zanim zacznie się cokolwiek zmieniać:
- Wiadomość w ogóle nie wychodzi z serwera. Serwer ma wyłączoną albo ograniczoną funkcję wysyłki, a adres nadawcy wpisany w formularzu nie istnieje.
- Wiadomość wychodzi, ale trafia do spamu. Poczta odbiorcy uznaje ją za podejrzaną, bo nadawca podaje się za adres z obcej domeny albo domena nie ma poprawnych zapisów uwierzytelniających.
- Wiadomość idzie na stary adres. W polu odbiorcy został adres byłego pracownika, wykonawcy strony albo skrzynki, do której nikt już nie zagląda.
- Formularz blokuje sam siebie. Ochrona przed spamem uznaje prawdziwych klientów za boty albo skrypt formularza przestał działać po aktualizacji lub włączeniu pamięci podręcznej.
- Klient rezygnuje przed wysłaniem. Pól jest za dużo, komunikat o błędzie jest niezrozumiały albo na telefonie nie da się trafić w przycisk.
- Wiadomość dociera, ale nikt jej nie czyta. Odpowiedź firmy idzie na adres strony zamiast na adres klienta albo skrzynka jest przepełniona.
Dokumentacja Contact Form 7 opisuje ten mechanizm wprost. Zielona ramka komunikatu po wysłaniu oznacza tylko tyle, że serwer przyjął wiadomość do wysyłki. Nie oznacza, że wiadomość dotarła. Jeśli po zielonej ramce nic nie przychodzi, wiadomość zaginęła później, a najczęstszym winowajcą jest filtr antyspamowy.

Czerwona ramka oznacza, że serwer nie zdołał wysłać wiadomości, i wtedy sprawę należy zgłosić firmie hostingowej albo przenieść wysyłkę na SMTP. Pomarańczowa ramka oznacza, że zgłoszenie zostało uznane za spam przez jeden z modułów ochrony. Wtyczka celowo pokazuje w obu przypadkach ten sam tekst komunikatu, dlatego rozpoznaje się je po kolorze ramki.
Jak zbudować formularz, który ludzie wypełniają do końca?
Ile pól powinien mieć formularz?
W większości firm usługowych wystarczają trzy lub cztery pola: imię, adres e-mail albo telefon oraz treść wiadomości. Każde kolejne pole powinno mieć uzasadnienie: bez tej informacji nie da się odpowiedzieć. Jeśli pole jest tylko wygodne dla firmy, lepiej z niego zrezygnować albo oznaczyć je jako nieobowiązkowe.
Radzę nie wymagać jednocześnie telefonu i adresu e-mail. Część osób nie chce podawać numeru i z tego powodu zamyka stronę. Lepiej dać wybór: jedno z dwóch pól obowiązkowe albo krótkie pytanie o preferowaną formę kontaktu.
Jak opisać pola, żeby nikt się nie pomylił?
Etykieta powinna stać nad polem i być widoczna przez cały czas wypełniania. Podpowiedź wpisana szarym tekstem w środku pola znika po pierwszym znaku i nie zastępuje etykiety. Pola obowiązkowe trzeba wyraźnie oznaczyć, a przy polu z numerem telefonu podać oczekiwany zapis, jeśli formularz go sprawdza.
Komunikat o błędzie powinien pojawić się przy konkretnym polu i mówić, co poprawić, na przykład „Proszę podać adres e-mail w postaci nazwa@domena.pl”. Ogólna informacja, że formularz zawiera błędy, zmusza klienta do zgadywania. Przycisk wysyłki warto nazwać czynnością, na przykład „Wyślij zapytanie”.
Formularz nie działa w oderwaniu od reszty strony. Klient wypełnia go chętniej, gdy wcześniej dowiedział się, co firma robi, dla kogo i na jakich zasadach, dlatego jego miejsce i otoczenie opisałem we wpisie o tym, co powinna zawierać strona usługowa.
Co powinno się stać po kliknięciu przycisku?
Klient musi dostać jednoznaczne potwierdzenie. Dobry komunikat mówi trzy rzeczy: że wiadomość została wysłana, kiedy można spodziewać się odpowiedzi i co zrobić, gdyby jej nie było. Przykład: Dziękujemy, wiadomość została wysłana. Odpowiadamy w ciągu jednego dnia roboczego. W pilnych sprawach prosimy o telefon.
Jakie zgody i informacje o danych są potrzebne?
Formularz zbiera dane osobowe, więc przy nim powinna znaleźć się krótka informacja: kto jest administratorem danych, w jakim celu dane są przetwarzane i gdzie znajduje się pełna treść polityki prywatności. Wystarczy jedno lub dwa zdania z odnośnikiem pod polami.
Częstym błędem jest mieszanie dwóch spraw. Odpowiedź na zapytanie, które klient sam wysłał, to coś innego niż wysyłanie mu później ofert i wiadomości marketingowych. Na marketing potrzebna jest osobna, dobrowolna zgoda, z polem wyboru, które nie jest zaznaczone z góry. Nie należy uzależniać wysłania zapytania od zgody na marketing.
Jak ustawić wysyłkę w Contact Form 7?
Contact Form 7 jest jedną z najczęściej używanych wtyczek formularzy w WordPressie. Ustawienia każdego formularza są w niej podzielone na karty. W polskiej wersji panelu karta z ustawieniami wysyłki nosi nazwę „Adres e-mail” (w wersji angielskiej „Mail”), a jej pola to „Odbiorca” (ang. „To”), „Nadawca” (ang. „From”), „Temat”, „Dodatkowe nagłówki”, „Treść wiadomości” i „Załączniki”. Tłumaczenie wtyczki jest niepełne i bywa zmieniane, dlatego część napisów może wyświetlać się po angielsku.
Najważniejsza zasada z dokumentacji wtyczki dotyczy nadawcy: adres w polu „Nadawca” powinien należeć do tej samej domeny co strona. Wiadomość ze strony firma.pl, która podaje się za adres w obcej domenie pocztowej, wygląda dla filtrów jak podszywanie się pod kogoś innego. Adres klienta wpisuje się w nagłówku Reply-To, dzięki czemu odpowiedź trafia do klienta, a nadawcą technicznym pozostaje strona.
- W panelu WordPressa należy otworzyć „Kontakt”, a następnie „Formularze kontaktowe” i kliknąć nazwę formularza, który jest osadzony na stronie.
- Na karcie „Formularz” trzeba odczytać nazwy pól w nawiasach kwadratowych, na przykład
your-name,your-emailiyour-message. Te same nazwy będą potrzebne w ustawieniach wysyłki. - Należy przejść na kartę „Adres e-mail”. W polu „Odbiorca” wpisuje się adres skrzynki, którą ktoś w firmie czyta codziennie. Jeśli wiadomości mają czytać dwie osoby, adresy oddziela się przecinkiem.
- W polu „Nadawca” wpisuje się nazwę strony i adres we własnej domenie, na przykład
Formularz firma.pl <formularz@firma.pl>. Taka skrzynka powinna naprawdę istnieć, ponieważ część serwerów blokuje wysyłkę z adresów, których nie ma. - W polu „Temat” warto zostawić stały początek, po którym łatwo ustawić filtr w poczcie, na przykład
Zapytanie ze strony: [your-subject]. - W polu „Dodatkowe nagłówki” wpisuje się wiersz
Reply-To: [your-email]. Każdy nagłówek zajmuje osobny wiersz. Kopię dla drugiej osoby dodaje się wierszem zaczynającym się odCc:alboBcc:. - W polu „Treść wiadomości” należy sprawdzić, czy znajdują się w nim znaczniki wszystkich pól formularza. Pole, którego znacznika tu nie ma, nie pojawi się w wiadomości, choć klient je wypełnił.
- Na karcie „Wiadomości” ustawia się teksty widoczne dla klienta: potwierdzenie wysłania, informację o błędzie wysyłki i komunikaty przy źle wypełnionych polach.
- Zmiany zatwierdza się przyciskiem „Zapisz”, a następnie sprawdza, czy przy nazwach kart nie pojawiło się ostrzeżenie o błędach konfiguracji.
Co oznaczają ostrzeżenia o błędach konfiguracji?
Wtyczka ma wbudowaną kontrolę ustawień i sama zgłasza najczęstsze pomyłki. Na karcie wysyłki ostrzega między innymi o adresie nadawcy spoza domeny strony, o błędnie zapisanym adresie, o niepoprawnym nagłówku oraz o polu, które może pozostać puste. Tych ostrzeżeń nie należy ignorować. Każde z nich wskazuje ustawienie, przez które wiadomości mogą nie docierać.
Dokumentacja zwraca też uwagę na szczegół, który łatwo przeoczyć: nagłówki muszą pozostać poprawne także wtedy, gdy klient zostawi pole nieobowiązkowe puste. Jeśli pole z adresem e-mail nie jest wymagane, a nagłówek Reply-To z niego korzysta, pusty nagłówek może zatrzymać wysyłkę. Bardzo krótka albo pusta treść wiadomości również bywa odrzucana jako podejrzana.
Czy wysyłać klientowi automatyczne potwierdzenie?
Na karcie wysyłki znajduje się drugi szablon, w polskiej wersji „Email (2)”, włączany polem wyboru „Użyj emaila (2)”. Według dokumentacji jest on często używany jako automatyczna odpowiedź i wychodzi tylko wtedy, gdy pierwsza wiadomość została wysłana poprawnie. W jego polu odbiorcy wpisuje się znacznik pola z adresem klienta, a nadawcą znów powinien być adres we własnej domenie.
Potwierdzenie daje klientowi pewność, że zapytanie dotarło, ale ma też wadę. Formularz, który wysyła wiadomości na dowolny adres wpisany przez nieznajomą osobę, może zostać wykorzystany do rozsyłania spamu w imieniu firmy. Dlatego drugi szablon należy włączać dopiero razem z ochroną przed spamem, a jego treść ograniczyć do krótkiego potwierdzenia bez cytowania wpisanej wiadomości.
Co ustawić, gdy strona korzysta z innej wtyczki?
Nazwy pól różnią się między wtyczkami, ale zasady są wszędzie takie same. W każdej wtyczce formularzy i w każdym kreatorze stron z własnym modułem formularza trzeba odnaleźć ustawienia powiadomień i sprawdzić w nich cztery rzeczy.
Pierwsza to adres odbiorcy: aktualny, czytany codziennie, najlepiej skrzynka wspólna zamiast prywatnej skrzynki jednej osoby. Druga to adres nadawcy we własnej domenie. Trzecia to adres do odpowiedzi ustawiony na pole z adresem klienta. Czwarta to treść powiadomienia, która zawiera wszystkie pola formularza. W dokumentacji używanej wtyczki warto też sprawdzić, czy zapisuje ona zgłoszenia w panelu, zamiast zakładać, że kopia gdzieś jest.
Kto na tym etapie woli nie zajmować się tym samodzielnie, może po prostu zadzwonić pod numer 533 525 168 albo napisać na adres info@lukaszwudyka.pl. Chętnie przejmę sprawę: ustawię formularz, wysyłkę i zapis zgłoszeń, a potem przetestuję całość z kilku skrzynek.
Po co wysyłka przez SMTP i jak ją włączyć?
WordPress wysyła wszystkie wiadomości jedną funkcją o nazwie wp_mail(). Domyślnie korzysta ona z prostego mechanizmu serwera, na którym stoi strona. Taka wiadomość nie jest logowana do żadnej skrzynki, często nie ma poprawnych podpisów domeny i bywa wysyłana z adresu serwera współdzielonego z setkami innych stron. Filtry pocztowe traktują ją nieufnie.
SMTP zmienia ten sposób działania. Strona loguje się do prawdziwej skrzynki pocztowej albo do usługi wysyłkowej i wysyła wiadomość tak, jak robi to program pocztowy. Dokumentacja Contact Form 7 wskazuje zmianę serwera wysyłki za pomocą wtyczki SMTP jako sposób na błąd z czerwoną ramką.
- W panelu poczty firmowej należy utworzyć skrzynkę przeznaczoną wyłącznie dla strony, na przykład formularz@firma.pl, i zanotować jej dane: adres serwera SMTP, port, rodzaj szyfrowania, nazwę użytkownika i hasło. Te dane podaje dostawca poczty w swojej pomocy.
- W WordPressie instaluje się jedną wtyczkę do wysyłki SMTP z oficjalnego katalogu wtyczek. Nie należy włączać dwóch takich wtyczek jednocześnie, ponieważ będą sobie przeszkadzać.
- W ustawieniach wtyczki wpisuje się dane skrzynki oraz adres i nazwę nadawcy. Adres nadawcy powinien być taki sam jak skrzynka, do której strona się loguje, i taki sam jak w polu nadawcy formularza.
- Większość wtyczek SMTP ma funkcję wysłania wiadomości próbnej. Należy z niej skorzystać i wysłać próbę na skrzynkę w innej domenie niż firmowa.
- W panelu domeny trzeba sprawdzić zapisy SPF i DKIM. To one potwierdzają, że dany serwer ma prawo wysyłać pocztę w imieniu domeny. Gotowe wartości tych zapisów podaje dostawca poczty i najlepiej ustawić je według jego instrukcji.
- Po zmianie należy wysłać zapytanie przez formularz na stronie i sprawdzić, czy doszło do skrzynki odbiorcy, a nie do spamu.
Hasło do skrzynki zostaje zapisane w ustawieniach strony, dlatego radzę używać osobnej skrzynki tylko do tego celu, z własnym hasłem, a nie głównej skrzynki firmy. Jeśli dostawca poczty pozwala utworzyć osobne hasło dla aplikacji, jest to bezpieczniejsze rozwiązanie niż hasło do całego konta.
Jak zapisywać zgłoszenia w bazie na wypadek awarii poczty?
Nawet najlepiej ustawiona poczta czasem zawodzi: skrzynka się przepełnia, hasło wygasa, dostawca ma przerwę. Dlatego każde zgłoszenie powinno zostać zapisane także na stronie, niezależnie od tego, czy wiadomość wyszła. To najprostsze zabezpieczenie i jedyne, które pozwala odzyskać zapytania po awarii.
Contact Form 7 sam niczego nie przechowuje. Jego autor przygotował do tego osobną wtyczkę o nazwie Flamingo. Po jej włączeniu w menu panelu pojawia się pozycja „Flamingo” z listą „Wiadomości przychodzące”, na której widać wszystkie zgłoszenia, także te oznaczone jako spam, oraz „Książka adresowa” z adresami nadawców.

Zapis w bazie ma dwie konsekwencje, o których trzeba wiedzieć. Po pierwsze, w bazie strony gromadzą się dane osobowe, więc należy wspomnieć o tym w polityce prywatności, ustalić, jak długo zgłoszenia są przechowywane, i regularnie usuwać stare. Po drugie, dostęp do zgłoszeń mają osoby z odpowiednimi uprawnieniami w panelu, dlatego warto przejrzeć listę kont użytkowników strony.
Lista zgłoszeń jest także najlepszym narzędziem do diagnozy. Jeśli zapytanie jest w bazie, a nie ma go w skrzynce, formularz działa i problem leży w wysyłce. Jeśli nie ma go również w bazie, zgłoszenie zatrzymało się wcześniej: w samym formularzu, w ochronie przed spamem albo w skrypcie strony.
Jak ochronić formularz przed spamem i nie blokować klientów?
Formularz bez ochrony prędzej czy później zostanie znaleziony przez automaty. Skutkiem jest nie tylko bałagan w skrzynce. Duża liczba śmieciowych wiadomości wysyłanych ze strony psuje opinię domeny u dostawców poczty i z czasem do spamu zaczynają trafiać także prawdziwe zapytania.
Jakie zabezpieczenia są do wyboru?
Pierwsza grupa to mechanizmy, które odróżniają człowieka od automatu, takie jak reCAPTCHA firmy Google albo Turnstile firmy Cloudflare. Działają w tle i zwykle nie wymagają od klienta żadnej czynności. Druga grupa to filtry treści, na przykład Akismet, które porównują zgłoszenie ze znanymi wzorcami spamu i radzą sobie także ze spamem wpisywanym ręcznie przez ludzi.
Trzecim sposobem jest pole-pułapka. To dodatkowe pole ukryte przed ludźmi, które automaty wypełniają, bo wypełniają wszystko. Zgłoszenie z wypełnioną pułapką jest odrzucane. Wiele wtyczek formularzy ma taką funkcję wbudowaną, a do Contact Form 7 dodaje się ją osobną wtyczką. Pułapka zatrzymuje proste automaty i nie obciąża klienta, ale nie wystarcza jako jedyna ochrona.
Jak włączyć ochronę w Contact Form 7?
Wszystkie moduły ochrony znajdują się w jednym miejscu: w menu „Kontakt”, w pozycji „Integracja”. Każda usługa ma tam własne pole z przyciskiem „Konfiguracja integracji”. W przypadku reCAPTCHA wtyczka obsługuje wersję v3. Należy zarejestrować stronę w konsoli reCAPTCHA, wybrać typ v3, a otrzymane dwa klucze wkleić w pola „Klucz witryny” i „Klucz prywatny” i zatwierdzić przyciskiem „Zapisz zmiany”. Klucze od starszej wersji v2 nie działają z wersją v3.
Sama wtyczka wyświetla obecnie w panelu zalecenie, aby łączyć Turnstile z filtrem Akismet, oraz uwagę, że korzystanie z reCAPTCHA powyżej określonego limitu wywołań może wiązać się z opłatami. Przed wyborem warto więc sprawdzić aktualne warunki tych usług.
Usługi zewnętrzne przetwarzają dane odwiedzających, dlatego trzeba je uwzględnić w polityce prywatności i w ustawieniach banera zgód. Zdarza się, że skrypt ochrony jest blokowany do czasu wyrażenia zgody, a formularz bez niego odrzuca każde zgłoszenie. Ten przypadek koniecznie trzeba sprawdzić w teście: wysłać formularz po odrzuceniu zgód na banerze.
Zbyt ostra ochrona objawia się pomarańczową ramką komunikatu przy zwykłym, poprawnym zgłoszeniu. Drugim sygnałem są prawdziwe zapytania na liście spamu we Flamingo. Tę listę należy przeglądać przy każdej kontroli, ponieważ zgłoszenie uznane za spam nie jest wysyłane do skrzynki i bez zapisu w bazie nikt by się o nim nie dowiedział.
Jak przetestować formularz krok po kroku?
Jedno próbne zgłoszenie wysłane z firmowego komputera niczego nie dowodzi. Administrator jest zalogowany, ma inne ustawienia przeglądarki, a wiadomość z domeny do tej samej domeny często dochodzi nawet wtedy, gdy na zewnątrz nie dochodzi nic. Test musi naśladować prawdziwych klientów.
- Należy przygotować trzy adresy nadawcy u różnych dostawców poczty: jeden w popularnej poczcie zagranicznej, jeden w popularnej poczcie polskiej i jeden firmowy w innej domenie niż strona.
- Stronę otwiera się w oknie prywatnym przeglądarki, bez logowania do WordPressa. Na banerze zgód wybiera się najpierw odrzucenie wszystkich zgód.
- Formularz wypełnia się tak, jak zrobiłby to klient: z polskimi znakami, z dłuższą treścią i z prawdziwym adresem. W treści warto wpisać numer próby i godzinę, co ułatwi późniejsze odnalezienie wiadomości.
- Po kliknięciu przycisku trzeba zanotować, jaki komunikat się pojawił, jaki kolor miała ramka i czy komunikat był widoczny bez przewijania.
- W skrzynce odbiorcy należy poszukać wiadomości w folderze odbiorczym, w spamie i w pozostałych kartach lub folderach. Trzeba zanotować, po jakim czasie doszła.
- W otrzymanej wiadomości klika się „Odpowiedz” i sprawdza, czy w polu adresata pojawia się adres klienta, a nie adres strony. Odpowiedź warto rzeczywiście wysłać i sprawdzić, czy doszła.
- W panelu WordPressa otwiera się listę zapisanych zgłoszeń i sprawdza, czy próba została zapisana oraz czy nie trafiła do spamu.
- Czynności powtarza się z dwóch pozostałych adresów, a następnie z telefonu połączonego z siecią komórkową, a nie z firmowym Wi-Fi.
- Na koniec sprawdza się błędy: wysyłkę z pustym polem obowiązkowym, z błędnie wpisanym adresem i bez zaznaczonej zgody. Komunikaty powinny jasno wskazywać, co poprawić.
Jak czytać wyniki testu?
Wynik jest dobry, gdy wszystkie próby dotarły do folderu odbiorczego, wszystkie są zapisane w bazie, a odpowiedź trafia do klienta. Jeśli wiadomości nie ma w skrzynce, ale jest w bazie, przyczyna leży w wysyłce: należy wrócić do adresu nadawcy, SMTP oraz zapisów SPF i DKIM. Jeśli wiadomość trafia do spamu tylko u jednego dostawcy, warto oznaczyć ją tam jako pożądaną i dodać adres nadawcy do kontaktów, a mimo to sprawdzić uwierzytelnianie domeny.
Jeśli formularz działa na komputerze, a nie działa na telefonie albo po odrzuceniu zgód, przyczyną jest zwykle skrypt: ochrona przed spamem, pamięć podręczna albo łączenie i opóźnianie skryptów przez wtyczkę przyspieszającą stronę. Formularz i skrypty ochrony należy wtedy wyłączyć z takiej optymalizacji. Więcej o tym, jak działają wtyczki tego typu, opisałem we wpisie o tym, co spowalnia WordPressa.
Gdy naprawa nie przynosi skutku, najkrótszą drogą jest zgłoszenie do firmy hostingowej. Warto podać w nim dokładną godzinę próby, adres nadawcy i odbiorcy oraz prośbę o sprawdzenie dziennika poczty serwera. Na tej podstawie pomoc techniczna może ustalić, czy wiadomość opuściła serwer i jaką odpowiedź dostała od poczty odbiorcy.
Jak mierzyć wysłania formularza w statystykach?
W Google Analytics pomiar formularzy jest częścią pomiaru zaawansowanego. Według pomocy Google włącza się go w sekcji „Administracja”, w części „Zbieranie i modyfikowanie danych”, po kliknięciu „Strumienie danych” i nazwy strumienia. W sekcji „Pomiar zaawansowany” znajduje się opcja „Interakcje z formularzem”. Rejestruje ona dwa zdarzenia: form_start przy pierwszej interakcji z formularzem w sesji oraz form_submit przy przesłaniu formularza.

Taki licznik pokazuje, które strony przynoszą zapytania, i pozwala porównać liczbę wysłań z liczbą wiadomości w skrzynce i w bazie. Zdarzenia widać w raporcie „Zdarzenia” w temacie „Zaangażowanie”. Porównanie obu liczb pokazuje, ile osób zaczęło wypełniać formularz, a ile go wysłało. Duża różnica oznacza, że ludzie rezygnują w trakcie, i jest powodem, aby wrócić do liczby pól i komunikatów o błędach.
Automatyczne wykrywanie ma ograniczenia. Formularze wysyłane bez przeładowania strony, a tak działa Contact Form 7, nie zawsze są liczone poprawnie, a czasem zdarzenie zapisuje się mimo błędu w formularzu. Dlatego po włączeniu pomiaru należy wysłać kilka prób i porównać licznik z listą zgłoszeń w bazie.
Dokładniejszym sposobem jest wysyłanie do statystyk własnego zdarzenia dopiero po udanej wysyłce. Contact Form 7 zgłasza wtedy w przeglądarce zdarzenie o nazwie wpcf7mailsent, do którego osoba opiekująca się stroną może podpiąć pomiar. W statystykach nie wolno zapisywać danych osobowych z formularza, w tym adresów e-mail i numerów telefonów.
Jak wygląda comiesięczny test formularza?
Formularz psuje się bez udziału właściciela: po aktualizacji wtyczki, zmianie na serwerze albo wygaśnięciu hasła do skrzynki. Jedyną obroną jest stały, krótki test wpisany do kalendarza.
- Wysłanie jednego zapytania z prywatnej skrzynki w obcej domenie, z telefonu, w oknie prywatnym.
- Sprawdzenie, czy wiadomość doszła do folderu odbiorczego i czy odpowiedź trafia do nadawcy.
- Przejrzenie listy zapisanych zgłoszeń, w tym spamu, pod kątem prawdziwych zapytań, które nie dotarły do skrzynki.
- Porównanie liczby zgłoszeń w bazie z liczbą wysłań w statystykach za ostatni miesiąc.
- Sprawdzenie, czy adres odbiorcy jest nadal aktualny i czy skrzynka nie jest przepełniona.
- Usunięcie z bazy zgłoszeń starszych, niż przewiduje polityka prywatności firmy.
Ten sam test należy wykonać poza kolejnością po każdej większej zmianie: aktualizacji WordPressa i wtyczek, zmianie motywu, zmianie hostingu, zmianie dostawcy poczty i przenosinach strony na nowy adres. Przy przenosinach formularz jest jednym z elementów, które psują się najczęściej, o czym piszę szerzej we wpisie o tym, jak przeprowadzić migrację strony. Jeśli formularzy jest kilka, każdy ma własne ustawienia wysyłki i każdy trzeba sprawdzić osobno.
Jakich błędów unikać przy formularzu kontaktowym?
- Adres klienta w polu nadawcy. Wygląda to wygodnie, bo wiadomość przychodzi jakby od klienta, ale dla filtrów jest to podszywanie się pod cudzą domenę. Adres klienta należy do nagłówka Reply-To.
- Prywatna skrzynka jednej osoby jako odbiorca. Urlop, choroba albo odejście pracownika zatrzymuje wtedy wszystkie zapytania. Lepsza jest skrzynka wspólna z dwiema osobami odpowiedzialnymi.
- Brak kopii zgłoszeń. Bez zapisu w bazie awaria poczty oznacza utratę zapytań bez możliwości ich odzyskania.
- Ochrona włączona bez sprawdzenia. Zabezpieczenie, które odrzuca prawdziwych klientów, szkodzi bardziej niż spam.
Najczęstsze pytania
Formularz pokazuje podziękowanie, a wiadomość nie przychodzi. Co sprawdzić najpierw?
Najpierw należy zajrzeć do folderu ze spamem i do listy zapisanych zgłoszeń. Jeśli zgłoszenie jest w bazie, formularz działa, a problem leży w wysyłce: trzeba sprawdzić adres odbiorcy, adres nadawcy we własnej domenie i przenieść wysyłkę na SMTP. Zielona ramka w Contact Form 7 oznacza jedynie, że serwer przyjął wiadomość do wysłania.
Czy w polu nadawcy można wpisać adres w popularnej poczcie zamiast we własnej domenie?
Nie jest to dobre rozwiązanie. Dokumentacja Contact Form 7 zaleca adres należący do tej samej domeny co strona, a wtyczka zgłasza inny adres jako błąd konfiguracji. Wiadomość wysłana z serwera strony w imieniu obcej domeny pocztowej nie przechodzi uwierzytelniania i łatwo trafia do spamu albo jest odrzucana.
Czy sama wtyczka SMTP wystarczy, żeby wiadomości nie trafiały do spamu?
Nie zawsze. SMTP sprawia, że wiadomość wychodzi z prawdziwej skrzynki, ale domena powinna mieć także poprawne zapisy SPF i DKIM. Znaczenie ma również liczba śmieciowych zgłoszeń wychodzących ze strony, dlatego SMTP i ochrona formularza powinny działać razem.
Czy zapisywanie zgłoszeń w bazie jest zgodne z przepisami o ochronie danych?
Samo przechowywanie zgłoszeń nie jest zakazane, ale wiąże się z obowiązkami. Trzeba poinformować o tym w polityce prywatności, ograniczyć dostęp do panelu, ustalić czas przechowywania i usuwać stare zgłoszenia. Szczegóły zależą od sytuacji firmy, więc w razie wątpliwości warto zapytać prawnika albo inspektora ochrony danych.
Co wybrać: reCAPTCHA, Turnstile czy pole-pułapkę?
Przy niewielkim ruchu zwykle wystarcza pole-pułapka połączone z filtrem treści. Przy większej liczbie automatów potrzebny jest mechanizm działający w tle, taki jak Turnstile albo reCAPTCHA v3. Przed wyborem należy sprawdzić aktualne warunki usługi i jej wpływ na baner zgód, a po włączeniu wykonać pełny test, także po odrzuceniu zgód.
Co zrobić, gdy okaże się, że zapytania ginęły od dłuższego czasu?
Najpierw trzeba naprawić wysyłkę i potwierdzić to testem. Potem należy sprawdzić, czy zgłoszenia zachowały się w bazie strony, w folderze spamu albo w dzienniku poczty serwera, o który można poprosić firmę hostingową. Do osób, których zapytania uda się odzyskać, warto napisać z krótkim wyjaśnieniem i przeprosinami, nawet po czasie.
Brak czasu albo ochoty, żeby zająć się tym samodzielnie?
To zupełnie zrozumiałe. Opisane czynności wymagają spokoju i kilku wolnych godzin, a w firmie zwykle brakuje jednego i drugiego. Chętnie zrobię to od początku do końca: ustawię formularz, wysyłkę i zapis zgłoszeń, a potem przetestuję całość z kilku skrzynek.
Wystarczy zadzwonić pod numer 533 525 168 albo napisać na adres info@lukaszwudyka.pl i w kilku zdaniach opisać sprawę. Odpowiadam osobiście i od razu mówię, co da się zrobić.



