СезонГотовим магазин к высокому сезону и Чёрной пятнице: скорость, нагрузка, акции

Сохранение выбранных фильтров и состояние URL

Сохранение выбранных фильтров и состояние URL в каталоге на 1С-Битрикс

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

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

Коротко

  • Состояние фильтра должно жить в URL: тогда его можно шарить, класть в закладки и возвращаться кнопкой «назад».
  • ЧПУ умного фильтра (catalog.smart.filter) превращает выборку в постоянный человекопонятный адрес.
  • Скорость фильтрации держится на фасетном индексе, который нужно включить и поддерживать после обмена.
  • Открывайте для индексации только ценные комбинации, остальные закрывайте через canonical — иначе дубли.

Почему состояние фильтра должно жить в URL

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

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

Три сценария, которые ломаются без URL

Проще всего понять важность через сценарии, которые не работают, если состояние не в адресе:

Для B2B к этому добавляется регулярность: закупщик смотрит одну и ту же выборку каждую неделю, и терять её каждый раз — прямое раздражение. URL-состояние решает все три сценария сразу.

От ЧПУ-адреса к трафику из поиска Товар / разделсущность каталогаЧПУ-адресчеловекопонятный 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.

  1. Меняйте URL при фильтрации. Каждое значимое изменение фильтра обновляет адрес через pushState.
  2. Сохраняйте полноценный адрес. URL остаётся рабочим — по нему страница открывается и при прямом заходе.
  3. Обрабатывайте переходы истории. На событие popstate восстанавливайте состояние фильтра из URL.
  4. Синхронизируйте UI и адрес. Отмеченные чекбоксы всегда соответствуют текущему URL.

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

Нормализация параметров фильтра

Одна и та же выборка не должна иметь десяток разных адресов — иначе получаются дубли и кэш не работает. Поэтому параметры фильтра нормализуют: приводят к единому детерминированному виду.

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

SEO-страницы фильтрации

Страницы фильтрации — мощный SEO-актив, но только при осознанном подходе. Открывать для индексации все возможные комбинации нельзя: их миллионы, они плодят дубли и размывают краулинговый бюджет поисковика.

Правильная стратегия — открывать только ценные комбинации, под которые есть спрос: «ноутбуки ASUS», «красные угловые диваны», «насосы мощностью до 1 кВт». Для таких страниц готовят уникальные заголовки, описания и, желательно, текст. Остальные комбинации закрывают от индексации. Это ручная или полуавтоматическая работа по семантике, а не «открыть всё подряд». Как связать это с общей структурой каталога и данными из 1С, помогает аудит и оптимизация.

Canonical и борьба с дублями

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

Тип страницыЧто делать с индексациейCanonical
Ценная комбинация фильтраОткрыть, уникальные метаНа себя
Прочие комбинацииЗакрыть от индексацииНа базовый раздел
Пагинация фильтраОбычно не индексироватьНа первую страницу фильтра
СортировкаНе создавать дублейНа версию без сортировки
Метки аналитикиИгнорировать в индексеНа чистый URL

Главный принцип: у каждой страницы есть один каноничный адрес, а служебные параметры не порождают индексируемых копий. Это защищает и позиции, и краулинговый бюджет.

Кэширование страниц фильтра

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

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

Сохранённые подборки в кабинете

URL решает шаринг и возврат, но для регулярных клиентов полезно пойти дальше — дать сохранять подборки в личном кабинете. Особенно это ценно в B2B, где закупщик еженедельно смотрит одну и ту же выборку.

Под капотом сохранённая подборка — это тот же ЧПУ-адрес или нормализованный набор фасетов, что мы уже настроили для URL. То есть правильная архитектура состояния окупается дважды: и для анонимов через URL, и для авторизованных через кабинет.

Частые ошибки

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

  1. ЧПУ фильтра включено. Выборка отражается в человекопонятном постоянном URL.
  2. Фасетный индекс работает. Включён и пересчитывается после обмена с 1С.
  3. History API настроен. AJAX-фильтрация меняет URL, «назад» возвращает к прошлому фильтру.
  4. Параметры нормализованы. Детерминированный порядок и формат, один каноничный адрес.
  5. SEO-комбинации открыты. Ценные страницы с уникальными мета, остальные закрыты.
  6. Canonical расставлен. Пагинация, сортировка и метки не создают дублей.
  7. Страницы кэшируются. Стабильные URL кэшируются, персональные блоки динамические.
  8. Сохранённые подборки. Для авторизованных — сохранение фильтров в кабинете.

Вывод

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

Технически это связка из четырёх вещей: ЧПУ умного фильтра, фасетный индекс для скорости, History API для навигации и нормализация параметров с canonical против дублей. Настройте их вместе, поддерживайте индекс после обмена с 1С — и фильтр из источника раздражения превратится в один из сильнейших инструментов каталога.

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

Почему важно сохранять фильтры в URL, а не только в сессии?

Если состояние фильтра живёт только в сессии или в памяти JavaScript, оно теряется при обновлении страницы, не переживает кнопку «назад» и его нельзя отправить ссылкой. Когда фильтр отражён в URL, выбранная подборка становится полноценной страницей: её можно сохранить в закладки, переслать коллеге, вернуться к ней кнопкой браузера и проиндексировать поисковиком. Для каталога это и удобство, и SEO одновременно.

Как работает ЧПУ умного фильтра в 1С-Битрикс?

Умный фильтр (catalog.smart.filter) умеет формировать человекопонятные URL для выбранных значений — например, /catalog/noutbuki/filter/proizvoditel-asus/tsvet-chernyy/. Такой адрес отражает выбранные фасеты, поэтому фильтрованная выдача становится отдельной страницей с постоянным URL. Для этого настраивают режим ЧПУ фильтра и правила формирования путей. Это основа и для шаринга ссылок, и для SEO-страниц фильтрации.

Что такое фасетный индекс и зачем он нужен?

Фасетный индекс — это предрассчитанная структура, которая хранит, какие товары соответствуют каким сочетаниям свойств. Без него каждый запрос фильтра заставляет базу перебирать товары и свойства «на лету», что медленно на большом каталоге. С фасетным индексом умный фильтр отвечает быстро даже при десятках тысяч товаров и множестве характеристик. Индекс нужно включить и поддерживать в актуальном состоянии, особенно после обмена с 1С.

Как сделать так, чтобы кнопка «назад» возвращала к прошлому фильтру?

Каждое значимое изменение фильтра должно менять URL — тогда история браузера запоминает состояния, и кнопка «назад» возвращает к предыдущему набору фильтров. Технически это делают через History API (pushState) при AJAX-фильтрации: URL обновляется без перезагрузки, но остаётся полноценным адресом. Если фильтр меняет выдачу, не трогая URL, «назад» уводит клиента с каталога совсем — и это раздражает.

Нужно ли открывать страницы фильтрации для индексации?

Выборочно. Открывать все возможные комбинации фильтров нельзя — их миллионы, и это плодит дубли и «мусорные» страницы, размывающие краулинговый бюджет. Открывают только ценные для SEO комбинации, под которые есть спрос (например, «ноутбуки ASUS» или «красные диваны»), с уникальными заголовками и описаниями. Остальные комбинации закрывают от индексации через canonical и meta robots. Это осознанная стратегия, а не «открыть всё подряд».

Как избежать дублей и проблем с canonical?

Проблема возникает, когда одна и та же выдача доступна по разным URL (разный порядок параметров, лишние GET-метки, пагинация). Решение — канонизация: у каждой фильтрованной страницы задан canonical на её «правильный» адрес, порядок фасетов в URL детерминирован, а служебные параметры (сортировка, метки аналитики) не создают индексируемых дублей. Для страниц пагинации и сортировки обычно указывают canonical на основную страницу фильтра.

Влияет ли состояние URL на скорость каталога?

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

Что делать с сохранёнными фильтрами в личном кабинете?

Помимо URL, полезно давать возможность сохранять подборки в личном кабинете — особенно для B2B, где закупщик регулярно смотрит одну и ту же выборку. Технически сохранённый фильтр — это тот же нормализованный набор параметров (или ЧПУ-адрес), привязанный к пользователю. Клиент открывает сохранённую подборку в один клик, а система применяет фильтр по сохранённому состоянию. Это удобно и повышает возвращаемость.

Поделиться:

Хотите фильтр, который быстрый, шарится и приводит трафик?

Настроим ЧПУ умного фильтра, фасетный индекс, кэш и SEO-страницы фильтрации на вашем каталоге 1С-Битрикс. Рассчитаем работу под ваш проект.

Аудит и оптимизация 1С

Редакция B2Bsite

Команда B2Bsite. С 2014 года разрабатываем каталоги на 1С-Битрикс: умный фильтр, фасетный индекс, ЧПУ-состояние и SEO-страницы фильтрации в связке с обменом 1С.

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