-15%Скидка 15% на разработку сайта или магазина при старте до конца месяца

Умный фильтр в 1С-Битрикс: настройка, фасетный индекс и ускорение каталога

Умный фильтр каталога в 1С-Битрикс: панель фильтра, фасетный индекс и быстрый отклик

Покупатель приходит в каталог, выбирает «бренд + цвет + цену» — и ждёт. На сотне товаров это незаметно, а на каталоге в десятки тысяч позиций фильтр начинает думать по несколько секунд, посетители уходят, а вместе с ними и заказы. В 1С-Битрикс за фильтрацию отвечает умный фильтр — компонент catalog.smart.filter, который работает быстро только при одном условии: правильно построенном фасетном индексе.

Ниже — практическая настройка умного фильтра с нуля: какие свойства включать, как построить и обновлять фасетный индекс, как превратить фильтр в SEO-страницы и что делать, если он всё равно тормозит. Это выжимка из наших проектов по разработке интернет-магазинов на 1С-Битрикс — без теории ради теории.

Коротко

  • Умный фильтр быстрый, потому что опирается на фасетный индекс — без него он считает всё «на лету» и тормозит.
  • Фильтруемые свойства держите в типе «список» или «число», а не «строка».
  • После большого обмена с 1С перестраивайте фасетный индекс — вручную или по расписанию.
  • Включите кэширование компонента и популярные комбинации фильтра отдайте как ЧПУ-страницы под SEO.

Что такое умный фильтр и фасетный индекс

Умный фильтр — это штатный компонент bitrix:catalog.smart.filter, который строит панель фильтрации по свойствам инфоблока торгового каталога. Его ключевое отличие от «обычного» фильтра — поддержка фасетного индекса.

Фасетный индекс — это заранее просчитанная таблица соответствий «значение свойства → товары». Когда покупатель отмечает «синий», система не сканирует весь каталог, а берёт готовый список и тут же показывает, сколько товаров останется по каждому из оставшихся значений. Отсюда два эффекта: мгновенные счётчики у каждого пункта и отсутствие тяжёлых запросов к базе на каждый клик.

Чтобы понять, почему фасет так важен, стоит представить альтернативу. Без него каждый клик по фильтру превращается в запрос вида «выбери все товары, у которых свойство A равно X, свойство B равно Y, и заодно посчитай, сколько товаров останется по каждому из ещё не выбранных значений». На каталоге в пятьдесят тысяч позиций с десятком фильтруемых свойств это десятки тяжёлых соединений таблиц на одно нажатие. Фасетный индекс выносит всю эту арифметику в отдельную плоскую структуру, которую читать почти бесплатно.

Важно понимать, что умный фильтр — это не «волшебная кнопка ускорения», а связка из трёх вещей: правильно типизированных свойств каталога, построенного и поддерживаемого в актуальном состоянии фасетного индекса и включённого кэширования компонента. Если выпадает хотя бы одно звено, фильтр либо тормозит, либо показывает неверные счётчики, либо теряет SEO-потенциал. Дальше мы разберём каждое звено отдельно.

Важно: фасетный индекс доступен только для свойств инфоблока с включённой опцией «Участвует в умной фильтрации». Свойство, не помеченное так, в фасет не попадёт и будет фильтроваться медленным способом.

Архитектура умного фильтра: из чего он собран

Чтобы настраивать фильтр осознанно, полезно держать в голове его внутреннее устройство. Умный фильтр в 1С-Битрикс — это не один монолит, а несколько слоёв, каждый из которых отвечает за свою задачу.

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

Браузер catalog.smart.filter панель фильтра Фасетный индекс catalog.section список товаров Управляемый кэш
Схема: запрос проходит от браузера через компонент фильтра к фасетному индексу, затем в список товаров; результат удерживает управляемый кэш.

Фасетный индекс изнутри: как устроена таблица

Слово «индекс» здесь не про индекс СУБД в привычном смысле, а про отдельную служебную таблицу, которую Битрикс строит и поддерживает сам. Концептуально в ней для каждого товара хранятся все его значения умно-фильтруемых свойств в нормализованном виде — числовые идентификаторы значений списков, диапазоны для чисел, признаки наличия. Когда пользователь выбирает набор значений, система пересекает соответствующие множества товаров и получает результат без обращения к основным «тяжёлым» таблицам свойств.

Из устройства фасета вытекают практические следствия, о которых стоит помнить при проектировании каталога:

Главный риск фасета — рассинхронизация. Если данные меняются в обход событий ядра (прямые SQL-вставки, нестандартный импорт, агрессивная пакетная загрузка), индекс может не узнать об изменениях и начать показывать устаревшие счётчики. Именно поэтому после массовых операций фасет принято перестраивать целиком — об этом отдельный раздел ниже.

Фасет: товар → значения свойств SKU Бренд Цвет Цена A-100112синий2490 A-100212синий3190 A-100307зелёный1990 Запрос: Бренд = 12 И Цвет = синий Пересечение множеств → 2 товара, мгновенно, без обхода каталога
Схема: фасет хранит значения свойств плоско, поэтому выбор «бренд + цвет» сводится к быстрому пересечению множеств.

Типы свойств: какие включать в фасет

Половина проблем со скоростью фильтра решается на этапе типизации свойств. Битрикс умеет фильтровать по разным типам, но эффективность у них разная. Ориентируйтесь на таблицу:

Тип свойстваВ фасетКогда уместно
СписокДа, идеальноБренд, цвет, материал, тип — конечный набор значений
ЧислоДа, диапазономЦена, вес, мощность, диагональ — бегунок «от и до»
Привязка к справочнику (highload)ДаБольшие справочники характеристик, общие для многих товаров
Да/Нет (флаг)Да«В наличии», «со скидкой», «новинка»
СтрокаНежелательноПроизвольный текст плохо группируется и раздувает фасет
HTML/текст, файлНет смыслаОписания и медиа не предназначены для фильтрации

Практическое правило: всё, по чему покупатель реально хочет отсеивать товары, должно быть «списком», «числом» или привязкой к highload-справочнику. Если характеристика сейчас лежит в строке (например, цвет введён вручную текстом «Синий», «синий», «СИНИЙ»), её нужно нормализовать и перевести в список перед тем, как включать в фасет. Иначе вы получите три «разных» значения вместо одного и распухший индекс.

Совет: не выводите в фильтр всё подряд. Оптимум — 5–8 значимых характеристик на раздел. Каждое лишнее умно-фильтруемое свойство увеличивает фасет и нагружает панель, а покупателю чаще мешает, чем помогает.

Чем умный фильтр отличается от обычного — наглядно

КритерийУмный фильтр + фасетФильтр без фасетного индекса
Скорость на 50 000 товаровДесятки миллисекундСекунды, растёт с каталогом
Счётчики «сколько останется»Есть, считаются мгновенноДорого или отключены
Нагрузка на базуНизкая (читает индекс)Высокая (запрос на каждый клик)
SEO-страницы по фильтруПоддерживаются штатноТребуют доработки
Обновление после обмена с 1СНужна переиндексацияНе применимо

Настройка умного фильтра пошагово

  1. Подготовьте свойства каталога. Откройте инфоблок каталога и переведите фильтруемые характеристики (бренд, цвет, размер, материал) в тип «Список» или «Число». Тип «Строка» в фасет индексируется плохо и замедляет фильтр.
  2. Включите «Участвует в умной фильтрации». В настройках каждого нужного свойства поставьте этот флажок и при необходимости задайте, как свойство показывать в фильтре (флажки, выпадающий список, бегунок цены).
  3. Постройте фасетный индекс. В разделе «Контент → Торговый каталог → Настройки фасетного индекса» (или на вкладке инфоблока) запустите построение индекса. На большом каталоге это занимает время — лучше делать в часы низкой нагрузки.
  4. Разместите компонент. Подключите bitrix:catalog.smart.filter на странице раздела рядом со списком товаров (catalog.section) и укажите тот же инфоблок и набор свойств.
  5. Включите кэширование. В параметрах компонента задайте тип кэша «Авто» (managed cache), чтобы панель фильтра не пересобиралась на каждый запрос.
  6. Проверьте на боевых данных. Прокликайте популярные комбинации, убедитесь, что счётчики совпадают с реальным числом товаров, и замерьте время отклика.

Как это выглядит в админке 1С-Битрикс

Настройки фасетного индекса и умной фильтрации живут в свойствах инфоблока и в разделе торгового каталога. Схематично интерфейс настройки свойства выглядит так:

Свойство инфоблока: «Цвет» Тип свойства Список Умная фильтрация Участвует в умной фильтрации Вид в фильтре Флажки Цвет.фон Фасетный индекс Построен · актуален Переиндексировать
Схема: тип свойства «Список», включённая умная фильтрация и кнопка переиндексации фасета. Реальные подписи зависят от версии и редакции платформы.

Переиндексация и кэш: как держать фасет актуальным

Фасетный индекс — не статичная вещь, которую построили один раз и забыли. Он живёт вместе с каталогом, и от того, насколько грамотно настроено его обновление, зависит и скорость, и достоверность счётчиков. Различают два режима обновления.

Самая частая операционная проблема — рассинхрон после обмена с 1С. Обмен льёт в базу тысячи позиций пакетно, и если он идёт в обход событий, инкрементальное обновление их «не видит». Поэтому полное перестроение фасета имеет смысл повесить на агент по расписанию — например, ночью после планового обмена, в часы низкой нагрузки. Так каталог днём всегда работает на актуальном и тёплом индексе.

Кэширование — второй столп скорости. Оно работает на нескольких уровнях, и важно не путать их:

Уровень кэшаЧто кэшируетКогда сбрасывается
Кэш компонента фильтраHTML панели фильтра и счётчикиПри изменении товаров раздела
Управляемый кэш (managed)Выборки по тегам инфоблокаАвтоматически по тегам при правке данных
Композитный кэшСтатическую часть страницыПо TTL и тегам, динамика догружается

Типичная ошибка — отключить кэш «на время отладки» и забыть включить обратно. Внешне сайт работает, но каждый клик по фильтру пересобирает панель заново, и под нагрузкой это выливается в просадку. Перед выкладкой всегда проверяйте, что тип кэша компонента стоит в значении «Авто», а не «Не кэшировать».

Обмен с 1С Агент: перестроить Тёплый кэш Быстрый фильтр
Схема: после обмена с 1С агент перестраивает фасет в часы низкой нагрузки, прогревает кэш — и днём фильтр отвечает мгновенно.

Агрегаты, highload-блоки и единичные SKU

На реальных каталогах характеристики редко лежат «плоско» в самом товаре. Чаще есть торговые предложения (SKU) — размеры и цвета у одной модели, и общие справочники характеристик. Умный фильтр это поддерживает, но есть нюансы, которые стоит учесть.

Свойства торговых предложений. Когда у модели много вариаций, фильтровать нужно по свойствам SKU (размер, цвет конкретной позиции), а карточку показывать на уровне товара. Умный фильтр умеет агрегировать свойства предложений к родительскому товару — главное включить умную фильтрацию именно на нужном уровне инфоблока (товаров или предложений) и не дублировать одно свойство в обоих.

Highload-блоки. Большие общие справочники характеристик (например, единый список брендов на десятки тысяч позиций) удобно хранить в highload-блоке и привязывать к товарам как свойство-справочник. Плюсы для фильтра: значения нормализованы, не дублируются, легко расширяются дополнительными полями (иконка бренда, синоним для поиска). В фасет такие привязки попадают корректно и работают так же быстро, как обычные списки.

Единичные и «висящие» значения. Свойства, у которых почти каждое значение уникально (артикул, серийный номер, точная масса с тремя знаками), в фасет включать не нужно — они не помогают сужать выбор, зато раздувают индекс. Для них лучше подходит обычный поиск по каталогу, а не фильтр.

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

ЧПУ и SEO-страницы из умного фильтра

Самая недооценённая возможность умного фильтра — превращать комбинации значений в отдельные посадочные страницы. Связка «бренд + категория» или «материал + цвет» становится страницей с человекопонятным URL (ЧПУ — человекопонятный URL), своими title, description и H1 по шаблону. Так каталог сам генерирует сотни целевых страниц под низкочастотные запросы.

Технически это работает через правила обработки URL и SEO-инструменты раздела каталога. Вместо адреса с длинной строкой GET-параметров (которую поисковики не любят) формируется чистый путь вида /catalog/smartfony/apple/ или /catalog/divany/uglovye-serye/. Для каждого такого шаблона задаётся свой набор метатегов с подстановкой значений: «Купить {бренд} {категория} — цены, характеристики, доставка».

При проектировании SEO-страниц фильтра придерживайтесь нескольких принципов:

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

Фильтр Бренд: Apple Цвет: серый Память: 256 ГБ /catalog/smartfony/ apple/seryy/ title Apple серые — цены и наличие H1: Смартфоны Apple, серый цвет
Схема: осмысленная комбинация «бренд + цвет» превращается в чистый ЧПУ-адрес с собственным шаблоном метатегов и H1.

Склейка дублей и canonical

Обратная сторона мощного фильтра — риск засорить индекс поисковика мусорными страницами. Одни и те же товары можно получить разными путями: через разный порядок параметров, через бесконечные комбинации редких значений, через сортировки и постраничную навигацию. Если всё это открыто для индексации, поисковый робот тратит краулинговый бюджет на дубли, а ранжирование «размазывается» между почти одинаковыми URL.

Базовый набор мер против дублей:

Грамотная склейка дублей — это ровно тот баланс, который отличает фильтр-генератор трафика от фильтра-генератора проблем с индексацией. Создавайте посадочные под реальный спрос и жёстко канонизируйте всё остальное.

Производительность и метрики

«Фильтр стал быстрее» — субъективное ощущение. Чтобы управлять скоростью, её нужно измерять. Вот ориентиры и метрики, на которые стоит смотреть на большом каталоге.

МетрикаЧто показываетОриентир
Время отклика панели фильтраСкорость пересчёта счётчиковДесятки мс на тёплом фасете
Время построения списка товаровСкорость выборки по условиямДо нескольких сотен мс
Число SQL-запросов на кликОпирается ли фильтр на фасетЕдиницы, а не десятки
Время полного перестроения фасетаСтоимость переиндексацииПланировать на низкую нагрузку
LCP и INP страницы каталогаВоспринимаемую скорость для пользователя и Core Web VitalsLCP до 2,5 с, INP до 200 мс

Практический порядок диагностики: включите отладочную панель Битрикса или профилировщик и посмотрите на число и время SQL-запросов при клике по фильтру. Если запросов десятки и они тяжёлые — фасет не используется или не построен. Если запросов мало, но страница всё равно медленная — узкое место в выводе товаров, шаблоне или фронтенде, и тогда помогает композитный кэш и оптимизация вёрстки. Разделяйте «медленный бэкенд» и «медленный фронтенд»: лечатся они разными средствами.

Отдельно стоит держать в голове воспринимаемую скорость. Даже быстрый бэкенд не спасёт, если страница «прыгает» при загрузке фильтра. Композитный сайт отдаёт статическую часть мгновенно, а панель фильтра и список догружаются — пользователь видит каталог почти сразу, что прямо улучшает метрики LCP и INP.

Отклик фильтра на 50 000 товаров ~40 мс С фасетом ~2200 мс Без фасета
Схема: на одном и том же каталоге фасетный индекс даёт отклик в десятки миллисекунд против секунд у фильтра без индекса.

Если умный фильтр тормозит — что проверить

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

Частые ошибки при настройке

Мини-FAQ. Нужно ли перестраивать фасет после правки одного товара в админке? Нет — точечное изменение обновляет индекс инкрементально. Полное перестроение нужно только после массовых операций и обмена с 1С.

Чек-лист внедрения

Сведём всё в практический список, по которому удобно принимать готовность фильтра перед запуском:

  1. Свойства типизированы. Все фильтруемые характеристики переведены в «список», «число» или привязку к highload-справочнику; строковых среди них нет.
  2. Значения нормализованы. Нет дублей-синонимов в списках, регистр и написание приведены к единому виду.
  3. Умная фильтрация включена. На нужных свойствах стоит флаг «Участвует в умной фильтрации», уровень (товар или предложение) выбран осознанно.
  4. Фасет построен. Полное перестроение выполнено, индекс актуален, счётчики совпадают с реальными остатками.
  5. Переиндексация автоматизирована. Агент перестраивает фасет после обмена с 1С в часы низкой нагрузки.
  6. Кэш включён. Тип кэша компонента — «Авто», управляемый кэш активен, композит настроен.
  7. SEO-страницы оформлены. Осмысленные комбинации отдаются как ЧПУ с уникальными метатегами; мусорные закрыты и канонизированы.
  8. Метрики замерены. Зафиксированы время отклика фильтра, число SQL-запросов на клик и LCP/INP каталога.

Вывод

Умный фильтр в 1С-Битрикс быстрый ровно настолько, насколько правильно подготовлен каталог: свойства в нужных типах, построенный фасетный индекс, включённый кэш и аккуратная связка с SEO. Сделайте эти четыре вещи — и фильтр перестанет быть узким местом даже на каталоге в десятки тысяч товаров.

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

Чем умный фильтр отличается от обычного фильтра в Битриксе?

Умный фильтр (компонент catalog.smart.filter) опирается на фасетный индекс — заранее просчитанную таблицу соответствий «свойство — товар». Благодаря этому он мгновенно показывает, сколько товаров останется по каждому значению, и не делает тяжёлых запросов к базе на каждый клик. Обычный фильтр считает всё «на лету» и на большом каталоге заметно тормозит.

Почему умный фильтр тормозит на большом каталоге?

Чаще всего причина в том, что фасетный индекс не построен или устарел после массового обмена с 1С. Также фильтр замедляют свойства типа «строка» вместо «список», отсутствие кэширования компонента и большое число одновременно выводимых значений. Постройте фасетный индекс, переведите фильтруемые свойства в «список»/«число» и включите кэш компонента.

Нужно ли переиндексировать фильтр после обмена с 1С?

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

Можно ли сделать из умного фильтра SEO-страницы?

Да. Комбинации значений фильтра (например, «бренд + цвет») можно превратить в отдельные индексируемые страницы с человекопонятным URL (ЧПУ) и собственными title, description и H1 по шаблону. Это штатная возможность связки умного фильтра и SEO-инструментов Битрикса — главное закрыть от индексации «мусорные» комбинации, чтобы не плодить дубли.

Какая редакция 1С-Битрикс нужна для умного фильтра?

Умный фильтр и торговый каталог доступны в редакциях с модулем «Интернет-магазин» — «Малый бизнес» и «Бизнес». В «Старте» интернет-магазина нет, поэтому для полноценной витрины с фильтром нужна как минимум «Малый бизнес».

Поделиться:

Нужен быстрый каталог и фильтр, который не тормозит?

Спроектируем витрину, настроим умный фильтр и фасетный индекс под ваш ассортимент, свяжем каталог с 1С и подготовим SEO-структуру. Рассчитаем стоимость по вашему каталогу.

Услуга «Интернет-магазин»

Игорь Воскресенский

Основатель студии B2Bsite. С 2014 года команда разрабатывает и поддерживает интернет-магазины и корпоративные сайты на 1С-Битрикс, настраивает каталоги, умный фильтр и обмен с 1С для среднего и крупного бизнеса.

← Все статьи блога