Умный фильтр товаров для WooCommerce
Фасетный фильтр товаров для WooCommerce с собственной таблицей-индексом: честные счётчики, слияние дублей значений, числовые диапазоны и SEO-страницы фильтра.
Что включено в лицензии
| Функция | Free | Pro |
|---|---|---|
| Фасетный фильтр: категория, атрибуты, цена, наличие, рейтинг | ✔ | ✔ |
| Честные счётчики: свой фасет остаётся полным, остальные сужаются | ✔ | ✔ |
| Собственная таблица-индекс вместо запросов по атрибутам и мета-полям | ✔ | ✔ |
| Дубли значений («12 В» / «12в» / «12 V») сливаются в одно | ✔ | ✔ |
| Числовые значения сортируются числами и работают диапазоном | ✔ | ✔ |
| Применение без перезагрузки, состояние фильтра в URL | ✔ | ✔ |
| Мобильная шторка, ползунок цены с реальными границами выборки | ✔ | ✔ |
| Цена и наличие — из wc_product_meta_lookup, без расхождений с сортировкой | ✔ | ✔ |
| SEO-страницы фильтра с собственным H1, title и человеческим URL | — | ✔ |
| Остальные комбинации — noindex,follow и канонический адрес на чистую категорию | ✔ | ✔ |
| Не трогает канонический адрес, если активны Yoast, Rank Math или AIOSEO | ✔ | ✔ |
Умный фильтр товаров для WooCommerce — фасетный фильтр, который не тормозит на большом каталоге. Вместо запросов по таблицам атрибутов и мета-полей модуль хранит собственную плоскую таблицу-индекс «товар → значение», поэтому добавление новых фасетов не замедляет выборку.

Честные счётчики
Рядом с каждым значением стоит количество товаров, которое учитывает уже выбранные фильтры. Свой фасет при этом не сужается: выбрав «Зелёный», покупатель по-прежнему видит, сколько есть синих и красных, и может переключиться одним кликом вместо того, чтобы сбрасывать всё и начинать сначала.
Дубли значений сливаются
Прайсы поставщиков приносят «12 В», «12в» и «12 V» как три разных атрибута. Модуль сводит их в одно значение, поэтому покупатель видит один чекбокс, а не три. Числовые значения сортируются числами, а не строками, и работают диапазоном.
Цена, наличие, рейтинг
Цена и наличие берутся из таблицы wc_product_meta_lookup, то есть из того же источника, что и сортировка WooCommerce — без расхождений между фильтром и листингом. Ползунок цены подтягивает реальные границы текущей выборки.
Применение без перезагрузки
Фильтр меняет выдачу без перезагрузки страницы и пишет состояние в URL, поэтому ссылку можно отправить или сохранить в закладки. На телефоне панель сворачивается в шторку, чтобы не съедать экран.
SEO
В индекс идёт только то, что вы сами сделали SEO-страницей фильтра: собственный H1, title и человеческий URL. Остальные комбинации отдают noindex,follow и канонический адрес на чистую категорию. Если на сайте работает Yoast, Rank Math или AIOSEO — канонический адрес остаётся за ними, модуль в это не вмешивается.
Совместимость
WooCommerce 6.0+, WordPress 6.2+, PHP 7.4+. Классические архивы категорий и страница магазина, HPOS. Фильтрация встраивается в главный запрос, поэтому работает с темами, которые выводят стандартный цикл товаров. Виджет ставится в любую виджет-зону или шорткодом.
Что получает админ
Фасеты складываются из того, что у вас уже есть в каталоге: категория, атрибуты товаров, цена, наличие, рейтинг. Ничего отдельно описывать не нужно — модуль берёт атрибуты WooCommerce как есть.
Для каждого фасета настраивается, как он выглядит покупателю: чекбоксы, ползунок для числовых значений или диапазон. Порядок фасетов в панели задаёте вы — то, чем в вашей категории действительно фильтруют, ставится первым.
Индекс перестраивается сам, когда товар меняется, и его можно перестроить полностью одной кнопкой — это понадобится один раз, после первого импорта большого прайса.
Как это работает — шаг за шагом
1. После установки модуль строит собственную плоскую таблицу-индекс «товар → значение». Это разовая операция, дальше индекс живёт сам.
2. Покупатель ставит галочку в фильтре. Запрос идёт не по wp_postmeta и не по таблицам атрибутов, а по этому индексу — одним простым SELECT вместо кучи JOIN-ов.
3. Счётчики возле остальных значений пересчитываются из того же индекса, поэтому они честные: показывают именно то, что найдётся, а не общее количество товаров со значением.
4. Выдача обновляется без перезагрузки, а состояние фильтра пишется в URL.
5. Товар изменили в админке или обновили импортом — индекс для этого товара перестраивается автоматически.
Почему это быстрее
Стандартная фильтрация WooCommerce собирает выборку через wp_postmeta и таксономии атрибутов. Каждый добавленный фасет — это ещё один JOIN, и на каталоге в несколько десятков тысяч товаров запрос превращается в многосекундный.
Плоский индекс «товар → значение» эту проблему снимает в корне: фасетов может быть пять или пятнадцать, структура запроса не меняется. Именно поэтому магазин с большим прайсом получает от модуля больше всего — на каталоге в двести товаров разницу вы не заметите.
Бесплатная версия и Pro
Бесплатная версия — это полноценный фильтр: все типы фасетов, честные счётчики, слияние дублей значений, числовые диапазоны, ползунок цены с реальными границами выборки, применение без перезагрузки, состояние в URL, мобильная шторка. Ограничений по времени и рекламы в админке нет.
Pro добавляет SEO-страницы фильтра: вы выбираете комбинацию фильтров, которую стоит продвигать («жёлтые шкафы», «ноутбуки до 30 000»), и она получает собственный H1, title и человеческий URL. Остальные комбинации остаются под noindex,follow с каноникалом на чистую категорию.
Это и есть главное отличие от «фильтра из темы»: управляемая горстка посадочных страниц под низкочастотные запросы вместо либо миллиона мусорных URL в индексе, либо полного отсутствия фильтровых страниц в поиске.
Сколько стоит
Лицензия Pro — 990 грн, на один сайт. Лицензия годовая: после окончания модуль работает дальше и ничего не выключается, прекращаются только обновления и поддержка. «Навсегда» мы не обещаем — WooCommerce меняет структуру запросов от версии к версии, и фильтр без обновлений рано или поздно разойдётся с ядром.
Технические требования
WordPress 6.2 и новее, WooCommerce 6.0 и новее, PHP 7.4 и новее. Работает с HPOS, классическими архивами категорий и страницей магазина.
Отдельных требований к хостингу нет: индекс — это одна обычная таблица MySQL, она не требует ни Elasticsearch, ни Redis, ни отдельного сервиса поиска.
Что под капотом
Фильтрация встраивается в главный запрос товаров, а не подменяет его своим. Из-за этого модуль остаётся совместимым с темами, которые выводят стандартный цикл WooCommerce, и не конфликтует с пагинацией и сортировкой.
Цена и наличие читаются из wc_product_meta_lookup — той же таблицы, из которой WooCommerce сортирует товары. Поэтому не бывает ситуации, когда фильтр говорит «есть в наличии», а сортировка по цене показывает другое.
Индекс обновляется по событиям сохранения товара, то есть грузит сайт ровно в момент редактирования, а не фоновым кроном раз в час.
Как установить
1. Загрузите архив в «Плагины → Добавить новый → Загрузить плагин» и активируйте.
2. Дождитесь построения индекса — при первом запуске модуль предлагает сделать это одной кнопкой.
3. В настройках соберите набор фасетов под свой каталог и задайте их порядок.
4. Поставьте виджет фильтра в боковую колонку категории или вставьте шорткодом туда, где он нужен.
5. Если купили Pro — добавьте SEO-страницы под те комбинации фильтров, которые действительно ищут.
История версий
1.0.0 — первый выпуск. Фасеты по категории, атрибутам, цене, наличию и рейтингу; собственная таблица-индекс; честные счётчики с несуженным собственным фасетом; слияние дублей значений и числовая сортировка; ползунок цены с границами текущей выборки; применение без перезагрузки и состояние фильтра в URL; мобильная шторка; совместимость с HPOS. В Pro — SEO-страницы фильтра с собственным H1, title и URL, noindex,follow на остальных комбинациях и невмешательство в каноникал Yoast / Rank Math / AIOSEO.
Частые вопросы
Нужно ли переписывать тему?
Нет. Фильтр встраивается в главный запрос товаров, поэтому работает с темами, которые выводят стандартный цикл WooCommerce. Виджет ставится в виджет-зону или шорткодом.
Выдержит ли большой каталог?
Условия фильтра идут по собственной плоской таблице-индексу «товар → значение», а не по таблицам атрибутов и мета-полей, поэтому добавление новых фасетов не замедляет выборку.
Что будет с дублями значений из прайсов поставщиков?
Они сливаются в одно значение: вместо трёх чекбоксов «12 В», «12в» и «12 V» покупатель видит один.
Счётчики учитывают уже выбранные фильтры?
Да. При этом свой фасет не сужается — выбрав «Зелёный», покупатель видит, сколько есть синих и красных, и переключается одним кликом.
Не засорит ли фильтр индекс Google?
Нет. В индекс идёт только то, что вы сами сделали SEO-страницей фильтра; остальные комбинации отдают noindex,follow и канонический адрес на категорию. Если работает Yoast, Rank Math или AIOSEO — канонический адрес остаётся за ними.
Сколько сайтов можно активировать одним ключом?
Один. Лицензия годовая: по истечении модуль продолжает работать, прекращаются только обновления и поддержка.
Вопросы по модулю?
Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.
Пока ни одного отзыва. Будь первым — ниже.
Оставить отзыв
Отзыв модерируется перед публикацией — обычно это занимает до 24 часов.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Задать вопрос
Обычно отвечаем в течение 24 часов в рабочее время.
Покупка модуля
—