Title: CatCode Smart Filter for WooCommerce
Author: CatCode
Published: <strong>September 15, 2026</strong>
Last modified: September 16, 2026

---

Search plugins

![](https://ps.w.org/catcode-smart-filter/assets/banner-772x250.png?rev=3698448)

![](https://ps.w.org/catcode-smart-filter/assets/icon-256x256.png?rev=3698448)

# CatCode Smart Filter for WooCommerce

 By [CatCode](https://profiles.wordpress.org/catcodestudio/)

[Download](https://downloads.wordpress.org/plugin/catcode-smart-filter.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/catcode-smart-filter/#description)
 * [Reviews](https://wordpress.org/plugins/catcode-smart-filter/#reviews)
 *  [Installation](https://wordpress.org/plugins/catcode-smart-filter/#installation)
 * [Development](https://wordpress.org/plugins/catcode-smart-filter/#developers)

 [Support](https://wordpress.org/support/plugin/catcode-smart-filter/)

## Description

Most WooCommerce filters ask the database the same expensive question on every click—
join the attribute tables, join the meta tables, count. On a catalogue of a few 
thousand products that question takes seconds, and the shopper leaves before the
answer arrives.

This plugin keeps its own flat index of “which product carries which value”, rebuilt
in the background and kept current by every product save. Filtering reads that one
table, so the query cost stops growing with the number of attributes.

#### What it does

 * Facets from product attributes, from any product taxonomy (categories, tags, 
   brands) and from a custom field.
 * Checkboxes, radio buttons, a select, a range slider or a toggle — per facet.
 * Price slider in the shop’s display currency, an “in stock / out of stock” facet
   and a rating facet.
 * Honest counts next to every value: a count tells you what you will get, and the
   value you already picked keeps showing its siblings instead of collapsing to 
   itself.
 * Values with no products are hidden — or shown greyed out, if you prefer the shopper
   to see the whole range.
 * Numeric values sort as numbers: `1.5 / 2 / 10 / 12.5`, not the alphabetical `
   1.5 / 10 / 12.5 / 2` every term-sorted filter shows.
 * Applying a filter does not reload the page: the listing and the filter block 
   are swapped in place and the URL goes into the browser history, so Back works
   and the link can be copied and shared.
 * Mobile drawer with a “Show N products” button, so the count is visible before
   the tap.
 * Chips for what is currently applied, with a one-click reset.
 * Readable URLs: `?ccf=pa_color:червоний;p:100-2500` — one state has exactly one
   URL, so nothing turns into a duplicate.
 * Crawl control out of the box: a filtered view is `noindex,follow` with a canonical
   back to the clean archive, and the shop keeps its crawl budget.
 * Placement as a widget or through the `[catcode_filter]` shortcode.
 * Works with the theme’s own product grid — the swapped selector is a setting, `
   ul.products` by default.
 * Merging duplicate values: `12 В`, `12в` and `12 V` become one checkbox while 
   the products keep their own terms.
 * As many facets as your catalogue needs — nothing here is capped or time-limited.
 * HPOS (custom order tables) compatible.

#### Requirements

 * WooCommerce 6.0 or newer
 * WordPress 6.2 or newer
 * PHP 7.4+

## Screenshots

[⌊The filter block on a shop page⌉⌊The filter block on a shop page⌉[

The filter block on a shop page

[⌊The mobile view: the filter panel opens from the "Filters" button⌉⌊The mobile 
view: the filter panel opens from the "Filters" button⌉[

The mobile view: the filter panel opens from the “Filters” button

[⌊Facets in the admin: source, widget, logic and order⌉⌊Facets in the admin: source,
widget, logic and order⌉[

Facets in the admin: source, widget, logic and order

[⌊The index tab⌉⌊The index tab⌉[

The index tab

## Installation

 1. Upload the plugin folder to `/wp-content/plugins/catcode-smart-filter/`
 2. Activate it in the “Plugins” menu
 3. Go to WooCommerce  Smart Filter  Facets and import the attributes you want to filter
    by
 4. Open the “Index” tab and press “Rebuild the index” once
 5. Place the block: the “CatCode: Smart Filter” widget, or the `[catcode_filter]` 
    shortcode

## FAQ

### The filter block does not appear

It renders only where a product listing does — the shop, a product category or tag
archive, and product search results. Check that a facet is imported and active, 
and that the index has been built at least once (WooCommerce  Smart Filter  Index).

### Clicking a value reloads the whole page

The AJAX swap needs to know which element holds the product grid. Most themes use`
ul.products`, which is the default; if yours does not, put its selector into “Product
grid selector” in the settings.

### The counts do not match the listing

Press “Rebuild the index”. A count and a listing can only disagree when the index
is behind the catalogue — after a bulk import that wrote to the database directly,
for example.

### Does it work with a page cache?

Yes. Filtered views carry a query string, so they are served fresh; the clean archive
stays cacheable. The counts have their own cache with a lifetime you set.

### Will Google index thousands of filter URLs?

No. A filtered view is `noindex,follow` with a canonical pointing at the clean archive.
Every filtered combination stays out of the index.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“CatCode Smart Filter for WooCommerce” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ CatCode ](https://profiles.wordpress.org/catcodestudio/)

“CatCode Smart Filter for WooCommerce” has been translated into 1 locale. Thank 
you to [the translators](https://translate.wordpress.org/projects/wp-plugins/catcode-smart-filter/contributors)
for their contributions.

[Translate “CatCode Smart Filter for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/catcode-smart-filter)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/catcode-smart-filter/),
check out the [SVN repository](https://plugins.svn.wordpress.org/catcode-smart-filter/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/catcode-smart-filter/)
by [RSS](https://plugins.trac.wordpress.org/log/catcode-smart-filter/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * First release.

## Meta

 *  Version **1.0.0**
 *  Last updated **2 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/catcode-smart-filter/) and [Ukrainian](https://uk.wordpress.org/plugins/catcode-smart-filter/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/catcode-smart-filter)
 * Tags
 * [attribute filter](https://wordpress.org/plugins/tags/attribute-filter/)[faceted search](https://wordpress.org/plugins/tags/faceted-search/)
   [price filter](https://wordpress.org/plugins/tags/price-filter/)[product filter](https://wordpress.org/plugins/tags/product-filter/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/catcode-smart-filter/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/catcode-smart-filter/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/catcode-smart-filter/reviews/)

## Contributors

 *   [ CatCode ](https://profiles.wordpress.org/catcodestudio/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/catcode-smart-filter/)