Sklep z częściami zamiennymi do samochodów osobowych zgłosił się do nas z problemem, który na pierwszy rzut oka wyglądał jak kara algorytmiczna: ruch organiczny spadał czwarty miesiąc z rzędu, a w Google Search Console rosła liczba adresów w statusie „Wykryta, obecnie nie zindeksowana”. Katalog liczył wtedy około 7 tys. produktów bazowych i ponad 40 tys. wariantów (numer katalogowy, strona montażu, rok produkcji, wersja silnikowa). Każdy wariant miał własny adres URL, własny tytuł i własny tekst opisu generowany z szablonu. To nie była kara. To był problem selekcji: Google widział katalog, lecz nie uznawał większości jego adresów za warte trzymania w indeksie.
Poniżej opisujemy, co zmierzyliśmy, jaką decyzję podjęliśmy wobec wariantów i co pokazały dane po trzech oraz po sześciu miesiącach. Metodyka jest zbieżna z tą, którą zastosowaliśmy w case e-commerce z indeksacją 12k SKU pod AIO, tylko skala jest tu trzykrotnie większa, a stawką był ruch z długiego ogona na numery katalogowe.
Skala problemu i pierwsze objawy
Pierwszy objaw był czysto ilościowy. Na 47 tys. adresów zgłoszonych w sitemapach Google trzymał w indeksie 11,4 tys., czyli 24 proc. Reszta siedziała w dwóch kubełkach: „Wykryta, obecnie nie zindeksowana” (19,8 tys.) oraz „Przeskanowana, obecnie nie zindeksowana” (14,1 tys.). Ten podział jest diagnostycznie ważny. Pierwszy kubełek mówi o tym, że robot zna adres, ale nie poświęcił mu pobrania. Drugi mówi, że pobrał i po obejrzeniu treści zdecydował jej nie trzymać.
Drugi objaw był jakościowy. Produkty bazowe, które wcześniej rankowały na frazy generyczne typu „klocki hamulcowe przód”, traciły pozycje na rzecz własnych wariantów, a te warianty nie dostawały ani kliknięć, ani stabilnej pozycji. Mieliśmy więc klasyczną kanibalizację wewnątrz jednej karty produktu, rozmnożoną czterdzieści tysięcy razy.
Trzeci objaw dotyczył logów serwera. W 30-dniowej próbce 62 proc. pobrań Googlebota trafiało na adresy z parametrami filtrowania, a nie na karty produktów ani kategorie. Robot pracował intensywnie, tylko w złym miejscu.
Diagnoza: duplikaty i budżet crawlowania
Zestawiliśmy trzy źródła: eksport GSC per adres, logi dostępowe z 30 dni i zrzut katalogu z bazy. Z tego porównania wyszły cztery fakty.
- Mediana podobieństwa treści między wariantami tego samego produktu bazowego wynosiła 0,94 w mierze kosinusowej na bag-of-words. Różnił je wyłącznie numer katalogowy i jedna linia tabeli parametrów.
- Warianty miały puste lub szablonowe sekcje opisowe. 83 proc. z nich zawierało mniej niż 120 słów treści unikalnej.
- Filtrowanie generowało adresy kombinatoryjne. Cztery aktywne fasety dawały teoretycznie ponad 300 tys. unikalnych adresów, z czego sitemapa nie zgłaszała żadnego, ale linkowanie wewnętrzne udostępniało wszystkie.
- Tag canonical na wariantach wskazywał na sam wariant, nie na produkt bazowy. Google dostawał więc jawny sygnał, że każdy z 40 tys. adresów jest kanoniczny.
Ostatni punkt był sednem sprawy. Google konsoliduje duplikaty samodzielnie, gdy sygnały są spójne, a dokumentacja Google Search Central dotycząca konsolidacji duplikatów mówi wyraźnie, że canonical jest wskazówką, nie dyrektywą. Przy 40 tys. sprzecznych wskazówek robot wybrał najtańszą dla siebie strategię: przestał pobierać nowe adresy z tej domeny i ograniczył się do głównych kategorii.
Decyzja o strukturze wariantów
Rozważaliśmy trzy ścieżki. Pierwsza: zostawić adresy wariantów i dopisać do każdego unikalną treść. Przy 40 tys. pozycji to koszt, którego żaden budżet treściowy nie udźwignie, a ryzyko wygenerowania masy niskiej jakości jest wysokie. Druga: skasować warianty i zostawić wyłącznie produkty bazowe. Tanie, ale kosztowałoby ruch z zapytań na konkretne numery katalogowe, a to w tej branży pytania z najwyższą intencją zakupową. Trzecia: złożyć warianty w jedną kartę z selektorem, zachowując adresowalność tylko dla tych wariantów, które mają realny popyt.
Wybraliśmy trzecią. Kryterium selekcji było twarde i mierzalne: wariant zachowuje własny adres URL, jeśli w ciągu ostatnich 12 miesięcy miał co najmniej 10 wyświetleń w GSC na zapytanie zawierające jego numer katalogowy albo co najmniej jedną transakcję. Resztę przenieśliśmy do karty bazowej jako stan selektora, bez własnego adresu.
Ten próg wyciął 40,3 tys. wariantów do 2,8 tys. adresowalnych. Brzmi brutalnie, ale te 2,8 tys. odpowiadało za 91 proc. wyświetleń całej populacji wariantów. Pozostałe 37,5 tys. adresów łącznie generowało mniej wyświetleń niż pojedyncza kategoria średniej wielkości.
Wdrożenie techniczne i jego etapy
Rozbiliśmy wdrożenie na cztery etapy rozłożone na siedem tygodni, żeby każdy krok dał się zmierzyć osobno. Rozłożenie w czasie ma tu znaczenie praktyczne: gdy wszystko wchodzi jednym deployem, a ruch się rusza, nie wiadomo, który element zadziałał.
- Tydzień 1, canonical. Warianty poniżej progu dostały canonical na produkt bazowy. Adresy zostały na razie dostępne, bez przekierowań. Celem było sprawdzenie, jak szybko Google skonsoliduje sygnały przy spójnym wskazaniu.
- Tygodnie 2–3, fasety. Kombinacje filtrów powyżej jednego wymiaru przeszły na linkowanie bez indeksowania, z parametrami wyłączonymi z linkowania wewnętrznego i z regułą w robots.txt dla wzorców wielofasetowych. Trzymaliśmy się tu zaleceń z przewodnika Google po nawigacji fasetowej: ograniczyć linkowanie, nie tylko zablokować dostęp.
- Tygodnie 4–5, scalanie. Karty bazowe dostały selektor wariantów renderowany serwerowo, z pełną tabelą zamienników i numerów katalogowych w treści. Numery katalogowe zostały w HTML, bo to one odpowiadają za dopasowanie do zapytań.
- Tydzień 6–7, przekierowania. Dopiero po potwierdzeniu konsolidacji w GSC warianty podprogowe przeszły na 301 do kart bazowych z zakotwiczeniem na właściwy stan selektora.
Kolejność nie jest przypadkowa. Przekierowanie 37,5 tys. adresów w tygodniu pierwszym wywaliłoby cały crawl na obsługę 301 zamiast na pobieranie treści. Rendering serwerowy selektora też był warunkiem koniecznym, co opisujemy szerzej w tekście o SEO technicznym i renderingu pod LLM, bo tabela zamienników wstrzykiwana po stronie klienta nie trafia do korpusu, z którego modele językowe cytują.
Zabezpieczenie ruchu z długiego ogona
Największe ryzyko tej operacji to utrata zapytań na numery katalogowe. Zabezpieczyliśmy je trzema ruchami.
Po pierwsze, wszystkie numery katalogowe scalonych wariantów (także tych bez własnego adresu) trafiły do treści karty bazowej jako tabela zamienników z kolumnami: numer OEM, numer zamiennika, strona montażu, zakres roczników. Tabela jest w HTML, nie w rozwijanym module ładowanym skryptem.
Po drugie, karta bazowa dostała sekcję z pytaniami o dopasowanie, bo to dominujący wzorzec zapytań w tej kategorii („czy pasuje do”, „jaki numer do”). Ta sama logika stoi za strukturą opisaną w case SEO 2026 z dekompozycją 3x ruchu, gdzie zyski przyszły z dopasowania formatu do intencji, nie z większej liczby adresów.
Po trzecie, utrzymaliśmy osobną sitemapę dla 2,8 tys. wariantów adresowalnych i monitorowaliśmy ich status indeksacji co tydzień. To dało nam wczesny sygnał, czy progiem nie odcięliśmy czegoś, co jednak generuje popyt.
Wyniki po trzech i po sześciu miesiącach
Porównanie jest rok do roku dla tego samego okna 28-dniowego, żeby wyjąć sezonowość (w częściach samochodowych jest wyraźna, szczyt przypada na wymianę opon i przeglądy wiosenne).
| Metryka | Start | Po 3 mies. | Po 6 mies. |
|---|---|---|---|
| Adresy zgłoszone w sitemapach | 47 100 | 9 850 | 9 910 |
| Adresy zindeksowane | 11 400 | 8 120 | 9 240 |
| Pokrycie indeksacji | 24 proc. | 82 proc. | 93 proc. |
| Pobrania Googlebota na karty produktów | 38 proc. | 71 proc. | 79 proc. |
| Kliknięcia organiczne (28 dni) | 14 200 | 13 600 | 19 850 |
| Kliknięcia na zapytania z numerem katalogowym | 3 950 | 4 180 | 6 310 |
Trzy obserwacje warte podkreślenia. Po pierwsze, liczba adresów zindeksowanych spadła, a ruch wzrósł. To normalne i spodziewane: zniknęły adresy, które nic nie wnosiły, a crawl przeniósł się na te, które konwertują. Po drugie, w trzecim miesiącu kliknięcia były o 4 proc. niższe niż na starcie, czyli operacja miała dołek przejściowy. Klient był na niego przygotowany, bo podaliśmy go w prognozie przed startem. Po trzecie, zapytania z numerem katalogowym wzrosły o 60 proc., mimo że usunęliśmy 37,5 tys. adresów zawierających te numery w URL. Numer w treści tabeli zamienników pracuje lepiej niż numer w adresie cienkiej podstrony.
Jedna rzecz nie zadziałała zgodnie z planem. Reguła w robots.txt dla wzorców wielofasetowych zablokowała też jeden legalny wzorzec kategorii, co kosztowało nas około 200 adresów kategorii na trzy tygodnie. Wyszło to z cotygodniowego przeglądu sitemap, nie z alertu. Wniosek operacyjny: każdą regułę blokującą warto przepuścić przez listę adresów, które faktycznie rankują, zanim trafi na produkcję.
FAQ
Czy usunięcie 37,5 tys. adresów nie jest zbyt ryzykowne?
Ryzyko mierzy się udziałem w wyświetleniach, nie liczbą adresów. W tym przypadku usunięte adresy odpowiadały za 9 proc. wyświetleń populacji wariantów, a cała ich treść (numery katalogowe, zamienniki, roczniki) została przeniesiona na karty bazowe. Gdyby ten udział wynosił 40 proc., decyzja byłaby inna.
Jak ustawić próg adresowalności wariantu?
Potrzebne są dane z 12 miesięcy, bo w sezonowych kategoriach krótsze okno zafałszuje obraz. Zaczynamy od progu, który zachowuje 90 proc. wyświetleń, i sprawdzamy, ile adresów przy nim zostaje. Jeśli liczba nadal przekracza możliwości crawlowania domeny, podnosimy próg, zamiast skracać okno.
Dlaczego canonical przed przekierowaniem, a nie od razu 301?
Bo 301 na dziesiątkach tysięcy adresów zużywa budżet crawlowania na obsługę samych przekierowań. Canonical pozwala Google skonsolidować sygnały własnym tempem, a dopiero potem domykamy strukturę przekierowaniem. W tym wdrożeniu konsolidacja była widoczna w GSC po około 18 dniach.
Ile trwał dołek przejściowy w ruchu?
Około 11 tygodni, z najgłębszym punktem w tygodniu siódmym (spadek o 9 proc. względem startu). Od tygodnia dwunastego krzywa była już powyżej punktu wyjścia. Warto podać ten przebieg klientowi przed startem, inaczej pierwszy raport po kwartale wygląda jak porażka.
Czy ta sama operacja ma sens przy 5 tys. wariantów?
Zwykle nie w tej formie. Przy mniejszych katalogach pokrycie indeksacji rzadko spada poniżej 70 proc., więc problemem nie jest selekcja, lecz jakość treści na kartach. Scalanie wariantów ma sens, gdy pokrycie indeksacji jest niskie, a mediana podobieństwa treści między wariantami przekracza 0,9.