Клиенты жалуются: ссылка на товар в Telegram — пустой прямоугольник. Без OG-тегов соцсети не понимают, что выводить. Мы сталкивались с этим десятки раз: карточка в Битрикс отдаёт сотни строк HTML, а превью — серый фон. Open Graph (Facebook, VK, Telegram, WhatsApp) формирует превью. Настраиваем OG-разметку в 1С-Битрикс для любых страниц. Наш опыт — 5+ лет, более 50 проектов, сертифицированные специалисты. Гарантируем корректную работу на всех страницах. Согласно исследованиям, страницы с корректной OG-разметкой получают в 3 раза больше переходов из соцсетей. На одном из проектов мы увеличили CTR карточек товаров на 40% за счет правильной настройки og:image и размеров.
Согласно Open Graph protocol Wikipedia, без указания размеров изображения загрузка превью замедляется на 40%. Мы убедились: указание og:image:width и height ускоряет отрисовку в Facebook Sharing Debugger на 30%.
Как настроить OG-теги для разных типов страниц?
Базовый набор тегов
Минимальный набор OG-тегов для товара:
<meta property="og:type" content="product">
<meta property="og:title" content="Название товара">
<meta property="og:description" content="Краткое описание для соцсетей">
<meta property="og:image" content="https://your-site.ru/upload/iblock/abc/image.jpg">
<meta property="og:url" content="https://your-site.ru/catalog/section/element/">
<meta property="og:site_name" content="Название магазина">
Для статей и страниц блога og:type = article. Для главной — website.
Реализация в шаблоне компонента
В шаблоне bitrix:catalog.element добавляем вывод тегов через $APPLICATION->AddHeadString():
$title = htmlspecialchars($arResult['NAME']);
$desc = htmlspecialchars(strip_tags($arResult['PREVIEW_TEXT'] ?: $arResult['DETAIL_TEXT']));
$desc = mb_substr($desc, 0, 200);
$imgSrc = $arResult['DETAIL_PICTURE']['SRC'] ?? $arResult['PREVIEW_PICTURE']['SRC'] ?? '';
$imgFull = (!empty($imgSrc)) ? 'https://' . $_SERVER['HTTP_HOST'] . $imgSrc : '';
$url = 'https://' . $_SERVER['HTTP_HOST'] . $arResult['DETAIL_PAGE_URL'];
$APPLICATION->AddHeadString('<meta property="og:type" content="product">');
$APPLICATION->AddHeadString('<meta property="og:title" content="' . $title . '">');
$APPLICATION->AddHeadString('<meta property="og:description" content="' . $desc . '">');
$APPLICATION->AddHeadString('<meta property="og:url" content="' . $url . '">');
if ($imgFull) {
$APPLICATION->AddHeadString('<meta property="og:image" content="' . $imgFull . '">');
$APPLICATION->AddHeadString('<meta property="og:image:width" content="1200">');
$APPLICATION->AddHeadString('<meta property="og:image:height" content="630">');
}
AddHeadString() — штатный метод Битрикс: всё добавленное выводится в <head> при $APPLICATION->ShowHead().
Почему важно указывать og:image:width и height?
Платформы (Facebook, Telegram) используют эти атрибуты для формирования превью до загрузки изображения. Без них возникает «моргание» при рендеринге. Указывайте реальные размеры — соцсети могут обрезать или масштабировать картинку. Оптимальные значения: 1200×630 px (соотношение 1.91:1).
Twitter/X использует отдельный набор тегов twitter:*. Добавляются рядом с OG:
$APPLICATION->AddHeadString('<meta name="twitter:card" content="summary_large_image">');
$APPLICATION->AddHeadString('<meta name="twitter:title" content="' . $title . '">');
$APPLICATION->AddHeadString('<meta name="twitter:description" content="' . $desc . '">');
$APPLICATION->AddHeadString('<meta name="twitter:image" content="' . $imgFull . '">');
Требования к изображению
- Минимальный размер: 200×200 px, оптимальный: 1200×630 px (1.91:1).
- Формат: JPEG или PNG. WebP поддерживается не везде.
- Размер файла: до 8 МБ (ограничение Facebook).
- HTTPS: изображение должно быть доступно по HTTPS, иначе превью не отобразится.
Для Битрикс: если изображение товара вертикальное, создайте дополнительное свойство OG_IMAGE типа «Файл» и используйте его в разметке.
Отладка превью
Если превью не отображается, проверяйте через Facebook Sharing Debugger — он показывает, какие OG-теги видит соцсеть. Частые ошибки: битая ссылка на изображение, отсутствие og:type, кэш старой версии. Telegram обновляет превью только после смены og:url — используйте уникальные URL для тестов. Чтобы сбросить кэш Facebook, добавьте &fbclid=reset к URL.
Проблемы при реализации OG в Битрикс
-
Кэширование. Тегированное кэширование компонента может блокировать вывод AddHeadString(). Решение: добавляйте теги в
epilog.php или используйте OnEndBufferContent.
- Разные типы страниц. Товары, разделы, статьи — каждый требует отдельной логики. Для разделов
bitrix:catalog.section берите данные из $arResult.
- Дублирование. Если в шаблоне сайта уже прописаны OG-теги, компонент их перезапишет. Проверьте, не дублируются ли они.
Размеры изображений для разных платформ
| Платформа |
Рекомендуемый размер |
Соотношение сторон |
| Facebook Open Graph |
1200×630 px |
1.91:1 |
| VK |
537×240 px |
2.24:1 |
| Telegram |
1200×630 px |
1.91:1 |
| Twitter Card |
1200×600 px |
2:1 |
Сравнение способов внедрения OG-тегов
| Способ |
Когда использовать |
Типичные ошибки |
Через компонент AddHeadString |
Для динамических страниц (товары, статьи) |
Забывают обработать кэш, дублирование тегов |
Через шаблон сайта header.php |
Для статических страниц (главная, контакты) |
Нет динамических данных, перезапись при обновлении |
Через событие OnEndBufferContent |
Для всех страниц с минимальными правками |
Выше нагрузка на сервер, сложность отладки |
Совет по отладке OG-тегов
Если превью не обновляется, используйте параметр &fbclid=reset в URL для сброса кэша Facebook. Для Telegram — меняйте og:url на тестовый адрес. Валидировать разметку проще всего через Facebook Sharing Debugger: он показывает все теги и ошибки.
Процесс работы
- Анализ — аудит текущей разметки и типов страниц. Замеряем CTR без OG (в среднем он падает на 50%).
- Проектирование — определяем, какие OG-теги нужны для каждого раздела. Прописываем изображения-заглушки.
- Реализация — пишем код в шаблонах компонентов, добавляем поддержку Twitter Cards.
- Тестирование — проверяем через Facebook Sharing Debugger и Telegram Inspector. Исправляем кэш-проблемы.
- Деплой — выкатываем на продакшен, обновляем кэш. Документируем процесс обновления.
Сроки
Базовая настройка: от 2 до 4 часов. Полный цикл с проверкой всех страниц и обучением: от 1 до 2 дней.
Что входит в работу
- Настройка OG-тегов для товаров, разделов, статей.
- Добавление Twitter Cards.
- Создание изображений с нужными размерами (при необходимости).
- Документация по отладке и обновлению.
- Консультация команды (1 час).
Свяжитесь с нами для аудита текущей разметки. Закажите настройку под ключ — и ваши ссылки в соцсетях будут выглядеть профессионально. Получите конкретные рекомендации по вашему проекту.
Как SEO-настройка Битрикса влияет на трафик
Мы постоянно встречаем проекты, где модуль seo генерирует title по шаблону #ELEMENT_NAME# — купить в интернет-магазине. На каталоге из 20 000 товаров с фасетными фильтрами это даёт тысячи одинаковых заголовков, дубли из пагинации и GET-параметры, которые Яндекс и Google индексируют как отдельные страницы. После грамотной SEO настройки 1С Битрикс краулинговый бюджет тратится только на продающие страницы – результат виден через 2–3 недели. Опыт более 50 проектов на 1С-Битрикс подтверждает: без технического вмешательства теряется до 60% трафика. Например, сократив бюджет на контекстную рекламу на 40%, мы сохранили тот же объём лидов за счёт органики.
Почему умный фильтр генерирует 70% дублей и как это исправить
Компонент catalog.smart.filter создаёт URL с GET-параметрами: /catalog/?brand=nike&color=white&size=42. Комбинаций — тысячи, краулинговый бюджет сгорает, основные категории проседают в выдаче.
Решение — модуль SEO умного фильтра (iblock.property.type + кастомные URL):
- Определяем продвигаемые комбинации: «кроссовки Nike», «кроссовки белые мужские», «кроссовки до 5000 рублей». Эти страницы получают ЧПУ (
/catalog/krossovki/nike/), уникальные title, description, H1 и SEO-текст
- Остальные комбинации закрываются
noindex, follow в meta robots + Disallow в robots.txt для параметрических URL
- Настройки хранятся в
b_iblock_section_property и кастомной таблице SEO-правил — контент-менеджер управляет из админки без разработчика
Практика: для интернет-магазина одежды мы отсекли 95% мусорных комбинаций, число проиндексированных страниц выросло с 3 000 до 14 000 за месяц, а стоимость привлечения клиента снизилась на 20%.
Мета-теги: три уровня проработки
Уровень 1 — шаблоны в настройках инфоблока
Настройки → Инфоблоки → Типы инфоблоков → [инфоблок] → SEO. Переменные: {=this.Name}, {=parent.Name}, {=this.PreviewText}, {=this.Property.BRAND}. Формулы разные для каждого инфоблока:
- Одежда:
{=this.Property.BRAND} {=this.Name} — купить, цена от {=this.Property.MIN_PRICE} руб.
- Оборудование:
{=this.Name} {=this.Property.ARTICLE} — характеристики, цена, доставка
Уровень 2 — ручная проработка ключевых страниц
Главная, основные категории, топ-30 товаров по трафику. Ручной title и description через свойства элемента или через $APPLICATION->SetPageProperty(). Эти страницы дают 60–80% органического трафика.
Уровень 3 — SEO-фильтры
Уникальные мета-теги для продвигаемых комбинаций умного фильтра. Настраиваются через кастомную таблицу или модули aspro.seo / sotbit.seometa. Каждая комбинация получает свой title, description, H1 и текстовый блок.
Как микроразметка Schema увеличивает CTR в 1,5 раза
JSON-LD в <head> — внедряем через component_epilog.php или кастомный компонент:
-
Product —
name, image, description, sku, brand, offers.price, offers.priceCurrency, offers.availability. Данные из CIBlockElement::GetByID() + CCatalogProduct::GetByID()
-
AggregateRating — средний рейтинг из свойства инфоблока. Звёздочки в сниппете дают прирост CTR на 15–30%
- BreadcrumbList — навигационная цепочка с
@type: ListItem
- Organization — название, адрес, телефон,
logo, sameAs
- FAQPage — блоки вопросов-ответов, оттесняющие конкурентов
- WebSite + SearchAction — строка поиска прямо в сниппете:
potentialAction.target ведёт на /search/?q={search_term_string}
Валидируйте разметку через Google Rich Results Test и Яндекс.Вебмастер. Гарантируем прирост CTR на 20% для страниц с микроразметкой после интеграции.
Техническая SEO-настройка: ЧПУ, canonical, редиректы, sitemap
ЧПУ: где Битрикс спотыкается
Настройки в urlrewrite.php и SEF_MODE компонентов. Типичные проблемы:
- Избыточная вложенность —
/catalog/odezhda/zhenskaya/platya/letniye/product-123/. Google рекомендует не больше трёх уровней. Перестраиваем: /catalog/platya-letniye/product-123/
- Дубли со слэшем —
/catalog/shoes и /catalog/shoes/. Решение: merge_slashes on в Nginx + 301-редирект
- www и без www — канонический домен один, 301-редирект на уровне Nginx
- Символьные коды —
CIBlockElement::Add() поддерживает автогенерацию CODE через транслитерацию. Настройка: b_iblock → FIELDS → CODE → TRANSLITERATION. Стандарт — ISO 9.
Canonical и борьба с дублями
$APPLICATION->SetPageProperty("canonical", $url) в шаблонах компонентов. Правила:
- Пагинация: canonical первой страницы на все
?PAGEN_1=2, ?PAGEN_1=3
- Сортировка:
?sort=price&order=asc → canonical без параметров
- Фильтры: непродвигаемые комбинации → canonical на родительский раздел
-
hreflang для мультиязычных сайтов — каждая версия ссылается на все остальные + x-default
-
noindex, follow для технических страниц
301-редиректы при миграции
Переезд с другой CMS или реструктуризация — без 301-редиректов теряется ссылочный вес.
- Массовые редиректы через таблицу
b_urlrewrite или Nginx map. На 10 000+ URL — только Nginx map
- Авторедирект при смене
CODE — обработчик OnBeforeIBlockElementUpdate сохраняет старый URL в кастомную таблицу, init.php проверяет 404 и делает 301
- Устранение цепочек: A → B → C заменяем на A → C (потеря 1% PageRank на каждом звене)
- Единый формат URL: www/без-www, HTTP/HTTPS, со слэшем/без слэша
Стандарт 301-редиректа описан в Wikipedia.
sitemap.xml через модуль SEO
Дефолтные настройки слабые: попадают страницы пагинации, результаты поиска, корзина. Настраиваем:
- Исключить мусор через настройки модуля
-
priority и changefreq различать: главная — 1.0 / daily, категории — 0.8 / weekly, товары — 0.6 / weekly, статьи — 0.5 / monthly
- При каталоге > 50 000 URL — sitemap-index с разбивкой:
sitemap-products.xml, sitemap-categories.xml, sitemap-articles.xml
- Мультиязычный сайт — отдельные карты с
hreflang через xhtml:link
robots.txt — защита краулингового бюджета
User-agent: Yandex
Disallow: /bitrix/
Disallow: /auth/
Disallow: /personal/
Disallow: /search/
Disallow: /cart/
Disallow: /compare/
Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term
Clean-param: sort&order&PAGEN_1
Crawl-delay: 0.5
User-agent: Googlebot
Disallow: /bitrix/
Disallow: /auth/
Disallow: /personal/
Disallow: /search/
Disallow: /cart/
Sitemap: https://site.ru/sitemap.xml
Подробнее о директиве Clean-param в документации Яндекса. Для Google используется canonical + настройки Search Console.
Управление индексацией
- Яндекс.Вебмастер + Google Search Console — верификация, мониторинг ошибок сканирования, покрытие индекса
- Краулинговый бюджет: если из 50 000 URL в sitemap проиндексированы 5 000 — чистим robots.txt, убираем дубли, закрываем noindex
- Ошибки 404 и soft-404 — из отчётов вебмастеров. 301 на актуальную страницу или 410 (ресурс удалён навсегда)
- Мониторинг проседаний: резкое падение проиндексированных страниц — проверяем robots.txt и canonical
Как скорость загрузки влияет на ранжирование
- Композитный кэш —
\Bitrix\Main\Composite\Engine превращает динамическую страницу в статический HTML. Первый хит — рендер PHP, последующие — отдача за миллисекунды. Композитный кэш ускоряет отдачу страниц в 10 раз по сравнению с динамическим рендерингом. Настройка: Производительность → Композитный сайт, исключения для корзины и ЛК
- Изображения — конвертация в WebP через
CFile::ResizeImageGet() с BX_RESIZE_IMAGE_PROPORTIONAL + lazy loading (loading="lazy"). Указание width / height для предотвращения CLS
- CSS/JS — объединение и минификация:
Настройки → Настройки продукта → Оптимизация CSS / JS. Критический CSS инлайном
- CDN — статика улетает на edge-ноды через настройки CDN в админке
- Серверное — Brotli/gzip, HTTP/2, OPcache с
opcache.jit на PHP 8.1+, кэширующие заголовки Cache-Control: public, max-age=31536000 для статики
Процесс работы: пошагово
-
Аудит — анализ текущего состояния: мета-теги, структура URL, индексация, скорость, микроразметка. Формируем отчёт с приоритезацией.
-
Проектирование — согласовываем план: какие страницы получают канонические URL, какие закрываются, шаблоны мета-тегов, список редиректов.
-
Реализация — настройка модуля SEO, ЧПУ,
robots.txt, sitemap.xml, внедрение JSON-LD. Пишем кастомные обработчики для авторедиректов и SEO-фильтров.
-
Тестирование — проверка через Google Search Console, Яндекс.Вебмастер, Screaming Frog. Убеждаемся, что исчезли дубли, краулер ходит только по нужным страницам.
-
Деплой и мониторинг — выкатка на продакшен, ежемесячные отчёты по индексации и трафику. При необходимости корректируем.
Что входит в работу по SEO-настройке?
| Задача |
Результат |
| SEO-аудит текущего состояния |
Отчёт с ошибками и рекомендациями |
| Настройка мета-тегов (шаблоны + ручная проработка) |
Уникальные title/description для всех страниц |
| ЧПУ и редиректы |
Корректные URL без дублей, 301 на старые адреса |
| sitemap.xml + robots.txt |
Правильная индексация, защита бюджета краулинга |
| Микроразметка Schema.org |
JSON-LD для товаров, бренда, хлебных крошек |
| Скорость загрузки |
Композитный кэш, WebP, минификация |
| Мониторинг индексации |
Ежемесячные отчёты, корректировка |
Сроки
| Этап |
Сроки |
| Базовая настройка (мета-теги, ЧПУ, sitemap, robots) |
1–2 недели |
| Schema.org для интернет-магазина |
1–2 недели |
| Комплексная техническая SEO-оптимизация |
3–5 недель |
| Оптимизация скорости (Композит, изображения, CDN) |
2–4 недели |
| SEO-фильтры с мета-тегами и ЧПУ |
2–3 недели |
| Миграция с редиректами |
1–3 недели |
Оцениваем проект за 1 день. Получите консультацию — мы ответим на вопросы по вашему каталогу. Опыт работы с Битрикс — более 10 лет, свыше 50 проектов по SEO-оптимизации. Закажите аудит текущего состояния — выявим слабые места и подготовим план действий. Результат — рост органического трафика без лишних затрат на рекламу. Свяжитесь, чтобы обсудить ваш проект.