Codebrain поддержка
codebrain.seofilter

SEO умного фильтра: посадочные страницы, ЧПУ, мета-теги

Модуль codebrain.seofilter превращает комбинации умного фильтра каталога в полноценные посадочные страницы: «Платья из вискозы», «Кроссовки Nike белые», «Диваны до 30 000 ₽». У каждой страницы — свой понятный адрес, title, description, H1, хлебная крошка, SEO-тексты, место в облаке тегов и в карте сайта.

Модуль бесплатный, работает без правки шаблона сайта и сам следит за страницами: появились новые значения свойств — создаёт страницы, закончились товары — закрывает страницу от индексации, вернулись — открывает снова.

#Возможности

  • Страницы из условий: раздел каталога + свойства фильтра → по странице на каждую комбинацию значений, в которой есть товары. Свойства-списки, строки, справочники, привязки, свойства торговых предложений, цены и числовые свойства по диапазонам.
  • ЧПУ без правки шаблона: /catalog/dresses/viskoza/ вместо /catalog/dresses/filter/material-is-viskoza/apply/. Адрес фильтра перенаправляется на посадочную (301), ссылки фильтра сразу ведут на неё.
  • Мета-теги по шаблонам с переменными, падежами, ценами, брендами и наличием; наследование шаблонов сайт → инфоблок → раздел → условие → страница.
  • SEO-тексты над и под списком товаров, блок «Вопросы и ответы» с разметкой FAQPage, OG-теги.
  • Перелинковка: облако тегов, похожие страницы, теги в карточке товара, ссылки на посадочные прямо внутри умного фильтра.
  • Индексация: карта сайта, IndexNow, ЧПУ пагинации, правила noindex и canonical для страниц фильтра.
  • Контроль качества: каннибализация, одинаковые и длинные мета-теги, проверка страниц на сайте.
  • Спрос: какие комбинации фильтра открывают посетители и ищут в поиске по сайту — страницы из отчёта создаются в один клик.
  • Импорт из списка адресов (текст, CSV, XLSX) — например, при переходе с другого SEO-модуля: страницы сохраняют прежние адреса.
  • ИИ-тексты через бесплатный модуль «AI-генератор контента» на ваших ключах.

#Требования

Что Требование
Платформа 1С-Битрикс: Управление сайтом, главный модуль 20.0 или новее; модуль «Информационные блоки», для цен и наличия — «Торговый каталог»
PHP 7.3 или новее
Кодировка UTF-8
Каталог Комплексный компонент bitrix:catalog с умным фильтром bitrix:catalog.smart.filter — в режиме ЧПУ или на GET-параметрах
Фасетный индекс Рекомендуется: с ним подсчёт товаров быстрый. Без индекса модуль работает, но генерация на больших каталогах медленнее
Агенты Рекомендуется выполнять агенты на cron — пересчёт страниц, карта сайта и аудит идут фоном

#Установка

  1. Установите модуль из Маркетплейса: Marketplace → Каталог решений, найдите «SEO умного фильтра» и нажмите «Установить».
  2. При установке модуль сам находит каталоги сайта — по правилам обработки адресов и параметрам компонента bitrix:catalog.
  3. В главном меню административной панели появится раздел Codebrain → SEO умного фильтра.
Раздел «SEO умного фильтра» в меню административной панели
  1. Откройте Мастер интеграции — он проверит каталоги, фасетный индекс, правила адресов, агентов и шаблон сайта и подскажет, что настроить.
Мастер интеграции: проверка установки

Кнопка «Проверить с открытием страниц» откроет три посадочные и их разделы и покажет, встали ли на место H1, title, canonical, robots, SEO-текст, облако тегов и редирект с адреса фильтра. Для каждой проблемы — подсказка, что сделать именно в вашем шаблоне (стандартный магазин, Аспро, Сотбит, INTEC, Deluxe и другие).

#Быстрый старт

  1. Условия → Добавить условие. Выберите каталог, разделы и одно-два свойства фильтра — например, «Платья» и «Материал».
  2. На вкладке «Адреса и индексация» нажмите «Предпросмотр» — модуль покажет, сколько страниц получится, их адреса, H1 и title.
  3. Нажмите «Сохранить и сгенерировать».
  4. Откройте любую страницу из списка на сайте: у неё свой адрес, заголовок, мета-теги и текст, в фильтре отмечено нужное значение, а адрес фильтра перенаправляется на неё.
Посадочная страница на сайте: свой H1, облако тегов, текст, отмеченное значение фильтра

#Условия

Условие — это правило, по которому создаются страницы: где (каталог и разделы) и по каким свойствам. Модуль создаёт по странице на каждую комбинацию значений, в которой не меньше заданного числа товаров.

Список условий

Условия можно объединять в группы, копировать, выключать, перегенерировать. Число страниц ведёт в список посадочных этого условия, «пустых: N» — к страницам, где закончились товары.

#Где создавать страницы

Условие: каталог и разделы
  • Разделы — одна или несколько; галочка «и во всех их подразделах» распространяет условие вниз по дереву.
  • Корень каталога — страницы без раздела (/catalog/brand-x/), если шаблон каталога показывает товары и фильтр на корневой странице.
  • Сортировка — она же приоритет: если два условия дают одну и ту же страницу, её получает условие с меньшей сортировкой.
  • Минимум товаров на странице и не больше страниц — защита от тонких страниц и от взрывного роста комбинаций.

#Свойства фильтра

Свойства фильтра в условии
  • В списке — свойства, которые показаны в умном фильтре, включая свойства торговых предложений и цены.
  • Каждая страница получает по одному значению каждого отмеченного свойства. Нужны страницы и по одному свойству, и по паре («Бренд» и «Бренд + Цвет») — создайте два условия.
  • Можно выбрать только часть значений — например, пять главных брендов. Ничего не выбрано — все значения.
  • Порядок свойств (перетаскиванием) задаёт порядок значений в {values} и в адресе.
  • Цены и числовые свойства — по диапазонам, по одному на строку: 0-5000, 5000-10000, 10000- (без верхней границы).
  • В адресе: только значение (/viskoza/) или код свойства и значение (/material-viskoza/).

#Дополнительные условия

Страницы, которых нет в фильтре напрямую:

  • Только товары в наличии.
  • Новинки — добавленные за последние N дней.
  • Подборка — список ID товаров.
  • Свой фильтр — JSON в формате фильтра CIBlockElement::GetList, например «со скидкой» по свойству: {"PROPERTY_SALELEADER_VALUE": "да"}. Разрешены ключи свойств (PROPERTY_*), полей каталога (CATALOG_*), AVAILABLE, QUANTITY, ID, XML_ID, CODE, NAME, даты, SORT, TAGS — с префиксами сравнения (!, >=, %…).

Такая страница — отдельная: адрес фильтра на неё не перенаправляется, ведь фильтр показал бы другой набор товаров.

#Адреса и индексация

Условие: шаблон адреса, индексация, пустые страницы

Шаблон адреса собирается из переменных:

Переменная Что подставляется
#SECTION_URL# Адрес раздела
#VALUES# Значения через разделитель, в порядке свойств
{CODE} Значение одного свойства — так задаётся любой порядок: #SECTION_URL#{brand_ref}/{color}/
#SECTION_CODE#, #SECTION_CODE_PATH#, #SECTION_ID# Код, путь кодов и ID раздела
#CATALOG# Папка каталога

Адрес может быть и вне каталога — например, /{brand_ref}/: модуль сам добавит правило обработки адресов. Значения транслитерируются, свой фрагмент адреса для значения задаётся в словаре значений. Если адрес занят разделом, товаром, файлом сайта или другой посадочной, к нему добавляется -2.

Если товаров стало меньше минимума:

  • оставить страницу, закрыть от индексации, убрать из тегов и карты сайта (по умолчанию);
  • временно (302) перенаправлять в раздел;
  • отдавать 404.

Когда товары вернутся, страница откроется сама. Галочка «Обновлять автоматически» включает условие в пересчёт агентом раз в 6 часов: новые значения свойств получат страницы, опустевшие страницы закроются.

Предпросмотр до сохранения показывает, сколько страниц получится, сколько из них уже есть, а также адрес, H1, title и число товаров каждой страницы.

Предпросмотр страниц условия

#Мета-теги и тексты

На вкладке «Мета-теги и тексты» условия задаются шаблоны для всех его страниц: H1, title, description, keywords, пункт хлебных крошек, текст ссылки в облаке тегов, SEO-тексты сверху, снизу и дополнительный, вопросы и ответы, картинка для соцсетей.

Шаблоны мета-тегов условия

Пустое поле берётся из шаблонов раздела, инфоблока или сайта, затем из шаблонов по умолчанию в настройках модуля (показаны серым).

#Переменные

Переменная Значение
{section} Название раздела
{values} Значения фильтра через запятую
{prop:CODE} Значение свойства; для цены — код типа цены: {prop:BASE}
{propname:CODE} Название свойства
{site} Название сайта
{count} Число товаров; со словом в нужной форме — см. ниже
{min_price}, {max_price} Цены страницы с валютой
{brands_top3} Три самых частых бренда страницы
{in_stock_count} Товаров в наличии
{discount_max} Наибольшая скидка
{rating} Средний рейтинг товаров
{city} Регион (региональные модули Аспро и Сотбит)
{section_picture} Картинка раздела — удобно для og:image

Число со словом: {count|товар|товара|товаров} — «1 товар», «3 товара», «12 товаров».

Модификаторы: .lower, .upper, .ucfirst и падежные формы из словаря значений — .gen, .dat, .acc, .ins, .pre, .plural, .plural_gen. Например, {prop:COLOR.gen.lower} или {city.pre}.

Условный блок: {?min_price}от {min_price}{/?} — выводится, только если цена есть.

Варианты: {Купить|Заказать} — вариант выбирается по адресу страницы и не меняется между показами, поэтому соседние страницы получают разные формулировки.

Пример шаблона title:

{section} {prop:MATERIAL.lower} — {count|модель|модели|моделей}{?min_price} от {min_price}{/?} | {site}

Макросы шаблонов Аспро вроде #REGION_NAME_DECLINE_PP# можно писать как есть.

#Где выводятся тексты

  • Верхний текст — вместо описания раздела, перед ним или после него (настройка условия). Если на странице нет описания раздела, текст встаёт после H1.
  • Нижний и дополнительный тексты — в маркеры шаблона (см. «Вывод на сайте»).
  • Вопросы и ответы: вопрос и ответ с новой строки, блоки разделяются пустой строкой. Блок выводится после нижнего текста или в маркер <!--codebrain_seofilter_faq--> вместе с разметкой FAQPage.

#Шаблоны по разделам

Шаблоны по разделам — мета-шаблоны для всего сайта, инфоблока или раздела (действуют и на подразделы). Так можно задать свой title для всего раздела «Обувь», не трогая условия.

Шаблоны по разделам

Наследование: сайт → инфоблок → раздел → условие → страница. Серым показано, что будет взято с уровня выше.

#Посадочные страницы

Посадочные страницы — все страницы модуля: адрес, раздел и значения, H1, title, число товаров, статус.

Список посадочных страниц
  • Фильтр по условию, статусу (есть товары, пустые, выключены, закрыты, с закреплённым адресом, со своими мета-тегами) и поиск по адресу, тексту мета-тегов или ID.
  • Колонки списка настраиваются: description, цены, откуда страница, условие, дата изменения, визиты из поиска.
  • Двойной клик по H1 или title — правка прямо в списке (Enter — сохранить, Esc — отмена).
  • Групповые действия: включить, выключить, разрешить или закрыть индексацию, снять закрепление адреса, сбросить свои мета-теги, пересчитать товары, пересобрать адрес по шаблону (со старого — 301), проверить на сайте, сгенерировать тексты через ИИ, удалить.
  • Создать страницу вручную: раздел и значения фильтра, в том числе несколько значений одного свойства («или») и диапазоны цен.

#Массовое редактирование в Excel

Внизу списка — «Выгрузить CSV» и «Выгрузить в Excel (XLSX)»: выгружаются страницы по текущему фильтру. Отредактируйте мета-теги и адреса в Excel и загрузите файл обратно.

  • Страницы ищутся по ID, без ID — по адресу.
  • Пустая ячейка мета-тега — шаблон условия; заполненная — своё значение страницы.
  • CSV — с разделителем ;, в UTF-8 или windows-1251.
  • Сначала загрузите с галочкой «только проверить» — модуль покажет, сколько страниц изменится, и найдёт ошибки, ничего не записывая.

#Страница

Страница: свои мета-теги и предпросмотр сниппета
  • Адрес можно изменить вручную и закрепить — генерация его больше не тронет. Со старого адреса модуль перенаправляет (301).
  • Адрес фильтра — с него посетители и роботы перенаправляются на посадочную.
  • Индексация: как в условии, разрешить или запретить.
  • Canonical на страницу (ID) — для дублей: страница остаётся доступной, но указывает на основную, закрывается от индексации и уходит из карты сайта.
  • Свои мета-теги и тексты: пустое поле — значение из шаблона (показано под полем), заполненное — только для этой страницы, генерация его не перезапишет. Под полями — предпросмотр сниппета в Google и Яндексе с длиной title и description в пикселях.
  • Проверить на сайте — модуль откроет страницу и сравнит код ответа, title, H1, canonical и robots с настройками.

#История и откат

Каждое изменение страницы — вручную, генерацией, из Excel, импортом или ИИ — попадает в историю. Кнопка «Вернуть» восстанавливает прежние значения; откат тоже попадает в историю.

История изменений страницы

#Словарь значений

Словарь значений — как значение свойства выглядит в текстах и адресах:

  • SEO-название вместо подписи в фильтре: «Без покрытия (светлая)» → «без покрытия».
  • Фрагмент адреса: своя транслитерация или короткое имя. Новый адрес применится при следующей генерации, со старого будет 301.
  • Падежные формы для шаблонов: родительный, дательный, винительный, творительный, предложный, множественное число — для {prop:COLOR.gen} и других модификаторов.
Словарь значений с падежными формами

Кнопка «Заполнить пустые формы автоматически» строит формы по правилам русского языка (прилагательные, основные типы существительных, словосочетания); латиница и фразы с предлогом не меняются. С модулем «AI-генератор контента» доступно и «Заполнить пустые формы через ИИ». Это черновик — проверьте результат; заполненные вручную формы не перезаписываются.

#Вывод на сайте

Модуль не требует правки шаблона: H1, title, мета-теги, canonical, тексты и облако тегов ставятся сами. Настройки — Настройки → Вывод на сайте.

Настройки → Вывод на сайте
  • Заменять H1 прямо в HTML — для шаблонов, которые выводят заголовок не через $APPLICATION->ShowTitle(false) (часто — Аспро, INTEC, Deluxe).
  • Ставить OG-теги посадочной — og:title, og:description, og:url, og:image; теги шаблона заменяются.
  • Ссылки умного фильтра сразу ведут на посадочные — кнопка «Показать» и отправка формы фильтра открывают адрес посадочной без промежуточного редиректа.
  • В AJAX-каталогах обновлять title, H1 и тексты — для шаблонов, которые подгружают товары без перезагрузки и меняют адрес через history.pushState.
  • Ссылки на посадочные внутри умного фильтра — подпись значения становится ссылкой <a href>: поисковик видит перелинковку, посетитель кликает по фильтру как обычно.
  • Посадочные в поиске по сайту — заголовок и SEO-тексты индексируются модулем «Поиск».
  • Адрес сайта для canonical и карты сайта — если у сайта не заполнен «URL сервера».

#Маркеры и компоненты

Если блок не встал автоматически, поставьте в шаблон маркер:

Маркер Что выводится
<!--codebrain_seofilter_top--> Верхний SEO-текст
<!--codebrain_seofilter_bottom--> Нижний SEO-текст
<!--codebrain_seofilter_extra--> Дополнительный текст
<!--codebrain_seofilter_faq--> Вопросы и ответы
<!--codebrain_seofilter_tags--> Облако тегов
<!--codebrain_seofilter_similar--> Похожие страницы

Компоненты: codebrain:seofilter.tags (облако тегов: посадочные раздела, уточняющие, похожие или «в карточке товара») и codebrain:seofilter.map (карта всех посадочных — например, для страницы «Каталог брендов»).

#Перелинковка

Облако тегов в разделе каталога

Настройки → Перелинковка:

  • Облако тегов после H1 раздела и посадочной — без правки шаблона. Число ссылок, сколько показывать сразу (остальные — по кнопке «Ещё»), сортировка (по индексу, алфавиту, числу товаров или популярности), группировка по свойствам («По бренду», «По цвету»).
  • Похожие посадочные — 3–6 страниц с самыми близкими наборами товаров, в маркер или компонент.
  • Теги в карточке товара — посадочные, в которые входит товар.
  • Ссылки внутри умного фильтра — см. «Вывод на сайте».

Текст ссылки в облаке — поле «Текст ссылки в облаке тегов» шаблона (по умолчанию {values}), порядок — «Сортировка в облаке тегов» страницы.

#Индексация

Настройки → Индексация:

  • ЧПУ пагинации: /page-2/ вместо ?PAGEN_1=2 на посадочных и в разделах. Старые адреса перенаправляются (301), ссылки пагинатора переписываются. Canonical страниц пагинации — на себя или на первую страницу.
  • noindex для страниц с сортировкой и видом (sort, order, view…), для страниц пагинации кроме первой, для страниц фильтра с N и больше значениями («бренд + цвет» индексируется, «бренд + цвет + размер» — нет).
  • Страницы фильтра без посадочной — закрыть от индексации (noindex, follow) или поставить canonical на раздел. Тогда в индексе остаются только посадочные.
  • Карта сайта sitemap-seofilter.xml — раз в сутки агентом или по кнопке «Записать сейчас» на вкладке «Обслуживание»; добавляется в индекс /sitemap.xml модуля SEO. Для региональных поддоменов — отдельный файл на каждый домен.
  • IndexNow — новые и изменённые посадочные раз в час отправляются в Яндекс и Bing. Ключ создаётся модулем и кладётся в корень сайта.

Мастер интеграции показывает строки для robots.txt, которые закрывают страницы фильтра без посадочной. Модуль файл не меняет — добавьте их вручную.

#Качество

Качество — аудит посадочных раз в сутки (агент) или по кнопке.

Качество посадочных
Проблема Что делать
Каннибализация Почти одинаковые наборы товаров (порог в настройках, по умолчанию 90%): страницы спорят за одни запросы. Оставьте одну, у второй поставьте canonical на первую или выключите её — действие доступно прямо в отчёте
Одинаковый title, H1, description Добавьте в шаблон различающую переменную или поправьте страницы
Пустой H1, длинный title или description Поправьте шаблон; пороги длины — в настройках
Код ответа, title, H1, canonical, robots на сайте другие Шаблон или другой модуль перебивает значения модуля — подсказка в строке отчёта

«Проверить 30 страниц на сайте» запрашивает страницы и сравнивает, что видит поисковик, с тем, что задано. Включите ежедневную проверку части страниц в Настройках → Качество и спрос. Если сервер не может открыть сайт по внешнему адресу, укажите адрес для проверок (например, http://nginx) — запросы пойдут туда с заголовком Host сайта.

Из любой строки отчёта можно открыть эти страницы в списке и исправить групповым действием.

#Спрос

Спрос подсказывает, какие страницы создать.

Отчёт «Спрос»
  • Применения фильтра — комбинации, которые открывают посетители и для которых ещё нет посадочной. Учитывается одна запись на состояние фильтра в месяц, без IP, cookies и данных посетителей; роботы не учитываются.
  • Поиск по сайту — фразы из статистики модуля «Поиск», в которых есть название раздела и значение свойства: «белые кроссовки» → раздел «Кроссовки», цвет «белый».

Кнопка «Создать страницу» делает посадочную из строки отчёта. Сбор статистики и срок хранения — в Настройках → Качество и спрос.

#Импорт из списка адресов

Импорт создаёт посадочные из списка адресов без потери позиций: страница получает тот же адрес, что был у неё раньше — например, в другом SEO-модуле, — и свои мета-теги. Адрес закрепляется — перегенерация его не изменит.

Импорт посадочных страниц
  • Формат строки — текст, CSV или XLSX: ЧПУ;адрес фильтра;title;h1;description;keywords;text_top;text_bottom. Разделитель — ;, , или табуляция; можно добавить строку заголовков с именами колонок (url, filter_url, title…).
  • Строка только с адресом фильтра — ЧПУ будет построен по шаблону условия.
  • Страницы можно привязать к условию — тогда они будут обновляться вместе с ним.
  • Сначала запускайте с галочкой «Только проверить».

Переход с другого SEO-модуля: выгрузите из него список «адрес фильтра → ЧПУ» с мета-тегами (обычно это экспорт в CSV или Excel) и загрузите его здесь. Затем выключите условия старого модуля, иначе мета-теги будут ставить оба модуля.

Совет макросы старого модуля в мета-тегах не переводятся. После импорта найдите их поиском в списке посадочных и замените переменными модуля.

#ИИ-тексты

С бесплатным модулем «AI-генератор контента» посадочные получают H1, title, description, SEO-тексты и вопросы-ответы, написанные языковой моделью на ваших ключах.

ИИ-тексты посадочных
  • Модель получает факты страницы: раздел, значения фильтра, число товаров, цены, частые бренды, наличие, скидку, распределение характеристик и до 8 названий товаров — и пишет только по ним.
  • Тексты сравниваются с соседними страницами условия: слишком похожий текст переписывается ещё раз (порог — в Настройках → ИИ).
  • Задача — страницы условия или список ID, выбранные поля, «только пустые» или с перезаписью. Задача выполняется, пока открыта страница, и агентом в фоне; при ограничении скорости провайдера ждёт и продолжает. Десять страниц с ошибкой подряд останавливают задачу.
  • «Попробовать на одной странице» показывает результат и промпт с фактами, ничего не сохраняя.
  • Кнопки «✨ ИИ» есть у полей на странице посадочной и в групповых действиях списка.
  • Результат пишется в свои мета-теги страницы и попадает в историю — его можно откатить.

Промпты, системный промпт и провайдер для SEO-текстов (по умолчанию — все включённые по порядку, с переключением при ошибке) настраиваются в Настройках → ИИ. Стоимость задачи показывается по ценам провайдеров.

#Настройки

Настройки модуля разделены на вкладки:

Вкладка Что настраивается
Каталоги Где на сайте каталоги и как устроены их адреса; кнопка «Найти каталоги»
Вывод на сайте H1, OG-теги, ссылки фильтра, AJAX-каталоги, поиск по сайту, адрес сайта
Перелинковка Облако тегов, похожие страницы, теги в карточке товара, свойство бренда для {brands_top3}
Индексация ЧПУ пагинации, noindex и canonical, карта сайта, IndexNow
Качество и спрос Пороги аудита, проверка страниц на сайте, статистика фильтра
Яндекс Необязательно: Вебмастер и Метрика на вашем OAuth-токене
ИИ Промпты и провайдер ИИ-текстов
Права Кто и что может делать в модуле
Шаблоны по умолчанию Шаблоны мета-тегов для полей, не заполненных нигде выше
Обслуживание Карта сайта и пересчёт сейчас, маркеры для шаблона
Настройки → Каталоги

Шаблоны адресов каталога — те же, что в компоненте bitrix:catalog (относительно папки каталога). Пустой шаблон умного фильтра означает, что фильтр работает на GET-параметрах (?set_filter=y…); модуль поддерживает оба варианта.

#Яндекс Вебмастер и Метрика

Необязательно. OAuth-токен Яндекса с доступом к Вебмастеру и/или Метрике:

  • новые посадочные отправляются на переобход (с учётом дневной квоты Вебмастера) — укажите ID сайта в Вебмастере вида https:example.ru:443;
  • в список посадочных добавляются визиты из поиска и отказы за 30 дней — укажите номер счётчика Метрики.

Токен хранится в настройках модуля и на странице не показывается.

#Права доступа

Настройки → Права: группам пользователей назначаются уровни.

Уровень Что можно
Просмотр Списки, отчёты, мастер интеграции
Редактирование Условия, страницы, словарь значений, шаблоны
Генерация Запуск генерации, пересчёт, импорт, удаление страниц, ИИ-тексты
Настройки Настройки модуля

Администраторы могут всё. HTML в текстах, сохранённых не администраторами, очищается: остаются безопасные теги и ссылки, скрипты и обработчики событий удаляются.

#Как это работает

  • Модуль перехватывает запрос посадочной в начале страницы и показывает каталог так, будто открыт адрес фильтра: компоненты каталога и фильтра работают как обычно, шаблон не меняется. Адрес в браузере остаётся адресом посадочной.
  • Адрес фильтра, у которого есть посадочная, перенаправляется на неё (301), с сохранением UTM-меток и прочих параметров.
  • Число товаров считается по фасетному индексу инфоблока. Если индекс устарел (например, после прямых правок базы), мастер интеграции это покажет и пересоздаст индекс по шагам.
  • Страницы с собственными правками (свои мета-теги, закреплённый адрес) генерация не перезаписывает.
  • Модуль совместим с композитным сайтом: правки страницы делаются до сохранения в кеш.

#Агенты

Агент Как часто Что делает
Пересчёт Раз в 6 часов Условия с автообновлением: новые страницы, пустые, вернувшиеся
Карта сайта Раз в сутки sitemap-seofilter.xml
Аудит качества Раз в сутки Каннибализация, дубли мета, проверка части страниц на сайте
Отправка Раз в час IndexNow и переобход в Вебмастере
ИИ-тексты Раз в минуту Задачи ИИ-текстов

#Данные и конфиденциальность

  • Статистика спроса — одна запись на состояние фильтра в месяц: без IP, cookies и данных посетителей.
  • Никаких данных на серверы Codebrain модуль не отправляет.
  • Внешние запросы — только по включённым вами функциям: IndexNow (адреса страниц — Яндексу и сети IndexNow), Яндекс Вебмастер и Метрика (на вашем токене), ИИ-тексты (факты страницы — выбранному LLM-провайдеру через модуль «AI-генератор контента»).
  • Токен Яндекса хранится в настройках модуля и на страницы не выводится.

#Для разработчиков

#События

Модуль отправляет события, на которые можно подписаться в своём модуле или init.php:

use Bitrix\Main\EventManager;
use Bitrix\Main\EventResult;

EventManager::getInstance()->addEventHandler('codebrain.seofilter', 'OnBeforeLandingMeta', function ($event) {
    $meta = $event->getParameter('meta');
    $meta['title'] .= ' — доставка по России';
    return new EventResult(EventResult::SUCCESS, ['meta' => $meta]);
});
Событие Параметры Что можно сделать
OnLandingResolve landing, url Перед показом посадочной: ERROR — показать страницу как без модуля; SUCCESS с landing — подменить страницу
OnBeforeLandingMeta landing, condition, meta Изменить мета-теги и тексты (SUCCESS с meta)
OnTemplateVariables landing, variables Добавить свои переменные шаблонов (SUCCESS с variables)
OnAfterGenerate condition_id, stat После генерации условия
OnAfterLandingSave id, old, fields После сохранения страницы

#API

use Codebrain\Seofilter\Api;

\Bitrix\Main\Loader::includeModule('codebrain.seofilter');
$landing = Api::getCurrent();          // посадочная текущей страницы или null
$meta = Api::getMeta();                // её мета-теги и тексты после шаблонов
Api::findByFilterUrl(SITE_ID, $url);   // посадочная адреса фильтра (ЧПУ или GET)
Api::findByUrl(SITE_ID, $url);         // посадочная по её адресу
Api::parseFilterUrl(SITE_ID, $url);    // раздел и значения адреса фильтра

#Удаление модуля

Marketplace → Установленные решения → SEO умного фильтра → Удалить. Модуль спросит, сохранить ли данные: условия, посадочные страницы, словарь значений и настройки. Если оставить галочку, после повторной установки всё вернётся.

После удаления адреса посадочных страниц перестанут открываться, а правила обработки адресов модуля удаляются. Перед удалением подумайте о редиректах с посадочных — например, выгрузите список страниц в Excel.

#Частые вопросы

Страниц получилось меньше, чем комбинаций. Страница создаётся, только если в комбинации не меньше «Минимума товаров на странице», и не больше лимита страниц условия. Значения, которые уже заняты условием с меньшей сортировкой, пропускаются — их число видно в сообщении после генерации.

Число товаров на посадочной не совпадает с разделом. Подсчёт идёт по фасетному индексу. Если индекс устарел, мастер интеграции покажет это и предложит пересоздать его.

H1 на посадочной не меняется. Шаблон выводит заголовок не через $APPLICATION->ShowTitle(false). Включите Настройки → Вывод на сайте → Заменять H1 прямо в HTML.

Title или canonical на сайте другие. Их выводит шаблон напрямую или другой SEO-модуль. «Проверить на сайте» на странице посадочной покажет, что именно отличается; подсказки — в мастере интеграции.

SEO-текст не появился. На странице нет описания раздела и H1 для автоматической вставки. Поставьте маркер <!--codebrain_seofilter_top--> в шаблон раздела или выберите другой режим вывода текста в условии.

Адрес фильтра не перенаправляется на посадочную. Проверьте шаблон умного фильтра в Настройках → Каталоги — он должен совпадать с адресами фильтра на сайте (ЧПУ или GET). У страниц с дополнительными условиями редиректа с адреса фильтра нет — так задумано.

Посадочная открывается с 404. Страница пустая и в условии выбрано «Отдавать 404», или страница выключена. Статус виден в списке посадочных.

Нужны страницы по одному свойству и по паре свойств. Создайте два условия: «Бренд» и «Бренд + Цвет».

Как перенести страницы со старого SEO-модуля, не потеряв позиции? Выгрузите из старого модуля список «адрес фильтра → ЧПУ» и загрузите его через Импорт: адреса страниц сохранятся и закрепятся. Запустите сначала с «Только проверить».

Изменил адрес значения в словаре — что со старыми адресами? После генерации условия страницы получат новые адреса, со старых будет 301.

Не нашли ответ — нажмите «Техподдержка» вверху страницы.