Настроить Open Graph / meta-теги для корректных превью страниц в мессенджерах
Что нужно сделать
Добавить на страницы сайта явные метаданные для формирования превью ссылок в мессенджерах и соцсетях. В первую очередь — Open Graph (og:title, og:description, og:image, og:url, og:type), а при необходимости также Twitter Cards.
Сейчас картинка для превью явно не задана. Поэтому Telegram, WhatsApp, VK, Facebook и другие сервисы при отправке ссылки сами пытаются понять, какой заголовок, описание и изображение использовать. Они могут брать <title>, meta description, первое подходящее изображение со страницы, крупную картинку из контента или вообще сохранить ранее найденный вариант. В итоге превью может выглядеть непредсказуемо и отличаться от того, что мы хотим показать пользователю.
Почему это важно
Превью ссылки — это фактически мини-сниппет страницы внутри мессенджера. Оно влияет на то, как пользователь воспринимает ссылку до перехода: видит ли он понятный заголовок, релевантное описание и нормальную картинку товара/категории вместо случайного изображения.
Это не прямой фактор SEO-ранжирования, но относится к корректной разметке страницы и влияет на CTR, узнаваемость и качество расшаривания ссылок. Для поисковых систем и внешних сервисов также лучше, когда ключевые метаданные страницы заданы явно, а не определяются эвристически.
Что должно быть в разметке
Для каждой индексируемой страницы желательно формировать минимум:
<meta property="og:title" content="Название страницы">
<meta property="og:description" content="Краткое описание страницы">
<meta property="og:image" content="https://happybaby2000.ru/path/to/image.jpg">
<meta property="og:url" content="https://happybaby2000.ru/current-page/">
<meta property="og:type" content="website">
Для карточек товаров можно использовать og:type=product, если это соответствует текущей реализации и не создаёт проблем с поддержкой.
og:image должен содержать абсолютный публично доступный URL изображения. Для товаров желательно использовать основное фото товара, для категорий и информационных страниц — заранее определённое релевантное изображение или общий fallback.
Также проверить, чтобы изображение было доступно без авторизации, не блокировалось robots/firewall/CDN и корректно отдавалось внешним ботам.
Логика выбора изображения
Нужно определить понятный приоритет:
- Карточка товара — основное изображение товара.
- Категория — изображение категории, если оно задано.
- Информационная страница — отдельное изображение страницы, если задано.
- Если подходящего изображения нет — использовать общий fallback сайта.
Важно именно явно выводить og:image, а не рассчитывать на то, что мессенджер сам найдёт «правильную» картинку в HTML.
Как мессенджеры формируют превью
Когда пользователь впервые отправляет ссылку, сервер мессенджера обычно сам обращается к странице, считывает HTML и сохраняет найденные метаданные у себя. То есть превью часто формируется не на телефоне пользователя, а на стороне Telegram/WhatsApp/VK/другого сервиса.
Если Open Graph-разметка есть, сервис обычно ориентируется в первую очередь на неё. Если её нет или часть полей отсутствует, сервис использует собственные правила: может взять обычный <title>, description, первую крупную картинку, изображение из контента и т.д. Эти правила у разных сервисов отличаются, поэтому без явной разметки результат нельзя считать стабильным.
Отдельно про кэширование превью
Нужно учитывать, что мессенджеры кэшируют результат разбора URL. Например, если сегодня ссылка https://happybaby2000.ru/catalog/example/ уже была отправлена и мессенджер сохранил для неё старую картинку, то после замены картинки на сайте этот же URL некоторое время может продолжать показывать старое превью.
Причина в том, что мессенджер не обязан повторно скачивать страницу и изображение при каждой отправке ссылки. Он видит уже знакомый URL и использует сохранённый результат из своего кэша. Срок жизни такого кэша зависит от конкретного сервиса и нами обычно не контролируется.
Поэтому после изменения og:image нельзя проверять результат только повторной отправкой того же самого URL и делать вывод, что разметка не работает.
Как проверить новое превью, обходя старый кэш
Для проверки можно добавить к URL произвольный GET-параметр, например:
https://happybaby2000.ru/catalog/example/?preview=2
или:
https://happybaby2000.ru/catalog/example/?v=20260916
Для браузера и сайта это всё та же страница, если эти параметры не используются в логике страницы. Но для мессенджера это уже другой URL, которого ещё нет в его кэше. Поэтому он с большей вероятностью заново запросит страницу и сформирует новое превью по актуальным Open Graph-тегам.
Это не «очищает» старый кэш мессенджера. Просто новый URL с другим query string создаёт отдельную запись кэша и позволяет проверить актуальную разметку, не дожидаясь истечения старого кэша.
При тестировании желательно менять параметр каждый раз, когда нужно гарантированно проверить новый вариант, например ?preview=1, затем ?preview=2.
Критерии готовности
- На основных типах страниц явно выводятся Open Graph-теги.
og:title,og:descriptionиog:imageсоответствуют содержимому конкретной страницы.- У
og:imageиспользуется абсолютный URL. - Для страниц без собственного изображения предусмотрен fallback.
- Проверено, что внешние боты могут получить изображение.
- На нескольких типах страниц вручную проверено формирование превью в популярных мессенджерах.
- При проверке изменений учтён кэш: новый вариант дополнительно тестируется через URL с уникальным GET-параметром.