Jak dodać filtrację produktów w WooCommerce - icomMedia

Jak dodać filtrację produktów w WooCommerce

Jak dodać filtrację produktów w WooCommerce

Skuteczne filtrowanie produktów jest jednym z najsilniejszych sposobów na skrócenie drogi klienta od pierwszej wizyty do zakupu. Jasna struktura katalogu, szybkie działanie mechanizmu zawężania wyników i przejrzysta prezentacja aktywnych kryteriów wpływają na to, jak często użytkownik odnajdzie to, czego szuka, a w konsekwencji – na konwersję. Poniżej znajdziesz przewodnik, który prowadzi krok po kroku przez przygotowanie danych w sklepie, konfigurację wbudowanych narzędzi i wybór zaawansowanych rozwiązań, a także optymalizację pod kątem wydajności, dostępności i SEO. Zobaczysz również, jak zbudować własny mechanizm filtrów bez dodatkowych wtyczek oraz jak diagnozować typowe problemy.

Dlaczego filtry produktów decydują o wygodzie i sprzedaży

W realnym sklepie internetowym liczy się skrócenie czasu wyszukiwania. Jeśli użytkownik nie potrafi w kilka sekund zawęzić oferty do sensownej listy, zrezygnuje. Filtry działają jak „asystent”, który przepuszcza asortyment przez kolejne sita: po cenie, kolorze, rozmiarze, materiale, dostępności, promocji, ocenach, a nawet po cechach technicznych. W praktyce dobre filtry muszą być szybkie, zrozumiałe językowo, pokazywać liczbę wyników i wspierać użytkownika w cofnięciu wyboru (aktywne „chipsy” lub sekcja Aktywne filtry). Nie można też ignorować urządzeń mobilnych – na telefonie filtry najczęściej przyjmują formę wysuwanego panelu lub pełnoekranowego okna z przyciskiem Zastosuj.

Kluczem do powodzenia jest spójna definicja danych produktowych. To, co nazywasz „kolorem” lub „rozmiarem”, musi zostać opisane w panelu administracyjnym tak samo dla każdego produktu. Brak konsekwencji w nazewnictwie lub pomieszanie prostych pól tekstowych z globalnymi cechami katalogu kończy się chaosem, który niszczy jakość wyników. Najpierw porządkujemy dane, dopiero później konfigurujemy warstwę wizualną i logikę działania filtrów.

W tym poradniku zobaczysz, jak zbudować filtry, które rzeczywiście pomagają: od prostych suwaków cenowych i pól wyboru, po elastyczne kombinacje, które wykorzystują WooCommerce jako solidny silnik katalogu. Zwrócimy uwagę na filtracja w kontekście semantyki danych (cechy), logiki boole’owskiej (AND/OR), wpływu na UX i SEO, a także na kwestie techniczne jak wydajność, indeksowanie i budowa własnych zapytań opartej o meta_query.

Przygotowanie katalogu: atrybuty, kategorie i dane produktów

Każdy dobry system filtrów zaczyna się od porządku w danych. W panelu administracyjnym nadrzędnym narzędziem są atrybuty produktów oraz kategorie i tagi. Atrybuty można dodawać globalnie (wspólne słowniki dla całego sklepu) albo lokalnie (tylko dla pojedynczego produktu). Filtry wymagają atrybutów globalnych, ponieważ tworzą one odrębne taksonomie – techniczne grupy pojęć, które da się sprawnie przeszukiwać i łączyć.

  • Plan atrybutów: spisz listę cech, po których chcesz filtrować (np. Kolor, Rozmiar, Materiał, Marka, Długość, Pojemność, Wykończenie, Przeznaczenie). Zadbaj o spójne nazwy i unikaj synonimów, które wprowadzą zamieszanie.
  • Tworzenie atrybutów globalnych: Produkty → Atrybuty → Dodaj nowy. Ustal nazwę, slug (krótki identyfikator), kolejność sortowania oraz włącz archiwa, jeśli chcesz mieć dedykowane strony dla danej cechy. Następnie wejdź w „Konfiguruj terminy” i dodaj poszczególne wartości (np. Kolor → Czerwony, Niebieski, Czarny).
  • Przypisywanie atrybutów do produktów: edytuj produkt → zakładka „Atrybuty” → wybierz atrybut globalny i zaznacz odpowiednie wartości. Dla produktów z wariantami pamiętaj, aby atrybuty użyć także jako atrybuty do wariantów.
  • Kategorie i tagi: kategorie są hierarchiczne i pomagają w budowie głównego menu sklepu; tagi są płaskie i mogą pełnić rolę dodatkowych etykiet tematycznych. Nie zastępują atrybutów, ale czasem warto oferować filtr po tagach (np. „Eko”, „Bestseller”, „Kolekcja 2026”).
  • Pola liczbowe i techniczne: parametry takie jak waga, pojemność czy długość powinny mieć ujednoliconą jednostkę i format (np. 500 ml, 1 l). Rozważ przechowywanie ich jako własne pola i filtrowanie po zakresie, jeśli atrybuty „sztywne” nie wystarczają.

Wskazówka: Jeżeli migrujesz z innego systemu lub po okresie chaosu chcesz uporządkować katalog, zacznij od jednej kategorii i dokończ pracę do końca. Dopiero potem przechodź do kolejnych działów. Drobne niespójności mszczą się później w postaci pustych wyników filtrów albo zbyt szerokich list produktów.

Wbudowane filtry: widżety i bloki

WooCommerce oferuje gotowe narzędzia do filtrowania, zarówno w oparciu o klasyczne widżety, jak i nowy edytor blokowy. Dzięki nim szybciej wystartujesz, a dopiero dalej – jeżeli to potrzebne – sięgniesz po dodatkowe wtyczki lub własną logikę.

  • Widżety (klasyczny motyw): Wygląd → Widgety. Wstaw do paska bocznego strony sklepu i kategorii widżety: „Filtruj produkty według ceny”, „Filtruj według atrybutu”, „Aktywne filtry”, „Filtruj według ocen”. Upewnij się, że Twoja strona sklepu ma przypisany sidebar i rzeczywiście go wyświetla.
  • Bloki (motyw blokowy): Wygląd → Edytor. Otwórz szablon strony sklepu lub archiwum produktów. Dodaj bloki: „Filtr produktów według ceny”, „Filtr według atrybutu”, „Filtr według stanu magazynowego”, „Filtr według oceny” oraz „Aktywne filtry”. Ułóż je w panelu bocznym lub nad listą produktów. Dla lepszego działania włącz opcję „Zmieniaj adres URL po zmianie filtra” i „Zastosuj automatycznie” lub wprowadź przycisk Zastosuj.
  • Ustawienia działania: w blokach możesz wybrać typ kontrolki (lista, rozwijane, wielokrotny wybór), pokazywanie liczby wyników przy wartościach, ukrywanie pustych opcji, a także kolejność sortowania terminów.
  • Cena i waluty: suwak ceny korzysta z tabeli pomocniczej danych produktowych. Jeśli wartości wydają się błędne po imporcie lub zmianie waluty, użyj narzędzi regeneracji (Status → Narzędzia) dla „Lookup tables”.
  • Stan magazynowy i promocje: blok „Filtr według stanu” umożliwia ograniczanie do produktów dostępnych. Wtyczki promocyjne często dodają własny znacznik „Wyprzedaż”, po którym również można filtrować.
  • Aktywne filtry: to blok (lub widżet) pokazujący aktualnie zastosowane kryteria w formie etykiet z iksem. Ułatwia wycofanie pojedynczego kryterium bez resetu całej listy.

Dobra praktyka: Zacznij od 3–5 najważniejszych filtrów zajmujących górę lub bok listy. Zbyt wiele jednocześnie obniża czytelność. Pozostałe umieść w sekcji „Pokaż więcej” lub w akordeonie.

Zaawansowane filtry z wtyczkami i nawigacja fasetowa

Jeśli potrzebujesz większej elastyczności, rozważ wtyczki dedykowane filtrowaniu. Ich przewagą jest AJAX (przeładowanie samej listy produktów), szeroki zestaw kontrolek (suwaki, przyciski, kolory, obrazki), reguły logiczne AND/OR oraz własne mechanizmy indeksowania. Tego typu rozwiązanie określa się jako nawigacja fasetowa, bo użytkownik zawęża wyniki poprzez kolejne cechy produktu (fasety).

  • FacetWP: bardzo szybkie filtry oparte na własnym indeksie; współpracują z motywami, builderami i dowolnymi typami treści. Plusy: wydajność, kontrola nad szablonami, dobra dokumentacja. Wymaga konfiguracji „facets” i „templates”.
  • WOOF – WooCommerce Products Filter: rozbudowany panel ustawień, wiele rodzajów kontrolek, filtry po atrybutach, kategoriach, tagach, a także po polach własnych. Plusy: duża elastyczność i przystępna cena.
  • YITH AJAX Product Filter: atrakcyjne UI, presety filtrów, integracje z popularnymi motywami. Prosty onboarding i szybkie uruchomienie.
  • Filter Everything: filtruje dowolne posty, taksonomie i meta pola; dobre, gdy katalog ma nietypową strukturę.
  • JetSmartFilters: dla stron budowanych w Elementorze/Bricks/Gutenberg, wiele kontrolek, pipeline z innymi wtyczkami Crocoblock.

Na co zwracać uwagę przy wyborze?

  • Architektura URL: czy filtry tworzą przyjazne adresy (np. /buty?kolor=czarny&rozmiar=42) i czy da się kontrolować ich indeksację.
  • Wydajność i indeks: czy wtyczka utrzymuje własny indeks wartości, czy bazuje na wolniejszych zapytaniach po metadanych; jak wygląda zgodność z cache.
  • Kombinacje AND/OR: czy można decydować, czy wybór wielu wartości tej samej cechy oznacza sumę (OR) czy część wspólną (AND); różnice mają duży wpływ na liczbę wyników.
  • Kontrolki: checkboxy, radio, przyciski, dropdown, range slider, kolor/obrazek, „chipset” z ikonami, panel mobilny.
  • Aktywne filtry i reset: etykiety bieżących kryteriów z szybkim usuwaniem i przyciskiem „Wyczyść wszystkie”.
  • Kompatybilność: z motywem, builderem i innymi wtyczkami (multilang, ceny dynamiczne, multiwaluta, porównywarki, wishlisty).

Wskazówka: W przypadku bardzo dużych katalogów warto rozważyć narzędzia z własnym indeksem, np. FacetWP, które unikają kosztownych połączeń do tabel postmeta przy każdej interakcji. To odciąża bazę i stabilizuje czas odpowiedzi.

Własne filtrowanie bez wtyczek: zapytania, parametry i logika

Jeżeli chcesz zachować pełną kontrolę, możesz zbudować filtry samodzielnie. Ideą jest wykorzystanie parametrów zapytania (GET) i modyfikowanie głównej pętli produktów na stronie sklepu lub kategorii. WooCommerce i WordPress dają do dyspozycji mechanizmy tax_query i meta_query, dzięki którym zawężasz listę produktów po atrybutach (taksonomie) i polach meta (np. waga, długość, wartość logiczna „promocja”).

  • Parametry wbudowane w WooCommerce: min_price i max_price (zakres ceny), rating_filter (oceny), atrybuty w formacie filter_pa_{slug} (np. filter_pa_kolor=czarny,niebieski) plus opcja query_type_pa_{slug}=and/or. Warto wspierać te same nazwy parametrów, by działały spójnie z widżetami i blokami.
  • Hook pre_get_posts: na stronach sklepu i kategorii (is_shop, is_product_taxonomy) modyfikuj obiekt WP_Query, dodając tax_query i meta_query zgodnie z odebranymi parametrami. Pamiętaj o sanitizacji (esc_sql, sanitize_text_field) oraz o mapowaniu tylko na dozwolone klucze i wartości.
  • Logika AND/OR: dla wielu wartości tej samej cechy decyduj, czy to ma być relacja OR (dowolna z wybranych) czy AND (wszystkie naraz). W praktyce większość sklepów stosuje OR wewnątrz jednej fasety i AND między różnymi fasetami.
  • Adresy URL i ładne linki: możesz dodać rewrite rules, aby zamiast parametrów mieć ścieżki typu /sklep/kolor/czarny+niebieski/rozmiar/42/. Pamiętaj o generowaniu kanonicznych adresów i o tym, by nie tworzyć milionów wariantów, które zaszkodzą SEO.
  • Aktualizacja adresu bez przeładowania: użyj pushState w JS i AJAX do przeładowania samej listy produktów. To poprawia płynność, ale zachowuje możliwość cofnięcia i udostępnienia linku.
  • Unikaj pułapek: nie mieszaj lokalnych atrybutów (zdefiniowanych tylko na karcie produktu) z globalnymi – filtry ich nie znajdą. Nie filtruj po polach, które zawierają niespójne dane (np. „1L”, „1 l”, „1000 ml” w jednym polu).

Bezpieczeństwo: Nigdy nie przepuszczaj surowych parametrów GET bez walidacji. Wprowadź białe listy kluczy, dopuszczalne typy danych i domenę wartości (np. tylko istniejące termy taksonomii). W przeciwnym razie otwierasz furtkę do kosztownych zapytań i potencjalnych nadużyć.

Wydajność, dostępność i doświadczenie użytkownika

Dobrze zaprojektowane filtry łączą wygodę z respektowaniem ograniczeń technicznych. W dużym katalogu to właśnie wydajność i prostota interfejsu będą decydować, czy użytkownik odczuje płynność korzystania z listy. Oto praktyczne wytyczne.

  • Lookup tables w WooCommerce: korzystaj z tabel wc_product_meta_lookup (cena, dostępność, oceny) i nowszej tabeli lookup dla atrybutów. Po imporcie danych lub większych zmianach odpal regenerację w Status → Narzędzia, aby przyspieszyć filtry cenowe i atrybutowe.
  • Kompaktowe fasety: nie pokazuj kilkudziesięciu wartości w jednej liście. Używaj wyszukiwarki w obrębie jednej fasety („Szukaj w rozmiarach”), grupuj rzadkie wartości pod „Pokaż więcej”.
  • Ukrywanie pustych wartości: możliwość schowania terminów, które nie dają żadnych wyników po aktualnym zawężeniu, zapobiega frustracji. Użytkownik widzi tylko te opcje, które „coś dadzą”.
  • Feedback i stan: liczba wyników przy każdej wartości oraz łączna liczba znalezionych produktów po zastosowaniu filtra buduje poczucie kontroli. Dla AJAX pokaż skeleton lub spinner, ale nie więcej niż 200–300 ms – dłużej psuje percepcję.
  • Mobile-first: na wąskich ekranach filtry w formie szuflady/okna i przycisk „Zastosuj”. Pamiętaj o zachowaniu przewinięcia listy produktów do góry po zastosowaniu filtrów i o łatwym przycisku „Wyczyść”.
  • Dostępność: etykiety pól (label), grupowanie (fieldset/legend), odpowiednie role ARIA, duży cel dotykowy, kontrast kolorów i obsługa klawiatury. Teksty muszą być jednoznaczne – „Kolor”, „Rozmiar”, „Cena”.
  • Cache i opóźnienia: przemyśl caching stron z parametrami. CDN z białą listą parametrów (min_price, max_price, filter_pa_*) potrafi drastycznie obniżyć obciążenie. Po stronie serwera rozważ obiektowy cache (Redis/Memcached). Pamiętaj o czyszczeniu cache po aktualizacji produktów.
  • Precyzyjna kontrola stanów: jeśli domyślnie ukrywasz produkty niedostępne (Ustawienia → Produkty → Magazyn → „Ukryj niedostępne”), filtry muszą to respektować. W przeciwnym razie użytkownik zobaczy wyniki, których nie kupi.

Na koniec przypomnienie: użytkownik nie chce „wszystkich możliwości”. Chce tylko te, które są potrzebne tu i teraz. Projektuj filtry tak, by najważniejsze kryteria były zawsze w zasięgu wzroku, a mniej istotne – dwa kliknięcia dalej. Dobra warstwa interfejsu to nie ozdoba, to fundament konwersji.

SEO, adresy URL i strategia indeksacji

Filtry generują ogromne liczby podstron – potencjalne ryzyko dla pozycjonowania. Chodzi o to, aby wyszukiwarki nie indeksowały tysięcy kombinacji, które nie wnoszą wartości, a jednocześnie by użytkownicy mogli swobodnie dzielić się linkami do zawężonych list. Dobra strategia SEO i świadome indeksowanie rozwiązują ten konflikt.

  • Kanoniczne adresy: strony kategorii z filtrami powinny zwykle mieć canonical ustawiony na „czystą” kategorię. Wyjątki to wybrane, ręcznie przygotowane landing pages (np. „Buty do biegania czarne męskie”), które mają własny opis i potencjał fraz long-tail.
  • Noindex dla parametrów: ustaw reguły w SEO pluginie (Yoast/Rank Math), aby parametry filtrów miały meta robots noindex,follow. Zachowasz crawl budget i nie zanieczyszczysz indeksu.
  • Mapa strony: nie dodawaj dynamicznych adresów z parametrami filtrów do sitemap. Dotyczy to także większości archiwów atrybutów, jeśli nie mają unikatowego kontentu.
  • Breadcrumbs i dane strukturalne: okruszki powinny prowadzić do kategorii nadrzędnych, a nie replikować drzewko filtrów. Strukturalne dane Product/ItemList pozostają bez zmian, bo filtry nie „tworzą” nowych produktów.
  • Duplikacja treści: unikaj wielokrotnego renderowania tych samych opisów SEO pod różnymi parametrami. Treści redakcyjne trzymaj przy kategoriach lub dedykowanych landingach.
  • Przyjazne URL: parametry czytelne (kolor=czarny, rozmiar=42) są OK. Nie ma konieczności komplikowania rewritów do wielu poziomów ścieżek, jeśli utrudnia to kontrolę nad kanonicznością.

Uwaga: W filtrach w trybie AJAX warto aktualizować adres URL (pushState), aby użytkownik mógł dodać stronę do zakładek. Jednocześnie zachowuj politykę noindex dla parametrów – wyszukiwarki i tak odczytają meta robots bez problemu.

Checklist wdrożenia i rozwiązywanie problemów

Nawet najlepiej zaplanowane filtry wymagają testów i korekt. Poniższa lista kontrolna oraz typowe problemy pomogą uniknąć niespodzianek.

  • Przygotowanie danych:
    • Czy wszystkie kluczowe cechy są globalnymi atrybutami?
    • Czy wartości (np. kolor, rozmiar) są spójne i bez duplikatów (np. „szary” i „grafitowy” to różne, czy synonimy)?
    • Czy pola numeryczne mają ujednolicone jednostki?
  • Konfiguracja filtrów:
    • Czy na stronie sklepu i kategorii widnieją właściwe bloki/widżety?
    • Czy adres URL aktualizuje się po zastosowaniu filtra?
    • Czy aktywne filtry są widoczne i łatwe do usunięcia?
  • Wydajność:
    • Czy lookup tables zostały zregenerowane po imporcie?
    • Czy cache uwzględnia parametry filtrów (białe listy w CDN)?
    • Czy suwak ceny działa natychmiast (poniżej 300 ms)?
  • UX i mobilność:
    • Czy filtry na telefonie otwierają się w wygodnym panelu?
    • Czy liczba filtrów nie przytłacza użytkownika (3–5 najważniejszych na start)?
    • Czy przycisk „Wyczyść” jest zawsze dostępny?
  • SEO:
    • Czy parametry filtrów mają noindex?
    • Czy canonical kieruje do kategorii bazowej lub do wybranej strony docelowej?
    • Czy filtry nie trafiły do mapy strony?
  • Typowe problemy i naprawy:
    • Filtr nie pokazuje wyników: sprawdź, czy używasz globalnych atrybutów, a nie lokalnych „Własnych atrybutów produktu”.
    • Brak paska bocznego: motyw nie renderuje sidebara na stronie sklepu – użyj szablonu z paskiem lub przenieś filtry do sekcji nad listą.
    • Nieprawidłowe ceny w suwaku: zregeneruj tabele meta lookup, sprawdź wtyczki walutowe i format liczb.
    • Konflikt z cache: CDN skraca parametry lub je ignoruje – włącz whitelisting i wykluczenia dla zapytań filtrów.
    • Puste wartości w listach: włącz ukrywanie pustych terminów lub zaktualizuj stany magazynowe.
    • Zbyt wolne odpowiedzi: ogranicz liczbę faset, zastosuj indeksujące wtyczki (FacetWP) lub przenieś filtry meta do atrybutów/lookup tables.

Testy A/B i analityka: mierz kliknięcia w otwarcie panelu filtrów, wybór poszczególnych cech, reset, zmianę liczby wyników i współczynnik przejścia do karty produktu po zastosowaniu danego kryterium. Dzięki temu wiesz, które fasety są kluczowe, a które tylko zajmują miejsce.

Podsumowując, kluczem do skutecznych filtrów jest fundament danych (spójne atrybuty i porządek w taksonomiach), rozsądna warstwa interfejsu i kontrola nad adresami URL. Zaczynaj od wbudowanych widżetów i bloków, a dopiero przy rosnących potrzebach sięgaj po wtyczki z własnym indeksem i AJAX. Jeśli ekosystem wtyczek nie odpowiada Twoim wymaganiom, możesz zbudować dedykowany mechanizm na filtrach taksonomii i polach meta. Dbaj o dostępność, wydajność i kanoniczność, a filtry nie tylko nie zaszkodzą, ale realnie podniosą konwersję i satysfakcję użytkownika.

Chcesz mieć dobrą stronę internetową?

Zadzwoń do nas. Porozmawiamy o stronie dopasowanej
do Twoich potrzeb.

601 162 666

Poprzedni wpis
Optymalizacja paginacji pod SEO
Następny wpis
Tworzenie stron www Ustka
Zadzwoń Konsultacja