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

Оптимизировать мобильное меню

Важно

Зачем оптимизировать мобильное меню

Мобильное меню — основной элемент навигации для 60-70% пользователей сайта. Если меню неудобное, пользователь не найдёт нужную страницу и уйдёт. Это не теория — я вижу по данным Яндекс Метрики: на сайтах с неудобным мобильным меню показатель отказов на 15-25% выше, чем на сайтах с продуманной навигацией.

Для SEO мобильное меню критично по двум причинам. Первая: поведенческие факторы. Если пользователь не может перейти на страницу услуги из меню — он не перейдёт. Время на сайте падает, глубина просмотра падает, конверсия падает. Вторая: индексация. Яндекс и Google индексируют мобильную версию сайта (mobile-first indexing). Если страница не доступна из мобильного меню — она получает меньше внутреннего веса, а в крайних случаях может быть хуже проиндексирована.

Отдельная проблема — подменю (вложенные пункты). На десктопе подменю раскрывается при наведении мыши. На мобильных наведения нет — нужен тап. Многие темы WordPress просто скрывают подменю на мобильных, оставляя только пункты первого уровня. В результате пользователь не видит подразделы: отдельные услуги, категории товаров, разделы блога. Это недопустимо.

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

Шаг 1. Проверьте текущее состояние мобильного меню

Откройте сайт на реальном мобильном устройстве (не в DevTools — это симуляция, не реальный опыт). Проверьте:

  • Иконка бургер-меню видна и легко нажимается? Минимальный размер — 44x44px по рекомендациям Apple, 48x48px по рекомендациям Google.
  • Меню открывается без задержки? Если есть анимация — она не должна длиться дольше 300ms.
  • Все пункты первого уровня видны? Не скрыты, не обрезаны.
  • Подменю (второй уровень) доступно? Есть ли иконка раскрытия (шеврон, плюс, стрелка)?
  • Можно ли перейти на родительский пункт И раскрыть его подменю? Нажатие на «Услуги» — переходит на /uslugi/, нажатие на шеврон — раскрывает список услуг. Это два разных действия.
  • Меню закрывается при нажатии вне его области? Есть крестик закрытия?
  • При открытом меню фон затемнён (overlay) — чтобы было понятно, что меню поверх контента?

Шаг 2. Реализуйте бургер-меню с раскрывающимися подпунктами

Стандартная схема мобильного меню для сайтов услуг и интернет-магазинов:

  • Бургер-иконка (три горизонтальные линии) — в шапке, справа или слева. По тапу открывает выдвижную панель.
  • Выдвижная панель — полноэкранная или занимающая 80% ширины экрана. Содержит все пункты меню первого уровня.
  • Раскрывающиеся подменю — рядом с каждым родительским пунктом иконка (шеврон вниз или плюс). По тапу на иконку подменю раскрывается с анимацией.
  • Кнопка закрытия — крестик в верхнем углу панели.
  • Оверлей — затемнение фона при открытом меню. По тапу на оверлей — меню закрывается.

Пример CSS для раскрывающегося подменю:

/* Мобильное подменю — скрыто по умолчанию */
.mobile-menu .sub-menu {
  display: none;
  padding-left: 16px;
}

/* Раскрытое подменю */
.mobile-menu .sub-menu.is-open {
  display: block;
}

/* Иконка раскрытия */
.mobile-menu .menu-item-has-children > .submenu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: none;
  border: none;
  cursor: pointer;
}

/* Поворот шеврона при раскрытии */
.mobile-menu .menu-item-has-children.is-open > .submenu-toggle svg {
  transform: rotate(180deg);
}

Важно: разделяйте ссылку на родительский раздел и кнопку раскрытия подменю. Нажатие на текст «Услуги» — переход на страницу /uslugi/. Нажатие на шеврон — раскрытие списка подуслуг. Если тап на «Услуги» только раскрывает подменю без возможности перейти на страницу раздела — пользователь теряет доступ к родительской странице.

Шаг 3. Обеспечьте доступность (a11y)

Мобильное меню должно быть доступно для пользователей с ограниченными возможностями и для вспомогательных технологий (screen readers). Требования:

  • Бургер-кнопка: aria-label="Открыть меню", aria-expanded="false" (меняется на true при открытии).
  • Панель меню: role="navigation", aria-label="Основное меню".
  • Кнопки раскрытия подменю: aria-expanded="false", aria-controls="submenu-id".
  • Фокус: при открытии меню фокус перемещается на первый пункт. При закрытии — возвращается на бургер-кнопку. Tab перемещает фокус по пунктам меню, Escape закрывает меню.

Пример HTML:

<button class="burger-btn" aria-label="Открыть меню"
  aria-expanded="false" aria-controls="mobile-nav">
  <span class="burger-icon"></span>
</button>

<nav id="mobile-nav" class="mobile-menu" role="navigation"
  aria-label="Основное меню" hidden>
  <ul>
    <li class="menu-item-has-children">
      <a href="/uslugi/">Услуги</a>
      <button class="submenu-toggle" aria-expanded="false"
        aria-controls="submenu-uslugi" aria-label="Раскрыть подменю Услуги">
        <svg>...шеврон...</svg>
      </button>
      <ul id="submenu-uslugi" class="sub-menu" hidden>
        <li><a href="/uslugi/seo-audit/">SEO-аудит</a></li>
        <li><a href="/uslugi/seo-prodvizhenie/">SEO-продвижение</a></li>
      </ul>
    </li>
  </ul>
</nav>

Шаг 4. Настройте Touch Targets

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

  • Минимальный размер touch target: 48x48px (рекомендация Google). Apple рекомендует 44x44px. Придерживайтесь 48px для надёжности.
  • Минимальный отступ между touch targets: 8px. Если два элемента расположены вплотную — пользователь будет промахиваться.
  • Высота пунктов меню: минимум 48px. Оптимально — 52-56px. Это обеспечивает комфортное нажатие даже для крупных пальцев.

CSS для пунктов мобильного меню:

.mobile-menu a {
  display: block;
  padding: 14px 16px;      /* итоговая высота ~48-52px */
  min-height: 48px;
  font-size: 16px;
  line-height: 1.4;
  text-decoration: none;
  color: #333;
  border-bottom: 1px solid #eee;
}

Шаг 5. Не скрывайте важные пункты

Частая ошибка — на мобильных скрывают пункты меню, которые «не помещаются». Не делайте этого. Каждый скрытый пункт — это потерянный доступ к странице. Если пунктов много:

  • Используйте вертикальный скролл внутри панели меню — мобильное меню может быть длинным, пользователь привык скроллить.
  • Сгруппируйте пункты логически — если 20+ пунктов, разбейте на категории с подменю.
  • Приоритизируйте порядок — самые важные пункты (услуги, контакты, блог) в начале, второстепенные — ниже.

Обязательно сохраните в мобильном меню: все основные разделы, подразделы с раскрывающимися подменю, контакты (телефон с click-to-call), CTA (кнопка «Заказать», «Оставить заявку»).

Шаг 6. Добавьте CTA и контактную информацию

Мобильное меню — отличное место для конверсионных элементов:

  • Кнопка звонка (click-to-call). Ссылка tel:+7XXXXXXXXXX — один тап, и пользователь звонит. Разместите в верхней части меню.
  • Кнопка заявки. Ведёт на форму обратной связи или открывает попап с формой. Визуально выделена цветом.
  • Мессенджеры. Иконки Telegram, WhatsApp с прямыми ссылками на чат.

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

DevTools в Chrome — это симуляция. Реальный тест — на реальном устройстве. Проверьте:

  • Смартфон с экраном 360px (Samsung Galaxy, Xiaomi Redmi — массовые модели).
  • iPhone (375px, 390px) — своя специфика касания и скролла.
  • Планшет (768px) — меню может работать иначе, чем на смартфоне.
  • Проверьте с медленным соединением (3G) — меню должно открываться без задержки, потому что оно уже загружено в DOM.

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

  • Скрытые подменю на мобильных. CSS .sub-menu { display: none !important; } в мобильной версии. Пользователь не видит подразделы, не может перейти на конкретную услугу. Подменю должно быть доступно через раскрывающийся аккордеон.
  • Тап на родительский пункт только раскрывает подменю. Нажатие на «Услуги» раскрывает подменю, но не даёт перейти на страницу /uslugi/. Решение: разделить ссылку и кнопку раскрытия — текст ведёт на страницу, шеврон раскрывает подменю.
  • Слишком маленькие touch targets. Пункты меню высотой 30px — пользователь промахивается, нажимает не тот пункт. Минимум 48px.
  • Меню без кнопки закрытия. Пользователь открыл меню и не может его закрыть (нет крестика, нет оверлея). Единственный способ — нажать «Назад» в браузере. Это ломает UX.
  • JavaScript-зависимое меню без fallback. Если JavaScript не загрузился (медленное соединение, блокировщик скриптов) — меню не работает совсем. Обеспечьте базовую навигацию через HTML/CSS: <details>/<summary> или чекбокс-хак.
  • Меню перекрывает весь контент без возможности скролла. Длинное меню не помещается на экран, но скролл заблокирован. Пользователь не может добраться до нижних пунктов. Обеспечьте скролл внутри панели меню: overflow-y: auto; max-height: 100vh;
  • Отсутствие aria-атрибутов. Меню недоступно для screen reader. Пользователи с ограниченными возможностями не могут навигировать по сайту.

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

  • Бургер-иконка видна и легко нажимается — минимум 48x48px.
  • Меню открывается без задержки, с плавной анимацией (до 300ms).
  • Все пункты первого уровня доступны в мобильном меню.
  • Подменю раскрывается по тапу на шеврон/иконку — не скрыто на мобильных.
  • Родительский пункт и кнопка раскрытия подменю — два отдельных элемента.
  • Touch targets не менее 48x48px, отступы между пунктами не менее 8px.
  • Есть кнопка закрытия (крестик) и оверлей, закрывающий меню по тапу.
  • Добавлены aria-атрибуты: aria-expanded, aria-label, aria-controls, role=»navigation».
  • В меню есть CTA (звонок, заявка) и контактная информация.
  • Меню протестировано на реальных устройствах: Android (360px), iPhone (375-390px), планшет (768px).
  • Меню работает при отключённом JavaScript (базовый fallback).

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

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

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

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

Александр Тригуб — частный 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 отзывов