Filtry i paginacja w sklepie a SEO - jak uniknac duplikacji i cienkiej tresci
Filtry i paginacja sklep SEO to temat, ktory kosztuje wiele sklepow setki zmarnowanych stron w indeksie Google. Canonical, noindex i swiadoma kontrola parametrow URL pozwalaja skupic crawl budget tam, gdzie naprawde zarabiasz - na produktach i kategoriach.
Jesli Twoj sklep ma kilkaset produktow i korzysta z filtrow, mam dla Ciebie zla wiadomosc: Google prawdopodobnie indeksuje teraz tysiace stron, ktore nigdy nie przyniosly ani jednej wizyty organicznej. Filtry rozmiar/kolor/producent, sortowanie po cenie, paginacja - wszystko to generuje nowe adresy URL, ktore robot Google skrzętnie odwiedza i... marnuje na nie czas, ktory mogłby przeznaczyd na Twoje realne strony produktow.
W ciagu 13 lat pracy ze sklepami - od małych WooCommerce po kilkutysięczne katalogi na Shoper - widziałem ten problem chyba w kazdym sklepie, ktory trafił do mnie na audyt po roku dzialania. Rozwiazanie nie jest skomplikowane, ale wymaga swiadomego podejscia do tego, co powinno byc w indeksie, a co nie.
Dlaczego filtry generują tyle URLi
Weź sobie sklep z odziezą. Masz kategorie "Kurtki zimowe". Filtry: rozmiar (S/M/L/XL/XXL - 5 opcji), kolor (10 opcji), producent (8 opcji), przedział cenowy (4 opcje). Kombinatorycznie to 5 × 10 × 8 × 4 = 1600 możliwych kombinacji dla jednej kategorii. Dodaj do tego sortowanie (po cenie rosnąco, malejąco, po popularności, po nowosciach - kolejne 4 warianty) i masz 6400 adresow URL z jednej strony kategorii.
Wiekszoscz tych stron wygląda niemal identycznie: ten sam opis kategorii na gorze, H1 "Kurtki zimowe", metatagi z nazwą kategorii. Jedyna roznica to przefiltrowany zestaw produktow. Google nie ma powodu traktowac tych stron inaczej niz duplikaty.
Crawl budget - o co chodzi i kiedy ma znaczenie
Crawl budget to ilosc stron, ktora Googlebot odwiedza w danym przedziale czasu na Twojej witrynie. Dla małego sklepu z 300 produktami to może nie robić wielkiej roznicy. Ale jesli masz 2000 produktow i robot marnuje 65% odwiedzin na smieciowe adresy filtrowe, efekty są namacalne:
- nowe produkty trafiaja do indeksu z opoznieniem tygodnia lub dluzej
- strony kategorii sa rzadziej odswiezane, wiec aktualizacje opisow nie pojawiaja sie szybko
- Google Search Console pokazuje duze liczby w "zaindeksowanych" stronach, ale ruch organiczny stoi w miejscu
Odwrocona sytuacja jest tez mozliwa: robot w ogole nie trafi na nowe produkty, bo jest zajety obchodem nowych kombinacji filtrow wygenerowanych przez to, ze ktos kliknal "sort=price_desc".
Trzy narzedzia do opanowania filtrow i paginacji
1. Tag canonical
Canonical to meta tag w sekcji head strony, ktory mowi Google: "ta strona to kopia oryginalu pod tym adresem URL". Dla stron filtrowych wyglada to tak:
<link rel="canonical" href="https://twojsklep.pl/kurtki-zimowe/" />
Kazdda strona filtrowa wskazuje na czysty URL kategorii. Google nadal moze ją crawlowac, ale sygnaly rankingowe (linki, engagement) konsoliduje pod glownym adresem kategorii.
2. Noindex z follow
Dyrektywa noindex mowi robotowi: "nie umieszczaj tej strony w indeksie". Dodajesz follow, zeby Google nadal szedl po linkach na stronie i mogł dotrzec do produktow:
<meta name="robots" content="noindex,follow" />
Stosuj to na stronach, ktore nie mają zadnej wartosci rankingowej: wyniki wyszukiwania wewnetrznego, strony sortowania bez opisow, kombinacje filtrow.
3. Robots.txt dla sesyjnych parametrow
Niektorych parametrow nie chcesz nawet, zeby Google widział. Session ID, UTM, parametry koszykowe:
Disallow: /*?session_id=
Disallow: /*?add-to-cart=
Disallow: /*?utm_source=
Uwaga: blokada w robots.txt nie przekazuje sygnałow - Google w ogole nie odwiedzi takiej strony. Uzywaj tego tylko dla parametrow czysto techniczno-sesyjnych, nie dla filtrow, po ktorych ktos moglby szukac.
Kiedy uzywac ktorego rozwiazania
| Sytuacja | Canonical | Noindex,follow | Robots.txt Disallow |
|---|---|---|---|
| Filtr atrybutu (kolor, rozmiar) | Tak - wskazuje na kategorie | Alternatywa dla canonical | Nie |
| Sortowanie bez opisu | Nie | Tak | Mozna dla typowych parametrow sort= |
| Paginacja strony 2+ | Canonical na wlasny URL | Nie stosuj | Nie |
| Parametry sesji / koszyk | Nie dotyczy | Mozna | Tak - preferowane |
| Wyniki wyszukiwania wewnetrznego | Nie dotyczy | Tak | Nie |
| Filtr z duzym wolumenem wyszukan | Nie - to strona docelowa | Nie - indeksuj | Nie |
Paginacja - oddzielny problem, inne rozwiazanie
Paginacja to inna bestia niz filtry. Strony /kategoria/strona/2/, /kategoria/strona/3/ i kolejne powinny byc indeksowalne (uzytkownik moze na nie trafic z Google), ale mają problem z cienką trescią: ten sam opis kategorii na kazdej podstronie, czasem ten sam H1.
Googla zrezygnowalo z rel=prev/next wiele lat temu - ta dyrektywa jest ignorowana. Oficjalne stanowisko: kazda strona paginacji powinna miec canonical wskazujacy na wlasny adres URL i byc dostepna do indeksowania.
Co to oznacza w praktyce:
- strona /kategoria/ ma canonical na siebie samą
- strona /kategoria/strona/2/ ma canonical na siebie samą
- opis kategorii na stronie 1 powinien byc rozbudowany i unikalny (tu warto pisac 300-500 słów)
- strony 2+ nie powielaj opisu - albo go usun, albo wstaw bardzo krotkie podsumowanie
Opisy kategorii na stronach 2+ mozna technicznie ukryc (pokazac tylko na stronie 1) przez warunkowe renderowanie po stronie serwera lub przez JS. W WooCommerce mozna to zrobic w pliku archive-product.php lub przez hook woocommerce_before_main_content.
Jak to ugrysc w WooCommerce
W WooCommerce pracuje z tym najczesciej przy uzyciu Rank Math (osobiscie preferuje do sklepow) lub Yoast SEO. Oba pluginy maja gotowe ustawienia, ktorych wiekszoscz ludzi nigdy nie otwiera.
Rank Math - sekcja Titles & Meta:
- Products Archive: ustaw canonical na strony paginacji, skonfiguruj noindex dla pustych archiwow
- Pod Products mozesz globalnie ustawic noindex dla wariantow produktow, ktore nie mają wlasnych opisow
- Modul WooCommerce SEO (PRO) blokuje indeksacje koszyka, checkout, kont uzytkownikow, stron "Thank you"
Yoast SEO - ustawienia zaawansowane:
- Search appearance - Archives: wylacz indeksowanie pustych archiwow tagów produktow
- Tools - Bulk editor: mozesz masowo ustawic noindex na selektywnych typach postow
Ale sam plugin SEO nie wystarczy, gdy filtry generuja URLe przez parametry GET. WooCommerce domyslnie dodaje parametry takie jak ?product_cat=, ?product_tag=, ?orderby=popularity, ?min_price=, ?max_price= - kazdy jest osobnym adresem URL.
Checklist: kontrola filtrow i paginacji w WooCommerce SEO
- Sprawdz Google Search Console - Coverage - Indexed: policz ile stron z ?filter_ lub ?orderby= jest w indeksie
- W Rank Math / Yoast ustaw canonical na wszystkich stronach filtrowych na czysty URL kategorii
- Dodaj noindex,follow na strony sortowania bez unikatowej tresci
- Zablokuj w robots.txt parametry sesyjne i ?add-to-cart=
- Sprawdz opisy kategorii - strona 1 powinna miec 300+ slow, strony 2+ bez opisu lub z krotkim
- Poczekaj 4-6 tygodni i sprawdz wykres crawl budgetu w GSC (Indeksowanie - Statystyki indeksowania)
- Porownaj liczbe zaindeksowanych stron przed i po
Kiedy filtr warto indeksowac - wyjatki
Nie kazdą strone filtrowa powinienes blokowac. Czasem filtr sam w sobie ma wartosc SEO:
- "Kurtki zimowe damskie" - jesli to osobna kategoria lub filtr z duzym wolumenem wyszukan w Google (sprawdzasz w Ahrefs / Senuto), moze warto miec ta strone w indeksie z wlasnym opisem
- "Produkty marki X" - strona producenta/marki z filtrem moze byc wartościowa, jesli napisano na niej opis, historię marki, bestsellery
- "Produkty do 100 zl" - filtr cenowy ma sens do indeksowania, gdy jest wyszukiwana fraza (sprawdz w GSC zapytania)
Regula jest prosta: indeksuj strone filtrowa wtedy i tylko wtedy, gdy mozesz napisac na niej unikatowa tresc (opis, porady zakupowe, porownanie) i gdy ktos tego rzeczywiscie szuka.
Plusy
- Canonical i noindex sa latwe do wdrozenia przez plugin SEO bez zmian w kodzie
- Odzyskanie crawl budgetu widac w GSC po 4-8 tygodniach
- Konsolidacja canonicali wzmacnia sygnaly rankingowe kategorii
- Mniej smieciowych stron w indeksie = wyzszy procent stron z ruchem organicznym
Minusy
- Bledne ustawienie canonical (np. na glowna strony zamiast kategorii) szkodzi mocniej niz brak canonical
- Blokada zbyt agresywna moze wypchnac z indeksu strony, ktore naprawde przyciagaja ruch
- Platformy SaaS (Shoper, IdoSell) maja ograniczone mozliwosci konfiguracji - nie zawsze zrobisz wszystko
- Zmiany widoczne z opoznieniem - nie oczekuj efektow w ciagu tygodnia
Shoper i inne platformy SaaS
W WooCommerce masz pelna kontrole nad kodem. W Shoper, IdoSell czy Sky-Shop mozliwosci sa ograniczone platforma. Co mozesz zrobic:
- Shoper - od 2024 roku ma panel SEO z mozliwoscia ustawienia canonical dla filtrow i wylaczenia indeksacji niektorych typow stron. Sprawdz Ustawienia - SEO - Filtry. Nie kazdy plan to ma - Pro i Enterprise.
- Robots.txt - na wiekszosci platform mozna go edytowac i zablokowac typowe parametry sesyjne
- Google Search Console - parametry URL - starsze narzedzie (czesc GSC) pozwala wskazac Google, jak traktowac konkretne parametry. W 2026 roku Google slabnnie wspiera te funkcje, ale nadal działa.
Jesli buduję sklep dla klienta i wiem, ze filtrowanie bedzie rozbudowane, od razu planuję architekturę ze spolecznosci sklepow internetowych pod katem tej kwestii - wybór platformy z natywnym wsparciem SEO dla filtrow zaoszczedza miesiecy pracy pozniej.
Jesli korzystasz z pluginu do filtrow (np. YITH WooCommerce Ajax Product Filter, WooCommerce Product Filters), sprawdz koniecznie, jakie URLe generuje. Czesc pluginów uzywa parametrow GET, inne uzywaja ladnych /sciezek/ - to ma kluczowe znaczenie dla strategii SEO i nie jest widoczne na pierwszy rzut oka.
Jak sprawdzic, czy masz problem teraz
Przed wdrozeniem czegokolwiek sprawdz stan faktyczny. Wejdź do Google Search Console i:
1. Przejdz do Indeksowanie - Strony
2. Kliknij "Zaindeksowane" - zobaczysz liste
3. Wyeksportuj do CSV
4. W arkuszu kalkulacyjnym pofiltruj URLe zawierajace "?" lub znaki charakterystyczne dla filtrow Twojego sklepu
5. Policz, ile procent zaindeksowanych stron to strony filtrowe
Jesli to wiecej niz 30%, masz problem wartoscity do rozwiązania. Widziałem sklepy, gdzie filtry stanowiły 85% indeksu - 12 000 stron z 14 000 zaindeksowanych.
Druga metoda: w GSC przejdz do Statystyki indeksowania (Indeksowanie - Statystyki) i sprawdz, ile stron robot odwiedza dziennie. Porownaj to z liczba Twoich realnych stron (produkty + kategorie + blog). Jesli roznica jest kilkukrotna, crawl budget ucieka w nieodpowiednie miejsce.
Wiecej o strategicznym podejsciu do SEO sklepu, szczegolnie pozycjonowania WooCommerce kategorii i produktow, pisalem oddzielnie.
Efekty, jakie mozna oczekiwac
Z doswiadczenia: po prawidlowym ustawieniu canonical i noindex na filtrach, sklep odczuwa poprawe w ciagu 4-8 tygodni. Nie jest to spektakularne skoki pozycji z dnia na dzien - to stopniowe wzmacnianie stron kategorii i produktowych, ktore dostaja wiecej "uwagi" ze strony robota.
W jednym projekcie (sklep B2B z branzy technicznej, okolo 1800 produktow) zmniejszenie indeksu ze strony z 9400 do 1200 przełożyło się na +35% ruchu organicznego w ciagu 2 miesiecy - nie przez nowe tresci, tylko przez to, ze Google zaczął traktowac serio te strony, ktore wczesniej tonely w morzu duplikatow.
Jesli chcesz sprawdzic, czy Twoj sklep ma ten problem i co dokladnie mozna z nim zrobic, wpadnij do mnie na konsultacje SEO - standardowy audyt techniczny zajmuje mi okolo tygodnia i zawsze zaczynam wlasnie od tego obszaru.
Nie, jesli sa prawidlowo skonfigurowane. Filtry szkodza wtedy, gdy generuja indeksowalne URLe z cienkia trescia i identycznym opisem kategorii. Jesli ustawisz canonical lub noindex na strony filtrowe, Google nie bedzie ich indeksowac i problem znika. Zalezny to od wartosci strony. Canonical na czysty URL kategorii sprawdza sie, gdy chcesz przekazac sygnaly linkowania do glownej strony. Noindex,follow jest lepszy, gdy strona filtrowa nie ma zadnej wartosci rankingowej. W praktyce czesto lacze oba podejscia w zaleznosci od platformy. Strony /kategoria/strona/2/ i /kategoria/strona/3/ czesto maja ten sam naglowek H1, opis kategorii i metatagi. Google widzi wtedy kilka wersji tej samej strony. Rozwiazanie: rel=canonical na wlasny URL kazdej strony paginacji oraz unikalna tresc na stronie 1 (opis, poradnik zakupowy). Mozna uzywac reguł Disallow dla konkretnych parametrow URL, np. Disallow: /*?sort= lub Disallow: /*?filter_. Ale uwazaj - blokada w robots.txt uniemozliwia crawlowanie, wiec Google nie przetworzy tez linków na tych stronach. Lepiej jest pozwolic na crawlowanie z noindex,follow albo canonical. Robots.txt blokowac powinienes tylko URL-e, ktorych w ogole nie chcesz, zeby robot widzial. Samo WooCommerce nie ma, ale dwa najpopularniejsze pluginy SEO - Rank Math i Yoast SEO - majа odpowiednie sekcje. W Rank Math znajdziesz ustawienia w sekcji Titles & Meta dla produktow i kategorii. Dodatkowo Rank Math posiada modul WooCommerce SEO, ktory pozwala noindexowac strony koszyka, zamowien i filtrow za kilka klikniec. Crawl budget to ilosc stron, ktora Googlebot odwiedza w danym czasie na Twojej witrynie. Jesli sklep ma 2000 produktow ale generuje 50 000 URLi przez filtry, robot traci czas na smieciowe adresy zamiast odswiezac strony produktow. Efekt: nowe produkty trafiaja do indeksu z opoznieniem, a pozycje popularnych kategorii staja w miejscu.Najczęstsze pytania
Czy filtry w sklepie zawsze szkodza SEO?
Co lepiej uzyc na stronach filtrów - canonical czy noindex?
Jak paginacja wplywa na duplikacje tresci?
Jak zablokować filtrowanie w robots.txt?
Czy WooCommerce ma wbudowane narzedzia do obsługi SEO filtrow?
Co to jest crawl budget i dlaczego ma znaczenie w sklepie?
Potrzebujesz pomocy z projektem?
Robię strony WordPress i sklepy Shoper od 2500 zł. Partner Shoper, 120+ projektów.
- Odpowiedź w 24h
- Certyfikowany Partner Shoper
- 120+ zrealizowanych projektów
- Zgodność z RODO, pełna ochrona danych