Заявки с сайта не приходят, когда рвётся одно из четырёх звеньев, по которым заявка идёт к вам: форма в браузере посетителя, обработчик (Тильда, WordPress, Битрикс или свой скрипт), доставка (почта, Telegram, CRM) и человек, который заявку читает. Снаружи любая поломка выглядит одинаково: заявок нет. Поэтому искать надо не причину, а место — звено, после которого заявку никто не видел.
Типичные обрывы: на странице падает JavaScript, и форма молча не отправляется; почта отбивает письмо, потому что у домена нет SPF и DKIM или форма ставит в «От кого» адрес клиента; хостинг закрыл почтовый порт; сервер в России не достаёт до заблокированного Telegram; у CRM кончилась оплата. Ниже — таблица симптомов, проверка на десять минут и что чинить на каждом звене. И правило, при котором сбой доставки перестаёт стоить вам заявок: сначала сохранить, потом уведомить.
- 01ФормаВ браузере посетителя: скрипт, капча, блокировщик рекламы.
- 02ОбработчикТильда, WordPress, Битрикс или свой скрипт: принимает и хранит заявку.
- 03ДоставкаПочта, Telegram, CRM: письмо, бот или интеграция.
- 04ЧеловекТот, кто читает уведомления и перезванивает.
Где рвётся: симптом, звено, проверка
| Что видите | Где рвётся | Что проверить |
|---|---|---|
| Кнопка не реагирует, крутится загрузка | Браузер: упал скрипт формы | Консоль браузера (F12), телефон без VPN |
| Форма пишет ошибку | Обработчик: капча, лимит частоты, неверное поле | Текст ошибки, ответ сервера во вкладке «Сеть» |
| «Спасибо», но письма нет даже в спаме | Обработчик или доставка | Есть ли заявка в админке (на Тильде — и в папке «Спам»), пришла ли отбивка |
| Письма падают в спам | Доставка: почта не доверяет отправителю | SPF, DKIM и DMARC в заголовках письма |
| Приходит не всё | Адрес клиента в «От кого», на Тильде — ещё и региональные ограничения | Две контрольные заявки: с адресом на mail.ru и на gmail.com |
| Почта есть, Telegram молчит | Доставка: бот, чат или блокировка Telegram в России | Чат не стал супергруппой? Бот на месте? Сервер видит api.telegram.org? |
| В CRM пусто или дубли | Доставка: интеграция | Журнал ошибок интеграции, оплата CRM |
| Работало и вдруг перестало | Что-то сменилось снаружи | Что менялось в день последней заявки: хостинг, тариф, пароль ящика, плагины |
| Заявка дошла, а ответили через три дня | Человек | Кому уходят уведомления и читает ли их кто-нибудь |
Как за 10 минут найти обрыв
- Отправьте контрольную заявку, как клиент: с телефона, по мобильному интернету, без VPN. В имени — метка времени, например «Тест 14:05». Если в форме есть поле почты, отправьте две заявки: со своим адресом на mail.ru и на gmail.com. Первая пропала, а вторая дошла — смотрите раздел про поле «От кого».
- Посмотрите, что ответила форма. «Спасибо» — к шагу 3. Ошибка, вечная загрузка или тишина — откройте сайт на компьютере, нажмите F12 (на Mac — Cmd+Option+I) и отправьте форму ещё раз. Во вкладке «Консоль» (Console) видны ошибки скриптов, во вкладке «Сеть» (Network) — запрос формы. Запроса нет — форму остановил скрипт или блокировщик рекламы. Код 400–499 — сервер отказал (лимит, неверные данные), 500 и выше — сломался обработчик. Код 200 значит лишь, что сервер ответил: Contact Form 7, например, отвечает 200 и на ошибку. Итог — во вкладке «Ответ» (Response), у CF7 в поле
status:mail_sent— письмо отправлено,mail_failed— не отправлено,spam— сработал антиспам,validation_failed— поле не прошло проверку. - Найдите заявку там, где её хранит сайт: на Тильде — в разделе «Заявки» и в папке «Спам», в WordPress — в плагине Flamingo, в Битриксе — в результатах модуля «Веб-формы» (стандартная «Форма обратной связи» заявки не хранит), на своём сайте — в панели. Заявка есть — обрыв дальше, в доставке. Её нет, хотя форма сказала «спасибо», — заявку потерял обработчик, «спасибо» показывается, не дожидаясь ответа сервера, или антиспам принял заявку за бота и нарочно ответил «успешно». Сайт заявки не хранит вовсе — это стоит исправить первым.
- Проверьте почту: входящие, спам, поиск по метке. Нашли — откройте заголовки: в Gmail три точки и «Показать оригинал», в Яндекс Почте три точки и «Свойства письма», в Mail.ru три точки и «Служебные заголовки». Найдите
spf=,dkim=иdmarc=: всё, кромеpass, — повод разбираться. Письма нет нигде — ищите отбивку в ящике, через который шлёт сайт, или попросите у хостинга почтовый журнал за время теста. - Проверьте Telegram и CRM. На Тильде в карточке заявки видно, ушла ли она в каждую подключённую интеграцию, а в «Журнале ошибок» — почему не ушла.
Звено, после которого заявку никто не видел, и есть обрыв.
Форма на сайте не отправляет заявку
Самое тихое звено: посетитель нажал «Отправить», ничего не произошло, он закрыл вкладку — а у вас ни письма, ни строчки в журнале.
Упал JavaScript. В нашем замере 170 сайтов JavaScript падал на главной у 26%. После ошибки остаток скрипта не выполняется, и форма, которая от него зависит, не отправится. Посетитель ошибки не видит, владелец тоже. Обычно это след переделок: код ищет удалённый блок или подключён раньше нужной библиотеки. На WordPress вечная загрузка в форме Contact Form 7, по словам автора плагина, скорее всего значит конфликт плагинов или темы. Ещё одна причина — плагин безопасности отключил REST API, а через него CF7 отправляет форму.
Сторонние скрипты не загрузились. Квизы, виджеты и капчи грузятся с чужих серверов, и их режет блокировщик рекламы, а иногда и сеть. В июне 2025 года Cloudflare сообщил, что российские провайдеры дают загрузить только первые 16 КБ каждого файла с сайтов в его сети; задеты и Hetzner, DigitalOcean, OVH. С VPN у вас такая форма работает, у клиента без VPN — может и нет. Поэтому контрольная заявка — без VPN.
Антиспам режет живых людей. Капча, которую человек не прошёл, не даёт отправить форму — такой заявки нет нигде. Ловушка для ботов — скрытое поле или проверка скорости заполнения — может ответить «успешно» и молча выбросить заявку, чтобы бот не понял, что его распознали. Так устроено у нас и на сайте студии танцев DanceHub, где ловушка заменяет капчу. Ошибётся ловушка на человеке — он увидит «спасибо», а заявки не будет. А если сервер DanceHub не ответил, сайт вместо голой ошибки предлагает написать студии в Telegram.
Ограничение частоты. На нём споткнулись мы сами. Сайт стоит за прокси, а сервер не брал настоящий адрес посетителя из заголовка X-Forwarded-For и считал всех одним адресом: пять отправок от кого угодно закрывали форму для всех на 10 минут. Посетитель видел «Не получилось отправить», а в панели не было ничего — отказ случался до записи в базу. Если ваш сайт стоит за Cloudflare, DDoS-Guard или другим прокси, спросите разработчика, по какому адресу форма считает лимит: посетителя или прокси.
Заявки не приходят на почту или уходят в спам
Здесь форма честно отвечает «спасибо», сайт отправляет письмо, а почта получателя его не принимает или кладёт в спам.
Пока причину ищете, отметьте письма с заявками «Не спам» и добавьте отправителя в контакты: Gmail, например, не кладёт в спам письма от контактов. Если форма ставит в «От кого» адрес клиента, это не поможет — отправитель каждый раз новый.
Адрес клиента в поле «От кого»
Многие формы ставят адрес посетителя в поле «От кого» (From), чтобы кнопка «Ответить» сразу писала клиенту. Для почты это подделка: письмо «от mail.ru» пришло не с серверов Mail.ru. У mail.ru, bk.ru, list.ru и inbox.ru политика DMARC p=reject — не принимать такие письма, у rambler.ru p=quarantine — класть в спам (записи мы проверили 11 октября 2026 года). Поэтому пропадают заявки именно от клиентов с такими адресами — «приходит через раз». Gmail в требованиях к отправителям просит не подставлять адреса Gmail в From и предупреждает, что включит для них политику quarantine. SMTP Яндекса и Mail.ru такое письмо не отправят вовсе: адрес отправителя должен совпадать с ящиком.
Как правильно: в «От кого» — ящик на домене сайта, например site@вашдомен.ru, адрес клиента — в поле Reply-To. Кнопка «Ответить» при этом работает как раньше. Так советует и автор Contact Form 7.
Нет SPF и DKIM
Почтовик проверяет, вправе ли сервер слать письма от имени вашего домена. SPF — список разрешённых серверов в DNS, DKIM — подпись письма. Gmail требует хотя бы одно из двух от всех, кто пишет на личные ящики Gmail, плюс обратную DNS-запись сервера (PTR) и TLS. Без SPF и DKIM письмо может попасть в спам или получить отказ с ошибкой 5.7.26, без обратной записи — 5.7.25, а с ноября 2025 года Gmail ужесточает контроль. Mail.ru в требованиях к рассылкам просит SPF, DKIM и DMARC вместе и предупреждает, что иначе почта может не доходить частично или полностью.
Типичный случай — сайт шлёт письма со своего сервера, которого нет в SPF, и без подписи DKIM. Сервер можно внести в SPF, как прямо советует Яндекс, и настроить на нём подпись. Но проще отправлять через ящик на своём домене по SMTP: если домен подключён к почтовому сервису и его записи внесены в DNS, SPF и DKIM у таких писем уже есть.
Хостинг не отправляет почту
WordPress и многие самописные скрипты отправляют письма через PHP mail(): сервер сайта шлёт их сам, а многие хостинги для этого не настроены — так объясняет недоставку плагин WP Mail SMTP. Ошибка Could not instantiate mail function — этот случай.
На VPS и в облаках исходящие почтовые порты закрывают от спама. У Selectel закрыты 25, 465 и 587, открыть их можно по тикету, без гарантии и не для всех услуг. У Timeweb Cloud по умолчанию закрыты 25, 465, 587 и 2525, их можно открыть из панели управления. У Yandex Cloud закрыт 25, кроме отправки на серверы Яндекс Почты. На виртуальном хостинге REG.RU закрыт 25, справка велит слать через 587 с TLS.
Ограничения зависят от сети, в которой стоит сервер. Наш основной сервер и ретранслятор уведомлений размещены у разных хостингов: с первого не проходит соединение с Telegram, а второй не ходит наружу по 25 порту. Поэтому проверяют с самого сервера: nc -vz smtp.yandex.ru 465. Соединение не устанавливается — сделайте контрольный опыт: с того же сервера другой адрес, например nc -vz smtp.mail.ru 465, и тот же порт с другой машины. Закрыто для всех адресов и только с этого сервера — режет хостинг.
Что значат ошибки в отбивке
Отбитое письмо возвращается отправителю с причиной — письмом от Mail Delivery System или MAILER-DAEMON:
| Текст ошибки | Что значит |
|---|---|
sender is unauthenticated (Gmail, 5.7.26) |
У домена отправителя нет SPF и DKIM, или проверка не прошла |
not accepted due to domain's DMARC policy (Gmail, 5.7.26) |
Письмо не прошло DMARC домена из «От кого». Домен назван в тексте ошибки: чужой, например mail.ru, — форма подставляет адрес клиента; ваш — письмо не прошло SPF и DKIM |
doesn't have a PTR record (Gmail, 5.7.25) |
У IP сервера нет обратной записи, её прописывает хостер |
dynamic IP or generic DNS PTR-records (Mail.ru, 550) |
Обратная запись сервера похожа на запись домашнего подключения: попросите хостера прописать в ней имя вашего домена |
very low reputation of the sending domain (Gmail, 5.7.1) |
Плохая репутация домена отправки, например технического домена хостинга |
550 spam message rejected (Mail.ru) |
Письмо остановил спам-фильтр |
Ошибки входа в ящик в отбивку не попадают, они видны в журнале плагина или скрипта: 535 5.7.8 Error: authentication failed у Яндекса, Application password is REQUIRED у Mail.ru. Сайт должен входить по паролю приложения: с обычным паролем Яндекс и Mail.ru внешние программы не пускают. 451 Ratelimit exceeded у Mail.ru — ящик превысил часовой лимит отправки.
Письмо целиком проверит mail-tester.com: временно поставьте его адрес получателем формы и отправьте заявку — сервис оценит письмо, сервер и IP отправителя по шкале до 10. Бесплатно — три теста в сутки. Результат неделю видит любой, кто знает адрес теста, так что данные настоящих клиентов туда не отправляйте. Записи MX, SPF и DMARC вашего домена покажет наша «Проверка сайта». DKIM по одному домену не проверить: нужно имя ключа, селектор. Он стоит в заголовке DKIM-Signature письма с сайта, в теге s=; нет такого заголовка — письмо не подписано. Итог проверки — dkim= из шага 4.
Тильда, WordPress, Битрикс: где искать заявку
Не приходят заявки с Тильды
Тильда хранит все заявки в разделе «Заявки», даже если почта и CRM их не получили, — по умолчанию месяц. Там же «Журнал ошибок» с текстом каждой ошибки и папка «Спам». Если раздел пуст совсем, проверьте, не выключено ли хранение: Настройки сайта → Формы → Общие настройки форм. Типичные обрывы:
- Приёмщик не отмечен в форме. Интеграцию мало создать в Настройках сайта → Формы: её нужно отметить в «Контенте» блока и переопубликовать страницу, а если форма в шапке или подвале — все страницы (порядок в справке Тильды). В журнале это выглядит как
Data didn't send because data receivers… were not active. - Почта не подтверждена. Приёмщик email заработает только после клика по ссылке в письме от
noreply@tilda.ws. Подключал подрядчик — письмо пришло вам: поищите его в папках «Спам» и «Рассылки» (справка). - Заявки уходят в «Спам». Причина — в карточке заявки: «Системные данные» → «Причина». Главных две. Региональные ограничения (Настройки сайта → Формы → Общие настройки форм): сайт, открытый только для России, теряет клиентов из Беларуси и с зарубежным VPN. И ручная пометка: после неё 7 дней в спам уходят все заявки с того же IP, а за одним IP мобильного оператора много абонентов. Кнопка «Не спам» возвращает заявку и снимает блокировку (справка).
- Не оплачен тариф. Отключаются свой домен и передача данных из форм, заявки остаются только в «Заявках» (справка).
- Письма удаляют непрочитанными. Почта начинает считать их спамом, и Тильда может отключить приёмщик. Добавьте
noreply@tilda.wsв контакты. И учтите лимиты: больше 100 заявок в сутки на ящик Яндекса или Mail.ru — уже возможны задержки, а при большем потоке часть писем не дойдёт. - Заказ ждёт оплату. Корзина по умолчанию передаёт данные только после оплаты: нет статуса от платёжной системы — заказ висит «Ожидает оплаты».
- Страница открывается не по тому адресу, что указан в настройках формы.
Что происходит с формами, если сайт выгрузили с Тильды на свой хостинг, — в статье о переносе.
Не приходят письма с сайта на WordPress
По умолчанию WordPress шлёт почту через PHP mail() от адреса wordpress@ваш-домен, и, как сказано в коде самого WordPress, некоторые хостинги блокируют отправку с несуществующего адреса. То, что функция отработала без ошибок, не значит, что письмо дошло. Что сделать:
- поставить WP Mail SMTP и отправлять через ящик на своём домене: в бесплатной версии есть тестовое письмо и журнал ошибок отправки;
- в Contact Form 7 смотреть на цвет рамки у сообщения: красная — письмо не ушло, оранжевая — сработал антиспам, зелёная — функция отправки отработала, а письмо потерялось дальше, часто в спам-фильтре. Текст при красной и оранжевой по умолчанию один и тот же;
- поставить Flamingo: сам CF7 заявки не хранит.
Не приходят письма с сайта на Битриксе
Сначала проверьте, что почтовый шаблон формы активен: Настройки → Настройки продукта → Почтовые и СМС события → Почтовые шаблоны. По неактивному шаблону письмо не формируется.
Если шаблон активен, а писем нет, дальше работа для разработчика. Письмо встаёт в очередь — таблицу b_event — и уходит в конце обработки страницы, обычно той же, где отправили форму. Статус — в поле SUCCESS_EXEC: Y — отправлено, F — не отправлено, 0 — не нашлось активного шаблона, N — ещё не обрабатывалось. Письма копятся со статусом N — проверьте /bitrix/php_interface/dbconn.php: при включённом BX_CRONTAB_SUPPORT очередь разбирает только cron, и без задания cron письма не уходят. Битрикс пишет об этом в Настройки → Инструменты → Проверка сайта: «Есть ошибки при отправке системных почтовых сообщений». Чинится заданием cron по официальному уроку или выключением режима (документация).
Не приходят уведомления в Telegram
Почта хотя бы присылает отбивку, Telegram — ничего. Bot API на ошибку отвечает ok: false с причиной в поле description, и если скрипт это не записывает, уведомление пропадает без следа.
Telegram в России блокируют. С февраля 2026 года Роскомнадзор замедлял Telegram, весной дошло до блокировки (РБК, Коммерсантъ). Страдают два звена. Сервер в российском дата-центре может не достучаться до api.telegram.org, как наш: соединение открывалось, но защищённое рукопожатие не проходило, и уведомления перестали доходить. Теперь они идут через отдельный прокси-узел. А менеджер без VPN может не увидеть уведомление на телефоне. Работаете в России и шлёте заявки только в Telegram — продублируйте их в почту; Тильда умеет слать заявки и в MAX.
Проверка с сервера: curl -m 10 -sSI https://api.telegram.org, для контроля — тот же запрос к https://api.github.com. Второй отвечает, а первый падает с ошибкой (таймаут или сброс соединения) — сервер не достаёт именно до Telegram.
Чат стал супергруппой. Когда группу переводят в супергруппу (иногда это происходит само, при смене настроек), у чата меняется идентификатор. Бот шлёт по старому chat_id и получает ошибку, в которой Telegram сообщает новый, в поле migrate_to_chat_id.
Бота удалили или заблокировали. Сообщения перестают уходить. И бот не может написать человеку первым: новый менеджер должен сам открыть бота и нажать Start.
Заявки не приходят в CRM или приходят дважды
Интеграция ломается на стороне CRM, а форма об этом не узнаёт. Смотрите журнал ошибок интеграции — на Тильде это тот же «Журнал ошибок».
- Кончилась оплата. amoCRM перестаёт принимать данные, когда кончилась подписка. Битрикс24 принимает их через REST только на коммерческом тарифе — в журнале Тильды это
ACCESS_DENIED: REST is available only on commercial plans. - В CRM что-то поменяли: удалили поле или воронку, сменили тип поля — интеграция ссылается на то, чего больше нет. Поля, которые создала интеграция Тильды с amoCRM, можно только переименовывать, а поля типа select и checkbox не примут значение, которого нет в их списке (справка Тильды).
- Приёмщик отвечает слишком долго. Вебхук Тильды ждёт ответа 5 секунд, потом пишет
Operation timed out after 5000 millisecondsи пробует ещё дважды, раз в минуту. - Заявка есть, но не там: в другой воронке, в сделках вместо лидов. Поищите по телефону из контрольной заявки.
Дубли. Сравните время и источник двух сделок. Разница в секунды или минуту — человек нажал дважды или не дождался «спасибо»; Тильда такие одинаковые повторы сама не пересылает и пишет в журнал «Дублирование данных», это не поломка. Разные источники — заявка идёт в CRM двумя путями, например интеграцией и письмом, из которого CRM тоже делает сделку: один путь отключите. Третья причина — повторные попытки: вебхук, не дождавшись ответа, шлёт заявку снова, и медленный приёмщик создаёт вторую сделку. Повтор с тем же номером заявки (у Тильды — поле tranid) не должен создавать новую сделку. Сначала проверьте встроенный контроль дублей в CRM; если его не хватает, нужна прослойка между сайтом и CRM — это задача интеграции.
Сначала сохранить, потом уведомить
Главное правило: заявка сначала записывается туда, где её не потеряют, и только потом уходит в почту, Telegram и CRM. Уведомление — копия. Не дошла копия — оригинал на месте.
Так устроено у нас: заявка с формы сначала ложится в базу на нашем сервере, потом уходит уведомление в Telegram. Если уведомление не дошло, заявка видна в панели с отметкой, что уведомление не ушло. Когда соединение с Telegram оборвалось, это и сработало: уведомления не доходили, а заявки оставались в базе.
На Тильде заявки и так сохраняются, остаётся поднять срок хранения: до 90 дней в Настройках сайта → Формы → Общие настройки форм, а дольше — только во внешнем приёмщике вроде Google Таблиц. На WordPress с Contact Form 7 поставьте Flamingo. На своём сайте пишите заявку в базу до любых отправок и показывайте список того, что не ушло: это небольшая доработка, а не новый проект.
И заведите второй канал. Если заявки идут только в Telegram, продублируйте их в почту. Если только на почту — в мессенджер, который у ваших менеджеров открывается без VPN, или в таблицу.
Как узнать о поломке раньше, чем по тишине
Без проверок о поломке узнают по тишине, и не сразу. Две привычки сокращают это до дня или недели.
Сверка с Метрикой. В Яндекс Метрике есть автоматическая цель «Отправка формы»: на новых счётчиках она включена по умолчанию, на старых — опцией «Автоматические цели» в настройках счётчика. Раз в день или в неделю сравнивайте число достижений цели с числом пришедших заявок. Точного совпадения не ждите: цель засчитывает и неудачные попытки, а посетителей с блокировщиками не видит. Но если цель показывает 15, а заявок пришло 4, ищите обрыв. Метрика видит только форму с тегом form и кнопкой type="submit", формы на div она не отслеживает. На своём сайте точнее JavaScript-цель на успешный ответ сервера — так сделано у нас.
Контрольная заявка по расписанию. Скрипт раз в день отправляет форму с пометкой «ТЕСТ» и проверяет, дошла ли она до почты, CRM и Telegram; если нет — шлёт тревогу в другой канал. Это ловит поломку в тот же день. Без разработчика можно проще: напоминание в календаре и одна заявка руками каждый понедельник.
Когда справитесь сами, а когда нужен разработчик
Сами, без разработчика. На Тильде — почти всё: отметить приёмщики и переопубликовать страницы, подтвердить почту, разобрать «Спам» и региональные ограничения, оплатить тариф, подключить второй приёмщик, прочитать журнал ошибок. На WordPress — WP Mail SMTP и Flamingo, ящик на своём домене с паролем приложения, адрес клиента в Reply-To вместо «От кого»: это вечер с инструкцией. В Битриксе — проверить, что почтовый шаблон формы активен. Записи SPF, DKIM и DMARC даёт почтовый сервис домена, их вносят в настройки DNS — обычно у регистратора.
С разработчиком. Форма на своём коде, которая ставит адрес клиента в «От кого»; сервер с закрытыми портами или в России без доступа к Telegram; интеграция с CRM, которая молча падает или плодит дубли; очередь писем в Битриксе; JavaScript, сломанный обновлениями; лимит частоты за прокси.
Подрядчику или в поддержку хостинга сразу пришлите адрес страницы, время контрольной заявки, что ответила форма, текст отбивки целиком, заголовки письма, способ отправки почты (PHP mail(), SMTP какого ящика или почтовый сервис) и что менялось перед поломкой. Тогда ответят по существу, а не «обратитесь к разработчику».
Вставьте адрес страницы с формой в нашу «Проверку сайта»: она покажет скрипты и файлы, которые не загружаются, найдёт формы заявок и прочитает почтовые записи домена. Ошибки JavaScript, которые возникают уже в браузере, она не видит, формы не отправляет и доставку писем не проверяет — это делает только контрольная заявка.
Нашли обрыв, а чинить некому — пришлите нам то же, что подрядчику. Скажем, на каком звене рвётся и сколько стоит починить.