Допустим, в вашем интернет-магазине 10 000 товаров. Ручное заполнение title и description для каждого — недели работы, а пустые мета-теги убивают индексацию. Мы решаем эту задачу настройкой автогенерации SEO-тегов в 1С-Битрикс. Результат — уникальные заголовки и описания для каждой страницы без участия контент-менеджера. Более того, правильные мета-теги увеличивают CTR на 20–30% в выдаче, что напрямую влияет на трафик. Наш опыт показывает: автоматизация окупается за две недели при каталоге от 5 000 позиций.
Какие проблемы решает автогенерация SEO-тегов?
Дублирование title и h1 — частая ошибка: <title> и <h1> совпадают, что ухудшает кликабельность. Правильная практика — они должны различаться, и мы это реализуем.
Отсутствие динамики — стандартные шаблоны не подставляют цену, артикул или остаток. В результате title всех товаров вида "Купить #NAME#" без уникальности.
Сложная логика — для товаров из разных категорий нужны разные шаблоны: например, для одежды — размер, для электроники — мощность. Штатный модуль это не умеет.
Как настроить автогенерацию SEO-тегов?
Базовый инструмент — правила мета-тегов в разделе Маркетинг → Поисковая оптимизация → Мета-теги. Для инфоблока задаётся шаблон с подстановками #NAME#, #SECTION_NAME#, #PROPERTY_{CODE}#. Это покрывает большинство случаев без программирования. Вот типовые шаблоны для интернет-магазина:
| Объект |
Title |
Description |
| Элемент каталога |
#NAME# — цена, характеристики |
Купите #NAME#. #PROPERTY_SHORT_DESC# Доставка от 1 дня. |
| Раздел каталога |
#NAME# — каталог товаров |
Широкий выбор в разделе #NAME#. #PROPERTY_SECTION_DESC# |
| Детальная страница статьи |
`#NAME# |
Блог` |
Подробнее о модуле поисковой оптимизации читайте в официальной документации. Но если нужно подставить бренд из связанного HL-блока или сформировать title от наличия скидки — штатных макросов не хватит. Тут вступает кастомная генерация, которая даёт до 50% больше уникальных title по сравнению со штатными шаблонами.
Когда стандартных шаблонов недостаточно?
Кастомная генерация в 3 раза гибче штатных шаблонов: она позволяет использовать любые данные, включая цены со скидками, остатки, бренды из внешних источников. Например, для электроники можно вывести мощность в title, а для одежды — размерную сетку. Это особенно актуально для каталогов от 20 000 товаров, где каждый процент CTR даёт ощутимый прирост продаж.
Как настроить кастомную генерацию через события?
Мы используем обработчик OnBeforeProlog в init.php. Это событие выполняется до вывода компонентов, поэтому все изменения успевают попасть в <head>. Пример кода:
AddEventHandler('main', 'OnBeforeProlog', function() {
global $APPLICATION;
if (!preg_match('#^/catalog/([^/]+)/([^/]+)/#', $_SERVER['REQUEST_URI'])) {
return;
}
$elementId = (int)$_REQUEST['ELEMENT_ID'];
if (!$elementId) return;
$el = \CIBlockElement::GetByID($elementId)->GetNext();
if (!$el) return;
$brand = $el['PROPERTIES']['BRAND']['VALUE'] ?? '';
$model = $el['NAME'];
$price = \CCatalogProduct::GetByID($elementId)['PRICE'] ?? '';
$APPLICATION->SetPageProperty('title',
"{$brand} {$model} — купить за {$price} ₽ | Интернет-магазин"
);
$APPLICATION->SetPageProperty('description',
"Купить {$brand} {$model} за {$price} ₽ с доставкой по всей России. " .
($el['PROPERTIES']['SHORT_DESC']['VALUE'] ?? '')
);
});
Вызов SetPageProperty в OnBeforeProlog выполняется раньше, чем компоненты на странице, поэтому значение успевает попасть в <head>. Генерация H1 независимо от title — хорошая практика: <title> и <h1> должны отличаться. H1 задаётся через свойство страницы h1:
$APPLICATION->SetPageProperty('h1', $el['NAME']);
В шаблоне страницы:
<h1><?= $APPLICATION->GetPageProperty('h1') ?: $APPLICATION->GetTitle() ?></h1>
Массовое обновление SEO-полей существующих элементов
Если нужно заполнить SEO-поля для тысяч существующих товаров по шаблону — делается через скрипт:
$res = \CIBlockElement::GetList(
[],
['IBLOCK_ID' => CATALOG_IBLOCK_ID, 'ACTIVE' => 'Y'],
false,
false,
['ID', 'NAME', 'IBLOCK_ID']
);
while ($el = $res->GetNextElement()) {
$fields = $el->GetFields();
$props = $el->GetProperties();
$seoTitle = $fields['NAME'] . ' — купить в интернет-магазине';
$seoDesc = 'Купите ' . $fields['NAME'] . ' с доставкой. ' .
($props['SHORT_DESC']['VALUE'] ?? '');
\CIBlockElement::SetPropertyValuesEx($fields['ID'], $fields['IBLOCK_ID'], [
'SEO_TITLE' => $seoTitle,
'SEO_DESCRIPTION' => $seoDesc,
]);
}
Скрипт запускается разово. После выполнения элементы получат заполненные SEO-поля, которые перекрывают шаблон из модуля.
Шаблоны vs кастом: что выбрать?
| Критерий |
Штатные шаблоны |
Кастомная генерация |
| Сложность настройки |
1–2 часа, без кода |
4–8 часов, требуется PHP |
| Гибкость |
Только макросы #NAME#, #SECTION# |
Любая логика: условия, API, внешние данные |
| Обновление существующих |
Только через массовый скрипт |
Можно сразу совместить с событием |
| Зависимость от модулей |
Только SEO-модуль |
Любые модули и сторонние сервисы |
Для 90% проектов достаточно штатных шаблонов. Но если вы работаете с большим каталогом (от 20 000 товаров) или сложной структурой свойств — кастомная генерация окупается ростом CTR до 20% и сокращением ручного труда на 100%.
Наш процесс работы
- Анализ — изучаем текущую структуру инфоблоков, свойств и URL. Выявляем страницы с пустыми мета-тегами.
- Проектирование — разрабатываем шаблоны title, description, h1 для каждого типа страниц (элемент, раздел, бренд).
- Реализация — настраиваем правила SEO-модуля или пишем кастомные обработчики событий.
- Тестирование — проверяем на выборке из 50–100 страниц: уникальность, длина, отсутствие дублей.
- Деплой — заливаем код на боевой сервер, запускаем массовое обновление (если нужно).
- Мониторинг — через 2 недели оцениваем динамику индексации и CTR.
Сроки и стоимость
- Только шаблоны SEO-модуля — от 2 часов. Стоимость рассчитывается индивидуально.
- Кастомная генерация + массовое обновление — от 4 до 16 часов. Стоимость зависит от сложности и объёма.
Каждый проект уникален — свяжитесь с нами для точной оценки. Закажите консультацию — получите предварительную оценку вашего проекта.
Что входит в работу
- Документация по правилам генерации для каждого типа страниц.
- Исходный код обработчиков событий с комментариями.
- Инструкция для контент-менеджеров: как добавить новый шаблон или изменить существующий.
- Гарантия на код — 3 месяца бесплатной поддержки.
- Консультация по дальнейшей SEO-оптимизации.
Почему выбирают нас?
Официальный партнёр 1С-Битрикс с 10+ летним опытом разработки. Более 200 реализованных проектов, в том числе крупные каталоги (до 500 000 товаров). Сертифицированные специалисты. Индивидуальный подход: мы не копируем решения, а проектируем под вашу структуру.
Получите консультацию — обращайтесь, и мы подготовим оптимальное решение.
Как 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-оптимизации. Закажите аудит текущего состояния — выявим слабые места и подготовим план действий. Результат — рост органического трафика без лишних затрат на рекламу. Свяжитесь, чтобы обсудить ваш проект.