B2BPRO.KZ | Рекламное агентство в Алматы

Формы на сайте: как не терять заявки из-за спама и настроек

Веб-разработчица за ноутбуком с формой заявки на сайте, объёмные буквы WordPress, пузыри сообщений, конверт и щит

Заявки с сайта пропадают по трём причинам: письмо с формы не доходит до почтового ящика, обращение нигде не сохраняется кроме этого письма, и защита от спама срезает живых людей вместе с ботами. Лечится это связкой из трёх настроек: отправка писем через SMTP, дублирование заявки в базу сайта и CRM, фильтрация спама по содержанию обращения.

Типичная картина выглядит так. Компания запускает рекламу, в отчётах видит клики и заполнения формы, а менеджеры разводят руками: заявок нет. Проверка почти всегда показывает, что форма работала, отправка шла, а письма оседали в спаме получателя или отклонялись его сервером ещё на подлёте. Заявка физически существовала, но до человека не дошла.

Куда пропадают заявки: четыре разных сценария

Потеря заявки бывает на четырёх разных этапах, и лечится каждый по-своему. Сначала нужно понять, на каком именно этапе обрывается цепочка, иначе можно месяц настраивать капчу, когда проблема в почте.

Первый сценарий: посетитель не смог отправить форму. Не прошла валидация телефона, не отметился обязательный чекбокс согласия, на мобильном кнопка отправки оказалась под экранной клавиатурой. Сайт при этом работает, ошибок в логах нет, а человек ушёл.

Второй: форма приняла данные, но письмо не сформировалось. Отвалился SMTP, кончился таймаут соединения, конфликт плагинов оборвал отправку. Посетитель обычно видит сообщение об ошибке и уходит, решив, что сайт сломан.

Третий: письмо ушло, но не дошло. Почтовый сервер получателя проверил отправителя, не нашёл подтверждения подлинности и положил письмо в спам или отклонил совсем. Самый частый и самый незаметный сценарий, потому что на стороне сайта всё выглядит успешным.

Четвёртый: письмо дошло, но утонуло. В ящик валится сотня спам-обращений в сутки, менеджер перестаёт их открывать и вместе с мусором пролистывает две настоящие заявки.

Почему письма с формы не доходят до почты

Основная причина в том, как WordPress отправляет почту по умолчанию. wp_mail() — это встроенная функция WordPress для отправки писем, и в базовой конфигурации она передаёт письмо библиотеке PHPMailer, а та использует внутреннюю функцию PHP mail(), то есть отдаёт сообщение локальному почтовому агенту сервера без всякой авторизации. Подробности этого механизма описаны в разделе Mail в справочнике администратора WordPress.

Для принимающей стороны такое письмо выглядит подозрительно. Оно приходит с адреса вида info@вашдомен.kz, но отправлено с сервера хостинга, который в DNS вашего домена никак не заявлен как легитимный отправитель. Дальше решение принимает почта получателя, и решение это почти всегда не в пользу сайта.

Отдельная беда — подстановка адреса посетителя в поле From. Многие формы по умолчанию ставят отправителем того, кто заполнил анкету. Получается, что письмо якобы отправлено с mail.ru или gmail.com, а физически ушло с казахстанского хостинга. Для фильтров это классический признак подделки адреса, и такие письма режут жёстче всего. Адрес посетителя должен стоять в поле Reply-To, чтобы кнопка «Ответить» работала, а отправителем остаётся почтовый ящик на вашем домене.

Как настроить отправку, чтобы письма доходили

Рабочая схема: отправлять письма через SMTP с авторизацией на реальном почтовом ящике вашего домена и подтвердить право на отправку записями в DNS. SMTP — это протокол передачи почты, при котором сайт подключается к почтовому серверу с логином и паролем и отдаёт письмо как обычный почтовый клиент.

После этого настраиваются три DNS-записи. Они делают разную работу, и путать их не стоит.

Запись Что делает Что проверить на практике
SPF Перечисляет серверы, которым разрешено отправлять почту от имени домена В домене ровно одна SPF-запись, и в ней указан тот сервер, через который реально уходит почта сайта
DKIM Подписывает письмо криптографической подписью, по которой получатель проверяет подлинность Подпись включена в почтовом сервисе, публичный ключ добавлен в DNS домена
DMARC Сообщает получателю, что делать с письмами, не прошедшими проверку, и куда слать отчёты Запись существует, политика соответствует тому, насколько вы уверены в настройке SPF и DKIM

Google формулирует требования довольно жёстко. Согласно руководству Gmail для отправителей, любой отправитель обязан настроить хотя бы SPF или DKIM, а тот, кто рассылает от 5000 писем в сутки, должен иметь и SPF, и DKIM, и DMARC, причём домен в поле From обязан совпадать с доменом из SPF или DKIM. Доля жалоб на спам при этом не должна превышать 0,3%. Уведомления с формы на сайте до порога в 5000 писем обычно не дотягивают, но базовое требование про SPF или DKIM действует для всех без исключения.

На проектах B2BPRO.KZ мы чаще всего видим один и тот же набор: сайт на казахстанском хостинге, корпоративная почта на внешнем сервисе, SPF описывает только почтовый сервис, а письма формы уходят напрямую с хостинга. Формально всё настроено, фактически уведомления не проходят проверку. Переключение формы на SMTP того же почтового сервиса закрывает вопрос без правок в DNS вообще.

Почему письмо не должно быть единственным местом, где живёт заявка

Заявка обязана сохраняться в базе сайта и уходить в CRM независимо от того, дошло письмо или нет. Почта — это канал уведомления, а не хранилище лидов, и строить на ней учёт обращений опасно.

У популярных форм для WordPress сохранение либо встроено, либо добавляется бесплатным дополнением. Для Contact Form 7, например, существует официальный плагин-компаньон Flamingo от автора той же формы: он складывает все отправленные обращения в админку сайта. Пять минут установки дают возможность в любой момент сверить, сколько заявок было отправлено и сколько из них долетело до почты.

Второй уровень — передача обращения в CRM сразу из формы. Там заявка получает ответственного, срок и стадию, и её уже не получится не заметить. Если форма отправляет лид в CRM, а уведомление на почту идёт бонусом, потеря письма перестаёт быть катастрофой. Когда доработку формы и интеграцию делают одним пакетом, это обычно дешевле, чем чинить каждый канал отдельно: посмотрите, как устроены наши услуги по разработке сайтов, если хотите закрыть тему целиком.

Третий уровень, самый дешёвый: дублирование в мессенджер. Уведомление в рабочий чат приходит мгновенно, и менеджер видит заявку раньше, чем откроет почту.

Чем спам в формах отличается от спама в комментариях

Спам в формах делится на две категории, и защита от них нужна разная. Спам-бот — это программа, которая автоматически находит формы на сайтах и отправляет их, подставляя ссылки или мусорный текст. Против ботов работают технические барьеры. Вторая категория — живые люди из аутрич-агентств, вручную рассылающие предложения по формам обратной связи. Никакой барьер их не остановит, потому что они проходят его так же, как обычный посетитель.

Разработчик Contact Form 7 прямо предупреждает в официальной документации, что капчи эффективны против спам-ботов, но бессильны против других видов спама, и рекомендует использовать два и более модуля защиты одновременно. Именно поэтому ставка на одну капчу обычно разочаровывает: поток падает вдвое, а самые назойливые обращения остаются.

Что ставить на форму: сравнение способов защиты

Способ Что ловит Чего не ловит Влияние на посетителя
Honeypot (скрытое поле) Простые боты, заполняющие все поля подряд Боты, обученные под конкретный сайт, и людей Незаметен
reCAPTCHA v3 Автоматические отправки с подозрительным поведением Ручной спам Не прерывает посетителя
Cloudflare Turnstile Ботов, не проходящих фоновую проверку браузера Ручной спам В большинстве случаев без видимой задачи
Akismet Спам по содержанию обращения, включая ручной Осмысленные, но нецелевые обращения Незаметен
Ограничение частоты отправок Массовые серии с одного адреса Одиночные отправки Незаметно при адекватных лимитах

Про reCAPTCHA v3 стоит понимать главное: она не блокирует отправку сама. Документация Google по reCAPTCHA v3 описывает, что сервис возвращает оценку от 0.0 до 1.0, где 1.0 — почти наверняка нормальное взаимодействие, а 0.0 — почти наверняка бот, и в качестве стартового порога предлагает 0.5. Решение, что делать с низкой оценкой, принимает сайт. Отдельно в документации сказано, что reCAPTCHA v3 никогда не прерывает посетителя, поэтому её можно включить в режиме наблюдения, посмотреть на распределение оценок по своему трафику и только потом выбирать порог.

Cloudflare Turnstile решает ту же задачу иначе: это альтернатива капче, которая проверяет посетителя фоновыми сигналами браузера и в большинстве случаев обходится без видимой головоломки. Для аудитории, которая ненавидит выбирать светофоры на картинках, вариант удобнее.

Akismet работает по другому принципу и потому дополняет капчу, а не заменяет её: он оценивает содержание обращения. По инструкции Akismet по работе с формами, сервис поддерживает Contact Form 7, Gravity Forms, WPForms, Fluent Forms, Formidable Forms, Forminator, Ninja Forms, WS Form и формы Elementor на платных тарифах, но для большинства из них проверку нужно включить отдельно в настройках каждой формы. Работает сервис по активной подписке, это не бесплатный плагин.

В Contact Form 7 интеграция настраивается через опции тегов полей: имя помечается как akismet:author, почта как akismet:author_email, сайт как akismet:author_url. Без этих пометок плагин установлен, но обращения не проверяет. Когда Akismet признаёт отправку спамом, Contact Form 7 не отправляет письмо и показывает посетителю сообщение об ошибке отправки, обведённое оранжевой рамкой. Это важный побочный эффект: слишком агрессивная фильтрация выглядит для живого клиента как поломка сайта.

Настройки формы, из-за которых уходят живые клиенты

Часть заявок теряется ещё до отправки, и виновата обычно сама анкета. Проверять её стоит по шести пунктам.

Начните с количества обязательных полей. Каждое лишнее отсекает часть посетителей, а для первого контакта хватает имени и одного способа связи: остальное менеджер уточнит в разговоре.

Маска телефона. Классическая казахстанская ловушка: маска жёстко ждёт +7 и 10 цифр, а человек вводит номер через 8 или вставляет его из мессенджера вместе с пробелами и скобками. Форма молча не принимает значение. Разумнее принимать номер в свободном виде и приводить его к единому формату уже на стороне сайта.

Чекбокс согласия на обработку данных. Обязательный чекбокс нужен, но ошибка при незаполненном согласии должна быть видна рядом с ним, а не где-то вверху формы за пределами экрана.

Посетитель должен увидеть внятное подтверждение отправки. Когда форма сработала, но визуально ничего не произошло, часть людей жмёт кнопку повторно и создаёт дубли, а часть уходит, решив, что заявка не ушла.

Мобильная версия. На телефоне форму нужно пройти целиком: открыть, заполнить каждое поле, увидеть кнопку при поднятой клавиатуре, отправить. Проверка на компьютере с уменьшенным окном браузера этого не заменяет.

Кэширование страницы. Плагины кэширования отдают форму из статичной копии, и у некоторых конструкторов это ломает защитные токены. Симптом характерный: форма стабильно ошибается у новых посетителей и работает у администратора, который залогинен и получает страницу без кэша. Страницы с формами обычно достаточно исключить из кэша.

Как проверить форму за двадцать минут

  1. Отправьте тестовую заявку с телефона, из мобильного интернета, а не из офисной сети, и заполните все поля так, как это сделал бы клиент.
  2. Проверьте почту, включая папку «Спам» и вкладки автоматической сортировки писем.
  3. Откройте исходный текст полученного письма и посмотрите, с какого адреса и какого сервера оно пришло и прошли ли проверки подлинности.
  4. Убедитесь, что в поле From стоит ящик на вашем домене, а адрес клиента попал в Reply-To.
  5. Проверьте, сохранилась ли отправка в админке сайта, а не только в почте.
  6. Проверьте, появилась ли сделка или лид в CRM и назначен ли ответственный.
  7. Повторите тест со второй почты на другом сервисе: часто письма доходят на корпоративный ящик и теряются на публичном.
  8. Если подключён Akismet, проверьте фильтр его же тестовыми значениями: имя viagra-test-123 или адрес akismet-guaranteed-spam@example.com должны быть распознаны как спам.
  9. Сравните число отправок в базе сайта с числом писем за тот же период. Расхождение показывает масштаб потерь.

Эти девять шагов закрывают почти все ситуации, с которыми к нам приходят с формулировкой «форма не работает». В большинстве случаев форма работает, а ломается доставка.

Что делать, когда спам пошёл валом

Порядок действий при всплеске спама такой: сначала включить фильтрацию по содержанию, потом отсечь ботов, и только в последнюю очередь трогать саму форму.

  1. Посмотрите сохранённые обращения и определите тип спама. Однотипные тексты со ссылками отправляют боты, разные осмысленные предложения услуг пишут живые рассыльщики.
  2. Включите проверку содержания через Akismet и пометьте накопившиеся обращения как спам, чтобы фильтр обучился на ваших данных.
  3. Добавьте honeypot и ограничение частоты отправок. Эти два шага бесплатны и не мешают посетителю.
  4. Если поток не спал, подключите reCAPTCHA v3 или Turnstile и неделю понаблюдайте, прежде чем ужесточать порог.
  5. Настройте письма о спаме так, чтобы они не попадали в общий ящик отдела продаж, но и не удалялись безвозвратно: ошибочно отфильтрованную заявку надо иметь возможность достать.
  6. Через две недели сверьте количество отправок и количество реальных обращений. Если легитимные заявки просели, ослабьте настройки.

Последний пункт пропускают чаще всего, а он самый важный. Защиту ставят в момент, когда спам раздражает, и забывают про неё. Через полгода никто уже не помнит, что порог выставлен жёстко, и компания просто платит за рекламу, часть которой упирается в собственный фильтр.

Как считать заявки, чтобы потери были заметны сразу

Потери видны только тогда, когда заявки считаются минимум в двух независимых местах. Одно число ни о чём не говорит: если в почте десять писем, вы не знаете, было отправок десять или восемнадцать.

Считать стоит в трёх точках. В системе аналитики настраивается цель на успешную отправку формы в Яндекс.Метрике или событие в GA4, причём срабатывать она должна на ответ сервера, а не на клик по кнопке, иначе в отчёт попадут и те, у кого форма не прошла валидацию. В базе сайта обращения сохраняются независимо от почты. В CRM лид попадает с источником и ответственным.

Дальше раз в неделю сверяются два числа: отправки в аналитике и сохранённые обращения. Расхождение в пределах небольшой погрешности нормально, блокировщики рекламы режут часть срабатываний аналитики. Разрыв в разы означает, что где-то в цепочке заявки теряются, и дальше уже понятно, куда смотреть.

Отдельно стоит проставлять источник обращения. Когда в CRM видно, с какой страницы и из какой кампании пришла заявка, разговор про эффективность рекламы перестаёт быть спором о вкусах. И ровно этот же источник помогает быстро заметить, что поток с конкретного канала оборвался из-за технической поломки, а не из-за падения спроса.

Частые вопросы

Почему письма с формы приходят на корпоративную почту, но не доходят на Gmail?
Потому что у разных почтовых сервисов разная строгость проверки отправителя. Корпоративный сервер на том же хостинге часто принимает письма без проверки, а Gmail требует, чтобы отправитель был подтверждён записями SPF или DKIM. Настройте отправку через SMTP ящика вашего домена и добавьте нужные DNS-записи, тогда письма будут доходить одинаково везде.

Нужна ли капча, если спама пока нет?
Если поток спама нулевой, начните с honeypot и ограничения частоты отправок: они бесплатны и не влияют на конверсию. Капчу имеет смысл подключать, когда спам действительно пошёл. Ставить строгую защиту заранее означает терять часть живых заявок без всякой причины.

Можно ли полностью избавиться от спама в форме?
Полностью — нет, пока форма открыта для всех. От автоматических отправок технические средства защищают хорошо, а ручные рассылки от аутрич-агентств проходят любую капчу, потому что их отправляет человек. Реалистичная цель — свести спам к нескольким сообщениям в неделю и отделить их от рабочих обращений, чтобы менеджер не разбирал мусор вручную.

Сколько полей должно быть в форме заявки?
Для первичного обращения достаточно двух-трёх: имя, телефон или почта, при необходимости короткий комментарий. Длинные анкеты уместны там, где заявка сама по себе сложная: расчёт стоимости, подбор оборудования, запись на конкретную дату. В остальных случаях каждое лишнее обязательное поле работает против вас.

Как понять, сколько заявок теряется прямо сейчас?
Сравните три числа за один и тот же период: количество достижений цели «отправка формы» в системе аналитики, количество сохранённых обращений в админке сайта и количество писем в почте. Разрыв между первым и вторым числом означает проблему на стороне формы, между вторым и третьим — проблему с доставкой почты.

Форму стоит проверять с той же регулярностью, с какой смотрят отчёты по рекламе, потому что через неё проходит всё, за что заплачен рекламный бюджет. Один тестовый прогон раз в месяц и сверка трёх чисел из последнего вопроса занимают четверть часа и показывают простую вещь: дошёл клиент до менеджера или остался в логах.

Прокрутить вверх