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

Настроить viewport meta-тег

Важно

Зачем настраивать viewport meta-тег

Viewport meta-тег сообщает мобильному браузеру, как масштабировать страницу под экран устройства. Без этого тега смартфон отобразит сайт так, будто экран шириной 980px (значение по умолчанию в большинстве мобильных браузеров), и пользователь увидит крошечную десктопную версию, которую нужно масштабировать пальцами. Для поисковых систем это сигнал: сайт не адаптирован для мобильных.

Google считает корректный viewport meta-тег обязательным условием мобилопригодности. Lighthouse проверяет наличие тега в аудите SEO - если тега нет или он настроен неправильно, страница получает ошибку. При Mobile-First Indexing Google оценивает именно мобильную версию, и отсутствие viewport означает, что мобильная версия фактически сломана.

Яндекс также учитывает мобилопригодность как фактор ранжирования. В Яндекс Вебмастере можно проверить, считает ли Яндекс сайт мобилопригодным. Отсутствие viewport meta-тега - одна из причин, по которой страница может быть помечена как неадаптированная для мобильных.

По моему опыту, с viewport meta-тегом проблемы встречаются реже, чем с другими аспектами мобильной оптимизации - большинство современных CMS и тем добавляют его автоматически. Но ошибки в настройке тега, особенно запрет масштабирования, встречаются регулярно и могут стоить позиций.

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

Шаг 1. Проверьте наличие viewport meta-тега

Откройте исходный код страницы (Ctrl+U в Chrome) и найдите в секции <head> строку с name="viewport". Правильный viewport meta-тег выглядит так:

<meta name="viewport" content="width=device-width, initial-scale=1">

Эта строка говорит браузеру: ширина области просмотра равна ширине устройства, начальный масштаб - 100%. Мобильный браузер отображает страницу в реальном масштабе, без уменьшения.

Если тега нет - его нужно добавить. Если он есть, но содержит другие параметры - проверьте их по шагам ниже.

Быстрая проверка через Chrome DevTools: откройте страницу, нажмите F12, перейдите во вкладку Elements и выполните поиск (Ctrl+F) по «viewport». Тег должен быть в <head>.

Шаг 2. Разберитесь в параметрах тега

Viewport meta-тег принимает несколько параметров в атрибуте content. Разберём каждый:

  • width=device-width - ширина области просмотра равна ширине экрана устройства. Это основной параметр, без которого адаптивная вёрстка не работает. На iPhone 14 ширина будет 390px, на Samsung Galaxy S23 - 360px, на iPad - 768px или 1024px в зависимости от ориентации.
  • initial-scale=1 - начальный масштаб страницы 100%. Страница отображается без увеличения или уменьшения. Без этого параметра некоторые браузеры могут произвольно масштабировать страницу.
  • maximum-scale - максимальный масштаб, до которого пользователь может увеличить страницу. Значение 1 запрещает увеличение. Не рекомендуется ограничивать.
  • minimum-scale - минимальный масштаб. Обычно не нужен - браузер сам управляет минимальным масштабом.
  • user-scalable - разрешено ли пользователю масштабировать страницу. Значение no запрещает зум. Категорически не рекомендуется.

Минимально необходимый набор - width=device-width, initial-scale=1. Всё остальное либо не нужно, либо вредно.

Шаг 3. Удалите запрет масштабирования (user-scalable=no)

Это самая распространённая ошибка в настройке viewport. Многие разработчики и темы CMS добавляют user-scalable=no или maximum-scale=1, чтобы «зафиксировать» масштаб страницы. На практике это создаёт серьёзные проблемы:

  • Нарушение доступности. Люди с ослабленным зрением не могут увеличить текст или изображение. Это прямое нарушение рекомендаций WCAG 2.1 (критерий 1.4.4 - Resize Text). Google учитывает доступность как фактор качества.
  • Ошибка в Lighthouse. Аудит «[user-scalable=»no»] is used in the viewport meta tag or the [maximum-scale] attribute is less than 5» - выдаётся как ошибка в категории Accessibility. Это снижает оценку доступности сайта.
  • Плохой пользовательский опыт. Даже на хорошо свёрстанном сайте иногда нужно увеличить мелкий текст на изображении, разглядеть деталь на фото или прочитать таблицу. Запрет зума отнимает у пользователя эту возможность.

Если в вашем viewport есть user-scalable=no или maximum-scale=1 - удалите эти параметры. Итоговый тег должен выглядеть так:

<meta name="viewport" content="width=device-width, initial-scale=1">

Если разработчик настаивает на запрете зума «чтобы вёрстка не ломалась» - проблема в вёрстке, а не в возможности масштабирования. Правильная адаптивная вёрстка работает корректно при любом масштабе.

Шаг 4. Добавьте тег в CMS

В зависимости от CMS viewport meta-тег добавляется по-разному:

WordPress. В большинстве тем viewport уже прописан в файле header.php. Проверьте: если тег отсутствует, добавьте его в <head> через файл header.php дочерней темы или через хук wp_head в functions.php:

add_action('wp_head', function() {
    echo '<meta name="viewport" content="width=device-width, initial-scale=1">' . "\n";
}, 1);

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

Любая CMS или статический сайт. Найдите основной шаблон, содержащий <head>, и добавьте тег внутри. Тег должен быть на каждой странице сайта без исключений.

Шаг 5. Проверьте все страницы, а не только главную

Viewport meta-тег может присутствовать на главной странице, но отсутствовать на других шаблонах - если разные типы страниц используют разные заголовочные файлы. Проверьте:

  • Главную страницу
  • Страницы услуг
  • Статьи блога
  • Страницы категорий и архивов
  • Страницу контактов
  • 404-ю страницу
  • Страницы, созданные плагинами (личный кабинет, корзина, оформление заказа)

Массовую проверку можно провести через Screaming Frog: просканируйте сайт и экспортируйте данные о meta-тегах viewport. Screaming Frog покажет, на каких страницах тег отсутствует или отличается от ожидаемого.

Шаг 6. Проверьте через инструменты

После добавления или исправления тега проверьте результат через несколько инструментов:

Google Lighthouse (Chrome DevTools). Запустите аудит в режиме Mobile. В категории SEO ищите «Viewport meta tag» - должен быть зелёный. В категории Accessibility - не должно быть ошибки про user-scalable=no.

Google PageSpeed Insights (pagespeed.web.dev). Введите URL и проверьте мобильную версию. Тест покажет, если viewport не настроен или содержит проблемные параметры.

Яндекс Вебмастер. Раздел «Диагностика» - «Проверка мобильных страниц». Яндекс покажет, считает ли он страницу мобилопригодной. Отсутствие viewport - одна из причин провала проверки.

Chrome DevTools вручную. Включите режим эмуляции мобильного устройства (Ctrl+Shift+M). Если viewport настроен правильно - страница отображается в реальном масштабе, текст читаемый, элементы не уменьшены. Если viewport отсутствует - вы увидите миниатюрную версию десктопного сайта.

Шаг 7. Убедитесь, что CSS media queries работают корректно

Viewport meta-тег и CSS media queries работают в связке. Media queries типа @media (max-width: 768px) срабатывают на основе значения viewport, а не физической ширины экрана. Без viewport meta-тега браузер считает ширину равной 980px, и media queries для мобильных не срабатывают.

Проверьте:

  • Адаптивные стили применяются на мобильных устройствах
  • Брейкпоинты (breakpoints) в CSS соответствуют реальным размерам устройств: 320px, 375px, 414px, 768px, 1024px
  • При изменении ориентации устройства (портрет/альбом) стили корректно переключаются

Если после добавления viewport meta-тега вёрстка на мобильных «поехала» - это означает, что раньше сайт просто показывался как уменьшенная десктопная версия, а теперь браузер пытается применить реальный масштаб. Нужно дорабатывать CSS для мобильных разрешений.

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

  • user-scalable=no или maximum-scale=1. Самая частая ошибка. Запрет масштабирования ломает доступность, вызывает ошибки в Lighthouse и создаёт плохой опыт для пользователей с ослабленным зрением. Удалите эти параметры. Если maximum-scale нужен - ставьте значение не менее 5: maximum-scale=5.
  • Фиксированная ширина вместо device-width. Конструкция width=1024 вместо width=device-width жёстко задаёт ширину viewport в 1024px на любом устройстве. На смартфоне с шириной 375px это приведёт к уменьшению масштаба - страница будет мелкой и нечитаемой. Всегда используйте device-width.
  • Два viewport meta-тега на одной странице. Иногда тема добавляет один тег, а плагин - другой. Браузер может использовать любой из них, и результат непредсказуем. Проверьте исходный код: viewport meta-тег должен быть ровно один.
  • Viewport в body вместо head. Meta-тег viewport должен находиться в секции <head>. Если он оказался в <body> - браузеры могут его проигнорировать. Проверьте расположение в HTML-структуре.
  • Пропуск initial-scale=1. Тег <meta name="viewport" content="width=device-width"> без initial-scale=1 может работать в большинстве браузеров, но некоторые старые версии могут неправильно определить начальный масштаб. Добавляйте оба параметра для максимальной совместимости.
  • Забытые отдельные шаблоны. Viewport есть на главной и в статьях, но отсутствует на 404-й странице, странице поиска или страницах, генерируемых плагинами. Каждая страница сайта должна содержать viewport meta-тег.
  • Надежда на плагин, который «сам добавит». Плагины мобильной оптимизации могут добавлять viewport, но если тема уже добавляет свой - получите конфликт. Проверяйте результат в исходном коде, а не доверяйте описанию плагина.

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

  • На каждой странице сайта в секции head присутствует ровно один viewport meta-тег
  • Тег содержит width=device-width, initial-scale=1 - без дополнительных ограничивающих параметров
  • Нет параметров user-scalable=no и maximum-scale=1 - масштабирование разрешено
  • Lighthouse (Mobile) в категории SEO не показывает ошибку «Viewport meta tag»
  • Lighthouse (Mobile) в категории Accessibility не показывает ошибку про user-scalable
  • В Яндекс Вебмастере страницы не помечены как неадаптированные для мобильных
  • На мобильном устройстве страница отображается в реальном масштабе - текст читается без масштабирования
  • CSS media queries для мобильных разрешений срабатывают корректно
  • Проверены все типы страниц: главная, услуги, статьи, категории, 404, страницы плагинов
  • Пользователь может увеличить масштаб страницы пальцами на мобильном устройстве

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

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

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

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

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

Публичные примеры разработки: royal-pier.ru · monolitkapstroy.ru · med-expres.ru · arnikacenter.ru · kairoscity.ru

1 000+заказов · 728 отзывов 4.9★
300+сайтов разработано
500+видео-аудитов в открытом доступе
13+лет - самые долгие проекты
27+модулей аналитики и мониторинга