Блог

Как подключить формы на статическом сайте после переноса

18 июля 2026 г.·9 мин чтения·Марк

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

Хорошая новость — форму на статическом сайте починить несложно. Разберём все рабочие способы и как выбрать подходящий под ваш хостинг. Если интересно, почему форма вообще ломается при экспорте, — это отдельная тема в статье почему форма не переносится с Craftum и mottor. Здесь — только практика: как заставить заявки снова приходить.

Попробуйте перенос бесплатно

Одна страница — бесплатно. Оцените результат за 1 минуту.

Перенести сайт

Коротко: всё упирается в один вопрос

Форме нужно, чтобы кто-то на сервере принял отправленные данные и переслал их вам. Вариантов ровно два, и выбор зависит только от хостинга:

  • Хостинг с PHP (Timeweb, Beget, REG.RU, SprintHost и большинство обычных) — заявки принимает небольшой PHP-скрипт прямо на вашем сайте. Ничего стороннего не нужно.
  • Хостинг без PHP (Netlify, Vercel, Cloudflare Pages, GitHub Pages) — PHP там не выполняется, поэтому заявки принимает внешний сервис форм или serverless-функция площадки.

Дальше — по каждому пути.

Путь 1. Хостинг с PHP: готовый обработчик

Это самый простой случай. Если сайт перенесён через Webrelay, рядом с index.html уже лежит файл form-handler.php — маленький обработчик, к которому подключены все формы сайта. Он умеет:

  • принять поля формы и отправить их вам на почту;
  • продублировать заявку в Telegram, если подключите уведомления;
  • сохранить копию каждой заявки в защищённый файл на хостинге — чтобы ничего не потерялось, даже если письмо вдруг не дойдёт.

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

Если вы переносили сайт вручную и обработчика у вас нет, его придётся написать самому: скрипт, который принимает $_POST, чистит поля от лишнего и отправляет письмо. Это несложно, но легко ошибиться в мелочах — например, забыть про защиту от подстановки заголовков в письмо. Готовый обработчик эти грабли уже обходит.

Путь 2. Хостинг без PHP: внешний сервис или функция

Бесплатные статические площадки — Netlify, Vercel, Cloudflare Pages, GitHub Pages — PHP не выполняют. Готовый form-handler.php там просто не запустится. Зато у каждого варианта есть свой способ принимать заявки.

Formspree или Getform — работают везде

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

Netlify Forms — если вы на Netlify

Если сайт лежит на Netlify, отдельный сервис не нужен: добавьте форме атрибут netlify, и платформа сама начнёт собирать заявки в панели. Просто и бесплатно в рамках лимита, но привязывает вас к Netlify.

Serverless-функция — если хочется всё своё

Vercel и Cloudflare Pages умеют запускать функции на JavaScript. Можно написать маленький обработчик, который принимает форму и, например, шлёт заявку в Telegram или на почту. Гибко, без сторонних сервисов, но требует навыков — это уже программирование.

Как переподключить форму: шаги

Независимо от выбранного пути, механика одинаковая — форму нужно направить на новый адрес приёма.

Шаг 1: найдите форму в HTML

Откройте страницу с формой в редакторе и найдите тег <form>. Если сайт перенесён через Webrelay, форма уже указывает на /form-handler.php — на PHP-хостинге менять ничего не нужно, только прописать почту в самом обработчике.

Шаг 2: задайте адрес приёма

Для внешнего сервиса поменяйте action на выданный им адрес и оставьте method="POST". Убедитесь, что у каждого поля есть атрибут name — по нему сервис распознаёт, где имя, где телефон, где сообщение.

Шаг 3: проверьте кнопку

Кнопка должна быть настоящей <button type="submit"> или отправлять форму по-настоящему. Если после переноса вместо «спасибо» показывается голый JSON — это признак, что кнопку заставили вызвать отправку в обход события submit. Как это лечится, разобрано в статье почему форма не переносится.

Шаг 4: отправьте тестовую заявку

Заполните форму сами и убедитесь, что письмо пришло. Это единственная надёжная проверка — глазами по коду форму не проверить.

Что не забыть

Защита от спама. Как только форма заработает, на неё начнут писать боты. Минимальная защита — скрытое поле-ловушка (honeypot): человек его не видит и не заполняет, а бот заполняет — такие заявки отсекаются. В готовом form-handler.php эта проверка уже есть; у внешних сервисов — в их настройках.

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

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

Разобраться со всеми задачами первого дня на новом хостинге — формы, аналитика, почта, домен — поможет статья что делать после переноса. А если не хотите возиться с формами вручную, перенос через сервис подключает обработчик автоматически.

Часто задаваемые вопросы

Почему форма на статическом сайте не отправляет заявки?

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

Нужен ли PHP-хостинг, чтобы формы работали?

Для готового form-handler.php — да, но подойдёт любой обычный хостинг (Timeweb, Beget, REG.RU): PHP там есть по умолчанию. Если хостинг без PHP (Netlify, Vercel, Cloudflare), форму подключают через Formspree, Netlify Forms или serverless-функцию.

Как принимать заявки без своего бэкенда?

Через сторонний сервис форм — Formspree или Getform. Регистрируетесь, получаете адрес, меняете у формы action на него. Заявки идут вам на почту через их сервер, программировать ничего не нужно. Работает на любом статическом хостинге.

Куда приходят заявки после переноса через Webrelay?

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

Форма отправляется, но вместо «спасибо» показывается JSON — что делать?

Это значит, что кнопка отправляет форму в обход события submit, и подтверждение не показывается. Форму нужно отправлять так, будто нажали настоящую кнопку. Разбор — в статье почему форма не переносится с Craftum и mottor.

Будет ли форма ловить спам?

Да, боты находят любые открытые формы. Минимум — скрытое поле-ловушка (honeypot), которое отсекает автозаполнение. В готовом обработчике оно уже встроено; у внешних сервисов включается в настройках.

Читайте также