Marketplace z ogłoszeniami sprzętu warsztatowego i maszyn miał w indeksie Google około 92 tys. adresów. Ruch organiczny od roku stał w miejscu, a Search Console pokazywał rosnącą grupę stron „Strona zeskanowana, ale obecnie nie zindeksowana”. Po audycie zespół podjął decyzję, która na spotkaniu z zarządem brzmiała jak sabotaż: wycofać z indeksu blisko jedną trzecią serwisu, czyli około 30 tys. podstron. Poniżej opisujemy, skąd te strony się wzięły, według jakich kryteriów je wybrano, jak przebiegała operacja i co pokazały dane po czterech miesiącach.
Dane klienta są zanonimizowane, liczby zaokrąglone. Mechanika i kolejność kroków są takie, jak w projekcie.
Skąd wzięło się 30 tys. cienkich stron
Żadna z tych podstron nie powstała celowo jako „strona pod SEO”. Narosły jako produkt uboczny trzech mechanizmów działających przez sześć lat bez nadzoru.
- Wygasłe ogłoszenia. Po zakończeniu oferty strona zostawała online z komunikatem „ogłoszenie nieaktualne” i trzema linijkami opisu. Takich adresów było około 14 tys.
- Kombinacje lokalizacji i kategorii. System generował strony typu „szlifierki kątowe Kalisz” dla każdego miasta, w którym kiedykolwiek pojawiło się choć jedno ogłoszenie. Ponad 11 tys. z nich pokazywało zero lub jedną aktywną ofertę.
- Profile sprzedawców bez ofert. Konta założone i porzucone, z publiczną wizytówką zawierającą nazwę i datę rejestracji. Około 5 tys. adresów.
Każda z tych grup osobno wyglądała niegroźnie. Razem tworzyły masę adresów, które Googlebot odwiedzał regularnie, a które nie odpowiadały na żadne realne zapytanie. Podobny wzorzec, tylko w mniejszej skali, opisaliśmy w case’ie o 900 podstronach, które wypadły z indeksu przez paginację: problem rzadko leży w jednej stronie, częściej w szablonie, który powiela słabą stronę tysiące razy.
Kryteria kwalifikacji do usunięcia
Najczęstszy błąd przy takich porządkach to ocena „na oko” albo jednym progiem, na przykład liczbą słów. Tutaj każdy adres przeszedł przez cztery filtry, a do listy trafiał dopiero wtedy, gdy spełnił co najmniej trzy.
| Kryterium | Próg | Źródło danych |
|---|---|---|
| Ruch organiczny | 0 kliknięć w 12 miesięcy | Search Console (eksport przez API) |
| Wyświetlenia | poniżej 10 w 12 miesięcy | Search Console |
| Treść unikalna | poniżej 80 słów po odjęciu szablonu | crawl Screaming Frog + własny skrypt |
| Linki zewnętrzne | brak domen linkujących | Ahrefs |
Dodatkowo każdą stronę sprawdzono pod kątem konwersji w GA4 (kontakt ze sprzedawcą, kliknięcie numeru telefonu). Wyszło 212 adresów, które nie miały ruchu z Google, ale konwertowały z ruchu bezpośredniego i newslettera. Zostały na miejscu, bez względu na pozostałe wskaźniki.
Z 92 tys. adresów na liście znalazło się ostatecznie 29,6 tys. Ogólne zasady takiej selekcji, tylko na poziomie pojedynczych artykułów, rozpisaliśmy w tekście o tym, kiedy usunąć artykuł zamiast go poprawiać. W marketplace działają te same pytania, tylko odpowiada się na nie skryptem, a nie ręcznie.
Usunąć, przekierować czy odciąć od indeksu
Dla każdej z trzech grup wybrano inne rozwiązanie, bo każda miała inny potencjał i inne ryzyko.
Wygasłe ogłoszenia: 410 albo 301
Jeśli istniało aktywne ogłoszenie tego samego modelu maszyny, stary adres dostawał przekierowanie 301 na kategorię modelu (nie na stronę główną, bo takie przekierowanie Google i tak traktuje często jak soft 404). Gdy odpowiednika nie było, serwer zwracał kod 410. Przekierowań wyszło około 3,8 tys., reszta ogłoszeń dostała 410.
Strony lokalizacji: noindex i próg treści
Tych stron nie dało się po prostu skasować, bo użytkownicy wchodzą na nie z filtrów w wyszukiwarce wewnętrznej. Zespół wprowadził regułę: strona „kategoria + miasto” jest indeksowalna dopiero przy minimum pięciu aktywnych ofertach. Poniżej progu dostaje noindex, follow i znika z mapy witryny. Ta sama logika przydaje się w każdym sklepie z filtrami, szerzej opisujemy ją w poradniku o tym, które kategorie i filtry indeksować w 2026 roku.
Puste profile sprzedawców: noindex
Profile zostały dostępne dla zalogowanych użytkowników, ale bez ofert dostały noindex. Po dodaniu pierwszego ogłoszenia profil automatycznie wraca do indeksu.
Celowo nie użyto blokady w robots.txt jako głównego narzędzia. Strona zablokowana w robots.txt nie zostanie pobrana, więc Google nie zobaczy na niej dyrektywy noindex i adres może latami wisieć w indeksie bez opisu.
Procedura etapowa i punkty kontrolne
Zamiast wyłączać 30 tys. adresów jednego dnia, operację podzielono na cztery fale w odstępach dwutygodniowych.
- Fala 1 (tydzień 1): 2 tys. wygasłych ogłoszeń z najmniejszym ruchem. Test, czy kody 410 i 301 działają poprawnie w CDN.
- Fala 2 (tydzień 3): reszta wygasłych ogłoszeń.
- Fala 3 (tydzień 5): reguła progu dla stron lokalizacji.
- Fala 4 (tydzień 7): profile sprzedawców i aktualizacja map witryny.
Po każdej fali sprawdzano trzy punkty kontrolne: dzienną liczbę kliknięć dla stron, które zostały w indeksie (spadek o ponad 10 proc. tydzień do tygodnia oznaczał wstrzymanie), statystyki indeksowania w Search Console (czas odpowiedzi serwera i rozkład kodów) oraz logi serwera filtrowane po user-agencie Googlebota. Logi okazały się najcenniejsze, bo pokazywały zmianę zachowania crawlera kilka dni wcześniej niż raporty Google.
Raz trzeba było się cofnąć. W fali 3 reguła progu objęła 140 stron miast wojewódzkich w kategoriach sezonowych (np. odśnieżarki latem). Wróciły do indeksu z wyjątkiem w regule, bo ich historyczny ruch zimowy był wysoki.
Wyniki: ruch, crawl budget, konwersje
Pomiar zamknięto cztery miesiące po ostatniej fali. Dla porównania wzięto analogiczny okres rok wcześniej, żeby wyeliminować sezonowość branży.
| Wskaźnik | Przed | Po 4 miesiącach | Zmiana |
|---|---|---|---|
| Zindeksowane adresy | ok. 61 tys. | ok. 58 tys. | -5% |
| Kliknięcia organiczne / mies. | 184 tys. | 231 tys. | +26% |
| Udział wizyt Googlebota na aktywnych ofertach | 38% | 71% | +33 pkt proc. |
| Mediana czasu do zindeksowania nowego ogłoszenia | 9 dni | 2 dni | -78% |
| Kontakty ze sprzedawcą z ruchu organicznego | 6,1 tys. | 7,9 tys. | +30% |
Najciekawszy jest pierwszy wiersz. Liczba zindeksowanych adresów spadła tylko o 5 proc., choć z serwisu wycofano 30 tys. stron. Powód: duża część z nich i tak nie była w indeksie, tylko pochłaniała wizyty crawlera. Nowe, wartościowe ogłoszenia zajęły zwolnione miejsce. To spójne z tym, co Google pisze w dokumentacji o zarządzaniu budżetem indeksowania w dużych witrynach: przy serwisach powyżej kilkudziesięciu tysięcy adresów o kolejności skanowania decyduje też to, ile niskowartościowych URL-i konkuruje o uwagę bota.
Wzrost kliknięć rozkładał się nierówno. Ponad 60 proc. przyrostu przyszło z aktywnych ogłoszeń, które wcześniej indeksowały się z opóźnieniem i nie zdążały zebrać ruchu przed wygaśnięciem. Strony kategorii zyskały mniej, około 9 proc.
Zauważalny był też efekt uboczny w odpowiedziach AI. Po porządkach asystenci (ChatGPT z wyszukiwaniem, Perplexity) zaczęli częściej cytować strony kategorii serwisu przy pytaniach typu „gdzie kupić używaną tokarkę”. Wcześniej w cytowaniach pojawiały się czasem wygasłe ogłoszenia, co kończyło się rozczarowaniem użytkownika. Nie mamy twardego pomiaru tej zmiany, tylko ręczne próby na 40 pytaniach przed i po.
Co poszłoby inaczej przy powtórce
Po zamknięciu projektu zespół spisał cztery wnioski, które zmieniłyby plan, gdyby trzeba było go zrobić jeszcze raz.
- Logi serwera od pierwszego dnia. Ich analizę uruchomiono dopiero w fali 2. Brak punktu odniesienia sprzed operacji utrudnił policzenie, jak dokładnie zmienił się rozkład wizyt Googlebota.
- Reguła sezonowa przed falą 3. Problem z odśnieżarkami można było przewidzieć, sprawdzając ruch z 24, a nie 12 miesięcy.
- Zmiana w CMS przed sprzątaniem. Mechanizm, który generował puste strony lokalizacji, poprawiono dopiero po fali 3. Przez sześć tygodni system dorabiał nowe cienkie adresy równolegle do usuwania starych.
- Komunikacja z działem sprzedaży. Część sprzedawców dostała automatyczne powiadomienie „Twój profil jest niewidoczny w Google” i zgłosiła to jako błąd. Krótka informacja wysłana z wyprzedzeniem oszczędziłaby kilkadziesiąt zgłoszeń.
Jeśli Twój serwis ma podobny objaw, czyli dużo adresów w stanie „zeskanowana, ale nie zindeksowana”, zacznij od diagnozy przyczyny, zanim cokolwiek usuniesz. Pomoże w tym nasza lista 9 przyczyn, przez które Google nie indeksuje podstron, ułożona w kolejności napraw.
FAQ
Czy usunięcie dużej części stron może obniżyć ruch?
Może, jeśli usuniesz strony, które mają kliknięcia, linki zewnętrzne albo konwersje. Dlatego kryteria muszą łączyć kilka źródeł danych, a operacja powinna iść falami z punktem kontrolnym po każdej z nich.
Co jest lepsze dla wygasłego ogłoszenia: 404, 410 czy przekierowanie?
Jeśli istnieje bliski odpowiednik (ten sam model, ta sama kategoria), przekierowanie 301 zachowuje wartość adresu. Gdy odpowiednika nie ma, 410 jasno sygnalizuje, że strona zniknęła na stałe. Przekierowanie wszystkiego na stronę główną to najgorsza opcja.
Dlaczego nie zablokować cienkich stron w robots.txt?
Bo zablokowana strona nie zostanie pobrana, więc Google nie odczyta na niej noindex. Adres może zostać w indeksie z pustym opisem. Robots.txt nadaje się do odcinania nieskończonych przestrzeni parametrów, a nie do wycofywania stron z indeksu.
Po jakim czasie widać efekty takiego przycięcia?
W tym projekcie zmiana zachowania Googlebota była widoczna w logach po 7–10 dniach od każdej fali, a wzrost ruchu zaczął się stabilizować po około dwóch miesiącach od ostatniej fali.
Ile stron to już „duży serwis” w kontekście crawl budget?
Google wskazuje, że problem dotyczy głównie witryn z dziesiątkami tysięcy adresów lub więcej, które często zmieniają treść. Marketplace z ogłoszeniami spełnia oba warunki niemal zawsze.