Мобильная оптимизация

Проверить формы на мобильных

Важно

Зачем проверять формы на мобильных

Форма обратной связи — конверсионная точка сайта. Пользователь прошёл весь путь: нашёл сайт в поиске, прочитал контент, принял решение обратиться. Осталось заполнить форму. И если форма на мобильном неудобна — поле мелкое, клавиатура неподходящая, кнопка за пределами экрана — пользователь уходит. Конверсия потеряна на последнем шаге.

По данным из проектов, которые я вёл, после оптимизации форм для мобильных конверсия вырастала на 15-30%. Это не SEO-фактор напрямую, но конверсия — конечная цель всей воронки. Яндекс косвенно учитывает удобство форм через поведенческие факторы: если пользователь долго мучается с формой и уходит — это негативный сигнал.

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

Пошаговая инструкция

Шаг 1. Проверьте размер полей формы

Минимальная высота поля ввода (input, textarea) — 44px по рекомендациям Apple, 48px по рекомендациям Google. На практике я рекомендую 48-52px — это обеспечивает комфортное нажатие и достаточно места для текста.

input[type="text"],
input[type="email"],
input[type="tel"],
textarea,
select {
  min-height: 48px;
  padding: 12px 16px;
  font-size: 16px;          /* важно! 16px предотвращает зум на iOS */
  border: 1px solid #ccc;
  border-radius: 4px;
  width: 100%;
  box-sizing: border-box;
}

textarea {
  min-height: 120px;
  resize: vertical;
}

Критически важно: размер шрифта в input не менее 16px. На iOS Safari при фокусе на input с font-size менее 16px браузер автоматически масштабирует (зумит) страницу к полю ввода. Это раздражающий побочный эффект: страница масштабируется, пользователь теряет контекст, после заполнения нужно вручную отзумить обратно. Решение простое — font-size: 16px для всех полей.

Шаг 2. Укажите правильные input types

Атрибут type определяет, какая клавиатура откроется на мобильном устройстве. Правильный type — это удобство ввода без переключения клавиатуры:

  • type="tel" — для номера телефона. Открывает цифровую клавиатуру с +, *, #. Пользователю не нужно переключаться с букв на цифры.
  • type="email" — для email. Клавиатура содержит @ и . на видном месте. Автоматическая валидация формата email.
  • type="number" — для числовых значений (количество, ИНН). Открывает цифровую клавиатуру.
  • type="url" — для URL сайта. Клавиатура содержит /, .com, :.
  • type="text" — для имени, комментария и всего остального. Стандартная клавиатура.

Пример формы с правильными типами:

<form action="/submit" method="post">
  <label for="name">Ваше имя</label>
  <input type="text" id="name" name="name"
    autocomplete="name" required>

  <label for="phone">Телефон</label>
  <input type="tel" id="phone" name="phone"
    autocomplete="tel" placeholder="+7 (___) ___-__-__" required>

  <label for="email">Email</label>
  <input type="email" id="email" name="email"
    autocomplete="email">

  <label for="message">Сообщение</label>
  <textarea id="message" name="message" rows="4"></textarea>

  <button type="submit">Отправить заявку</button>
</form>

Шаг 3. Добавьте autocomplete

Атрибут autocomplete позволяет браузеру автоматически заполнять поля из сохранённых данных пользователя. На мобильных это экономит время и снижает вероятность ошибки:

  • autocomplete="name" — полное имя.
  • autocomplete="given-name" — имя.
  • autocomplete="family-name" — фамилия.
  • autocomplete="tel" — телефон.
  • autocomplete="email" ��� email.
  • autocomplete="organization" — название компании.
  • autocomplete="street-address" — адрес.
  • autocomplete="postal-code" — индекс.

Браузер предложит автозаполнение, если раньше пользователь вводил эти данные на других сайтах. Один тап — и все поля заполнены. Это значительно увеличивает completion rate формы.

Шаг 4. Добавьте label для каждого поля

Каждое поле формы должно иметь видимый <label>, связанный с полем через атрибут for. Это важно для:

  • Доступности. Screen reader озвучивает label при фокусе на поле. Без label пользователь с нарушениями зрения не понимает, что вводить.
  • Удобства. Тап по label фокусирует соответствующее поле. Увеличивает площадь touch target.
  • Контекста. Placeholder исчезает при начале ввода. Если нет label — пользователь забывает, что нужно ввести в это поле.

Не используйте placeholder вместо label. Placeholder — это подсказка формата (+7 (___) ___-__-__), а не название поля. Label и placeholder — разные элементы с разными функ��иями.

Шаг 5. Оптимизируйте кнопку отправки

Кнопка отправки формы — последний барьер перед конверсией. На мобильных она должна быть:

  • Достаточно большой. Минимум 48px высота, оптимально — 52-56px. Ширина — 100% контейнера формы (на мобильных кнопка на всю ширину удобнее узкой).
  • Контрастной. Визуально выделена цветом, отличающимся от фона и полей. Стандарт: яркий акцентный цвет (синий, зелёный, оранжевый).
  • С понятным текстом. Не «Отправить» (отправить что?), а «Отправить заявку», «Записаться на консультацию», «Получить расчёт». Конкретика повышает конверсию.
  • Видимой без скролла. Если форма длинная — пользователь может не увидеть кнопку. Рассмотрите фиксированную кнопку внизу экрана для длинных форм.
button[type="submit"] {
  display: block;
  width: 100%;
  min-height: 52px;
  padding: 14px 24px;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  background: #0066cc;
  border: none;
  border-radius: 6px;
  cursor: pointer;
}

button[type="submit"]:active {
  background: #0052a3;  /* отклик на нажатие */
}

Шаг 6. Минимизируйте количество полей

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

Для сайта услуг обычно достаточно:

  • Имя — чтобы обратиться к клиенту.
  • Телефон — для связи.
  • Сообщение (опционально) — если пользователь хочет уточнить задачу.

Три поля — оптимум. Каждое дополнительное поле снижает конверсию на 5-10%. Email, название компании, адрес сайта, ИНН — всё это можно уточнить при звонке. Не превращайте форму заявки в анкету.

Шаг 7. Настройте валидацию и обратную связь

На мобильных валидация формы особенно важна — пользователь не видит всех полей одновременно (часть скрыта клавиатурой). Рекомендации:

  • Валидация в реальном времени. Показывайте ошибку сразу после выхода из поля (blur), а не после нажатия «Отправить». Пользователь видит ошибку, пока поле ещё в контексте.
  • Понятные сообщения об ошибках. Не «Ошибка валидации поля email», а «Введите корректный email, например: name@example.ru».
  • Визуальная индикация. Красная рамка для поля с ошибкой, зелёная — для корректно заполненного. Текст ошибки под полем, а не в alert().
  • Скролл к первой ошибке. Если при отправке обнаружены ошибки — автоматически скроллите страницу к первому полю с ошибкой и фокусируйте его.
  • Подтверждение отправки. После успешной отправки — чёткое сообщение: «Заявка отправлена! Я перезвоню в течение 30 минут.» Не перенаправляйте на другую страницу — это сбивает мобильного пользователя.

Шаг 8. Протестируйте на реальных устройствах

Откройте форму на смартфоне и пройдите полный путь заполнения:

  1. Тап на первое поле — клавиатура открылась, поле видно над клавиатурой?
  2. Введите имя — переключение на следующее поле удобно (Tab, Next на клавиатуре)?
  3. Поле телефона — открылась цифровая клавиатура (type=»tel»)?
  4. Автозаполнение предложено (autocomplete)?
  5. При скролле вниз кнопка «Отправить» видна?
  6. Нажали «Отправить» — форма отправилась, подтверждение отобразилось?
  7. Если ошибка — сообщение понятное, поле с ошибкой выделено?

Тестируйте на Android (Chrome) и iPhone (Safari) — поведение клавиатуры и автозаполнения отличается.

Типичные ошибки

  • Font-size менее 16px в input. На iOS Safari страница зумится при фокусе на поле с маленьким шрифтом. Пользователь теряет контекст, видит только увеличенное поле. Решение: font-size: 16px для всех полей ввода.
  • Неправильный input type. Поле телефона с type=»text» — пользователь вынужден переключать клавиатуру на цифры. Поле email с type=»text» — нет @ на клавиатуре. Используйте правильные типы.
  • Placeholder вместо label. Placeholder исчезает при вводе. Пользователь заполнил 3 поля, вернулся к первому — не помнит, что там должно быть. Всегда добавляйте видимый label.
  • Слишком много полей. Форма из 8 полей на мобильном — это 8 открытий клавиатуры, 8 переключений между полями. Конверсия падает катастрофически. Минимизируйте до 2-3 обязательных полей.
  • ��нопка «Отправить» за пределами видимой области. Форма длинная, кнопка внизу, клавиатура закрывает половину экрана. Пользователь не видит кнопку и не понимает, как отправить форму.
  • Отсутствие подтверждения отправки. Пользователь нажал «Отправить» — ничего не произошло (или кажется, что ничего). Нет анимации загрузки, нет сообщения «Отправлено». Пользователь нажимает повторно — отправляет дубль.
  • Валидация только через alert(). Всплывающее окно «Заполните обязательные поля» на мобильных выглядит архаично и не указывает, какое именно поле заполнено неверно.

Что проверить в ито��е

  • Все поля формы имеют высоту не менее 48px и font-size не менее 16px.
  • Указаны правильные input types: tel для телефона, email для email, text для имени.
  • Добавлен атрибут autocomplete для всех полей (name, tel, email).
  • Каждое поле имеет видимый label, связанный через for/id.
  • Placeholder используется как подсказка формата, а не как замена label.
  • Кнопка отправки достаточно большая (минимум 48px), контрастная, с понятным текстом.
  • Количество полей минимизировано — только необходимые для обработки заявки.
  • Валидация работает в реальном времени, сообщения об ошибках понятны.
  • После отправки отображается подтверждение.
  • Форма протестирована на реальных устройствах (Android, iPhone) — от фокуса до отправки.
  • На iOS нет автоматического зума при фокусе на поле (font-size: 16px).

Нужна помощь с внедрением?

Проведу аудит вашего сайта и внедрю рекомендации. Результат — чистая техническая база и план роста.

Обсудить проект

Кто ведёт проект

Александр Тригуб — частный SEO-специалист. В поисковом маркетинге с 2010 года, предприниматель с 2001-го. В SEO пришёл из собственного бизнеса — знаю, как устроены продажи не из учебников, а из собственной выручки и расходов.

  • Специализация: медицина, B2B, e-commerce и локальные услуги — ниши, где каждый лид стоит дорого.
  • Подтверждённый опыт: 500+ видео-аудитов в разных тематиках, 1092 заказа (рейтинг 4.9 / 5). Отзывы · Видео-аудиты.
  • Профили с отзывами: 728 отзывов на Kwork (4.9★) · Profi.ru (5.0★) · ORCID 0009-0009-0106-6136.
  • Формат: работаю напрямую, один специалист на проект — без менеджеров и субподрядных цепочек.
  • Отчётность: KPI по лидам и деньгам. Ежемесячный план/факт, а не PDF на 50 страниц.
15+лет в маркетинге
500+видео-аудитов
1092заказов
4.9★728 отзывов