Клиент долго подбирал товар: выбрал производителя, диапазон цены, цвет, наличие — и отправил ссылку коллеге. А тот открывает и видит пустой каталог без единого фильтра. Или клиент нажимает «назад», чтобы чуть изменить выбор, — и его выбрасывает с каталога совсем. Причина одна: состояние фильтра нигде не сохранено. Оно живёт в памяти JavaScript и исчезает при первом же действии браузера.
В этой статье разберём, как правильно хранить состояние фильтров в URL каталога на 1С-Битрикс: зачем это нужно, как работает ЧПУ умного фильтра, при чём тут фасетный индекс, как подружить фильтрацию с кнопкой «назад» и как превратить страницы фильтрации в SEO-актив, а не в свалку дублей. Тема примыкает к общей настройке каталога и обмена, поэтому затронем и аудит и оптимизацию 1С.
Коротко
- Состояние фильтра должно жить в URL: тогда его можно шарить, класть в закладки и возвращаться кнопкой «назад».
- ЧПУ умного фильтра (catalog.smart.filter) превращает выборку в постоянный человекопонятный адрес.
- Скорость фильтрации держится на фасетном индексе, который нужно включить и поддерживать после обмена.
- Открывайте для индексации только ценные комбинации, остальные закрывайте через canonical — иначе дубли.
Почему состояние фильтра должно жить в URL
URL — это не просто адрес страницы, а её состояние, которое браузер и поисковик умеют сохранять, передавать и индексировать. Когда фильтр отражён в URL, выбранная подборка перестаёт быть эфемерной и становится полноценной страницей.
Если же состояние фильтра живёт только в сессии на сервере или в памяти JavaScript, оно хрупкое: теряется при обновлении, не переживает навигацию браузера и не поддаётся индексации. Для каталога это двойная потеря — и удобства для пользователя, и SEO-потенциала страниц фильтрации. Поэтому базовое правило: значимый фильтр меняет URL.
Три сценария, которые ломаются без URL
Проще всего понять важность через сценарии, которые не работают, если состояние не в адресе:
- Шаринг ссылки. Клиент хочет отправить подборку коллеге или в мессенджер — но по ссылке открывается пустой каталог.
- Кнопка «назад». Клиент уточняет выбор и жмёт «назад» — вместо прошлого фильтра его выбрасывает с каталога.
- Закладки и возврат. Клиент сохранил страницу, вернулся через день — фильтры сброшены, всё выбирать заново.
Для B2B к этому добавляется регулярность: закупщик смотрит одну и ту же выборку каждую неделю, и терять её каждый раз — прямое раздражение. URL-состояние решает все три сценария сразу.
ЧПУ умного фильтра в 1С-Битрикс
В 1С-Битрикс за фильтрацию отвечает компонент умного фильтра (catalog.smart.filter). Он умеет формировать человекопонятные URL (ЧПУ) для выбранных значений — например, /catalog/noutbuki/filter/proizvoditel-asus/tsvet-chernyy/. Такой адрес отражает выбранные фасеты и превращает выдачу в отдельную страницу с постоянным URL.
Для этого включают режим ЧПУ фильтра и настраивают правила формирования путей: какие свойства участвуют, в каком виде отображаются коды значений, как строится порядок. Это фундамент всего остального — и шаринга, и SEO, и кэширования. Про сам механизм умного фильтра и его связку с торговым каталогом мы подробнее писали в отдельных материалах рубрики; здесь фокус именно на состоянии и URL.
Фасетный индекс и скорость
Красивый URL бесполезен, если страница фильтрации открывается пять секунд. Скорость умного фильтра держится на фасетном индексе — предрассчитанной структуре, которая хранит, какие товары соответствуют каким сочетаниям свойств.
Фасетный индекс нужно включить и, что важнее, поддерживать в актуальном состоянии. После обмена с 1С, когда меняются товары, цены и свойства, индекс должен пересчитываться — иначе фильтр покажет неактуальную выдачу. Настройку и поддержание индекса удобно закладывать в процессы обмена, что относится к автоматизации на 1С.
History API и кнопка «назад»
Современные каталоги фильтруют через AJAX — без полной перезагрузки страницы. Но AJAX без работы с историей ломает кнопку «назад»: URL не меняется, браузер не запоминает состояния. Решение — History API.
- Меняйте URL при фильтрации. Каждое значимое изменение фильтра обновляет адрес через pushState.
- Сохраняйте полноценный адрес. URL остаётся рабочим — по нему страница открывается и при прямом заходе.
- Обрабатывайте переходы истории. На событие popstate восстанавливайте состояние фильтра из URL.
- Синхронизируйте UI и адрес. Отмеченные чекбоксы всегда соответствуют текущему URL.
Тогда история браузера запоминает состояния, «назад» возвращает к предыдущему фильтру, а прямой заход по ссылке открывает нужную выборку. Это то, чего пользователи ждут по умолчанию, — и что чаще всего сломано.
Нормализация параметров фильтра
Одна и та же выборка не должна иметь десяток разных адресов — иначе получаются дубли и кэш не работает. Поэтому параметры фильтра нормализуют: приводят к единому детерминированному виду.
- Порядок фасетов. «производитель, потом цвет» — всегда в одном и том же порядке, а не как выбрал пользователь.
- Единый формат значений. Коды значений в URL стабильны и не меняются от выбора к выбору.
- Отсев служебного. Метки аналитики и сортировка не создают новых индексируемых адресов.
- Каноничный адрес. У каждой выборки есть один «правильный» URL, к которому всё сводится.
Нормализация — незаметная, но критичная работа: именно она отделяет чистый каталог с кэшируемыми страницами от свалки дублей, которая мучает и SEO, и производительность.
SEO-страницы фильтрации
Страницы фильтрации — мощный SEO-актив, но только при осознанном подходе. Открывать для индексации все возможные комбинации нельзя: их миллионы, они плодят дубли и размывают краулинговый бюджет поисковика.
Правильная стратегия — открывать только ценные комбинации, под которые есть спрос: «ноутбуки ASUS», «красные угловые диваны», «насосы мощностью до 1 кВт». Для таких страниц готовят уникальные заголовки, описания и, желательно, текст. Остальные комбинации закрывают от индексации. Это ручная или полуавтоматическая работа по семантике, а не «открыть всё подряд». Как связать это с общей структурой каталога и данными из 1С, помогает аудит и оптимизация.
Canonical и борьба с дублями
Даже при нормализации одна выдача может быть доступна по нескольким адресам: пагинация, сортировка, разный порядок параметров. Чтобы поисковик не считал их дублями, используют канонизацию.
| Тип страницы | Что делать с индексацией | Canonical |
|---|---|---|
| Ценная комбинация фильтра | Открыть, уникальные мета | На себя |
| Прочие комбинации | Закрыть от индексации | На базовый раздел |
| Пагинация фильтра | Обычно не индексировать | На первую страницу фильтра |
| Сортировка | Не создавать дублей | На версию без сортировки |
| Метки аналитики | Игнорировать в индексе | На чистый URL |
Главный принцип: у каждой страницы есть один каноничный адрес, а служебные параметры не порождают индексируемых копий. Это защищает и позиции, и краулинговый бюджет.
Кэширование страниц фильтра
Стабильный URL даёт ещё один бонус — кэшируемость. Когда у страницы фильтрации постоянный нормализованный адрес и предсказуемый вывод, её можно кэшировать целиком и отдавать быстро.
С фасетным индексом и кэшем популярные страницы фильтрации (те самые SEO-комбинации) отдаются почти мгновенно. А вот если выдача формируется случайными параметрами без нормализации, кэш почти не работает: каждый запрос уникален, и база нагружается на каждый чих. То есть аккуратная работа с URL — это ещё и производительность. Персональные элементы (цена клиента, наличие по складу) при этом выводят динамически поверх кэша.
Сохранённые подборки в кабинете
URL решает шаринг и возврат, но для регулярных клиентов полезно пойти дальше — дать сохранять подборки в личном кабинете. Особенно это ценно в B2B, где закупщик еженедельно смотрит одну и ту же выборку.
- Сохранение фильтра. Клиент называет и сохраняет текущую выборку одним действием.
- Быстрый доступ. Сохранённые подборки открываются из кабинета в один клик.
- Привязка к пользователю. Технически это тот же нормализованный набор параметров, привязанный к клиенту.
- Возвращаемость. Сохранённые фильтры повышают частоту возвратов и повторных заказов.
Под капотом сохранённая подборка — это тот же ЧПУ-адрес или нормализованный набор фасетов, что мы уже настроили для URL. То есть правильная архитектура состояния окупается дважды: и для анонимов через URL, и для авторизованных через кабинет.
Частые ошибки
- Фильтр не меняет URL. Ссылку нельзя расшарить, «назад» выбрасывает с каталога.
- Нет фасетного индекса. Фильтрация на большом каталоге тормозит.
- Индекс не пересчитывается после обмена. Фильтр показывает неактуальную выдачу.
- Параметры не нормализованы. Одна выборка живёт под десятком URL, плодятся дубли.
- Открыты все комбинации. Миллионы мусорных страниц размывают краулинговый бюджет.
- Нет canonical. Пагинация и сортировка индексируются как дубли.
- Персональные данные в кэше. Цена клиента или наличие попадают в общий кэш страницы.
Чек-лист внедрения
- ЧПУ фильтра включено. Выборка отражается в человекопонятном постоянном URL.
- Фасетный индекс работает. Включён и пересчитывается после обмена с 1С.
- History API настроен. AJAX-фильтрация меняет URL, «назад» возвращает к прошлому фильтру.
- Параметры нормализованы. Детерминированный порядок и формат, один каноничный адрес.
- SEO-комбинации открыты. Ценные страницы с уникальными мета, остальные закрыты.
- Canonical расставлен. Пагинация, сортировка и метки не создают дублей.
- Страницы кэшируются. Стабильные URL кэшируются, персональные блоки динамические.
- Сохранённые подборки. Для авторизованных — сохранение фильтров в кабинете.
Вывод
Состояние фильтра — это состояние страницы, и его место в URL. Как только выбранная выборка отражается в человекопонятном адресе, каталог становится дружелюбным: ссылки шарятся, «назад» работает, закладки живут, а популярные комбинации превращаются в SEO-страницы, которые приводят трафик.
Технически это связка из четырёх вещей: ЧПУ умного фильтра, фасетный индекс для скорости, History API для навигации и нормализация параметров с canonical против дублей. Настройте их вместе, поддерживайте индекс после обмена с 1С — и фильтр из источника раздражения превратится в один из сильнейших инструментов каталога.