SEO-настройки 1С-Битрикс
Модуль seo в Битриксе генерирует title по шаблону #ELEMENT_NAME# — купить в интернет-магазине. На первый десяток страниц сойдёт. На каталоге из 20 000 товаров с фасетными фильтрами — получаете тысячи одинаковых title, дубли из пагинации в индексе и фильтры с GET-параметрами, которые Яндекс радостно индексирует. Мы доводим техническое SEO до состояния, когда краулинговый бюджет тратится на продающие страницы, а не на мусор.
Главная проблема: дубли из умного фильтра
Это 70% всей работы по SEO на Битриксе, поэтому начнём с неё.
Компонент 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-правил — контент-менеджер управляет из админки без разработчика
Мета-теги: три уровня настройки
Уровень 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 и текстовый блок.
ЧПУ: где Битрикс спотыкается
Настройки ЧПУ в urlrewrite.php и в параметрах компонента SEF_MODE. Типичные проблемы:
-
Избыточная вложенность —
/catalog/odezhda/zhenskaya/platya/letniye/product-123/. Четыре уровня каталога. Google рекомендует не больше трёх. Перестраиваем структуру:/catalog/platya-letniye/product-123/ -
Дубли со слэшем —
/catalog/shoesи/catalog/shoes/— два разных URL с одинаковым контентом. Решение:merge_slashes onв Nginx + 301-редирект черезurlrewrite.phpили.htaccess - www и без www — канонический домен один, 301-редирект для второго на уровне Nginx
-
Символьные коды —
CIBlockElement::Add()иCIBlockSection::Add()поддерживают автогенерациюCODEизNAMEчерез транслитерацию. Настраивается вb_iblock→FIELDS→CODE→TRANSLITERATION. Стандарт — ISO 9 или ГОСТ 7.79-2000
sitemap.xml через модуль SEO
Модуль seo генерирует sitemap автоматически (/bitrix/admin/seo_sitemap.php). Но дефолтные настройки — слабые:
- Попадают страницы пагинации, результаты поиска, страница корзины. Нужно исключить через настройки модуля
-
priorityиchangefreqодинаковые для всех URL. Настраиваем: главная —1.0 / daily, категории —0.8 / weekly, товары —0.6 / weekly, статьи —0.5 / monthly - При каталоге > 50 000 URL — один sitemap.xml превышает лимит. Создаём 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/
# Google не понимает Clean-param — используем canonical
Sitemap: https://site.ru/sitemap.xml
Ключевой момент: Clean-param работает только для Яндекса. Для Google параметры фильтрации закрываем через canonical URL и настройки в Search Console → «Параметры URL» (хотя Google постепенно убирает эту функцию и полагается на canonical).
Schema.org — микроразметка для сниппетов
JSON-LD в <head> — рекомендация и Google, и Яндекса. Внедряем через component_epilog.php или кастомный компонент:
-
Product —
name,image,description,sku,brand,offers.price,offers.priceCurrency,offers.availability. Данные изCIBlockElement::GetByID()+CCatalogProduct::GetByID() - AggregateRating — средний рейтинг из свойства инфоблока или модуля отзывов. Звёздочки в сниппете увеличивают CTR на 15-30%
-
BreadcrumbList — навигационная цепочка. Битрикс генерирует хлебные крошки через
CBitrixComponent, но без Schema.org-разметки. Добавляем@type: ListItemдля каждого уровня -
Organization — название, адрес, телефон,
logo,sameAs(соцсети). Выводится в правой панели Google - FAQPage — блоки вопросов-ответов. Занимают много места в выдаче, оттесняя конкурентов
-
WebSite + SearchAction — строка поиска прямо в сниппете.
potentialAction.targetведёт на/search/?q={search_term_string}
Валидация: Google Rich Results Test + Яндекс.Вебмастер → «Валидатор микроразметки».
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или.htaccess/ Nginxmap. На 10 000+ URL — только через Nginxmap, иначе Apache тормозит на каждом запросе - Авторедирект при смене
CODEэлемента — обработчикOnBeforeIBlockElementUpdateсохраняет старый URL в кастомную таблицу,init.phpпроверяет 404 и делает 301 - Устранение цепочек: A → B → C заменяем на A → C. Цепочка — потеря 1% PageRank на каждом звене и лишний краулинг
- Единый формат: www/без-www, HTTP/HTTPS, со слэшем/без слэша — один каноничный вариант, остальные — 301
Скорость загрузки — фактор ранжирования
-
Композитный кэш —
\Bitrix\Main\Composite\Engine. Превращает динамическую страницу в статический HTML. Первый хит — рендер PHP, последующие — отдача из файлового/memcached кэша за миллисекунды. Настройка:Производительность → Композитный сайт, исключения для корзины и ЛК -
Изображения — конвертация в WebP через
CFile::ResizeImageGet()с параметромBX_RESIZE_IMAGE_PROPORTIONAL+ lazy loading черезloading="lazy". Указаниеwidth/heightв<img>для предотвращения CLS -
CSS/JS — объединение и минификация через настройки ядра:
Настройки → Настройки продукта → Оптимизация CSS / JS. Критический CSS инлайном для FCP -
CDN —
Настройки → CDNв админке Битрикса. Статика улетает на edge-ноды -
Серверное — Brotli/gzip, HTTP/2, OPcache с
opcache.jitна PHP 8.1+, кэширующие заголовкиCache-Control: public, max-age=31536000для статики
Управление индексацией
- Яндекс.Вебмастер + Google Search Console — верификация, мониторинг ошибок сканирования, отслеживание покрытия индекса
- Краулинговый бюджет: если из 50 000 URL в sitemap проиндексированы только 5 000 — значит, робот тратит время на мусорные страницы. Чистим robots.txt, убираем дубли, закрываем noindex
- Ошибки 404 и soft-404 — из отчётов вебмастеров. Каждая — потеря краулингового бюджета. Исправляем: 301 на актуальную страницу или 410 (ресурс удалён навсегда)
- Мониторинг проседаний: если количество проиндексированных страниц резко упало — возможно, robots.txt закрыл что-то лишнее или canonical указывает не туда
Сроки
| Задача | Сроки |
|---|---|
| Базовая настройка (мета-теги, ЧПУ, sitemap, robots) | 1-2 недели |
| Schema.org для интернет-магазина | 1-2 недели |
| Комплексная техническая SEO-оптимизация | 3-5 недель |
| Оптимизация скорости (Композит, изображения, CDN) | 2-4 недели |
| SEO-фильтры с мета-тегами и ЧПУ | 2-3 недели |
| Миграция с редиректами | 1-3 недели |
SEO — не разовая задача. Алгоритмы Яндекса и Google меняются, конкуренты дорабатывают свои сайты, каталог растёт. Мы ведём и разовую оптимизацию, и абонентское SEO-сопровождение с ежемесячным аудитом позиций, индексации и технических ошибок.







