Indeksacja sklepu internetowego - dlaczego Google nie indeksuje produktów i kategorii i jak to naprawić
POWRÓT_DO_BLOGA
AI & SEO 15 min

Indeksacja sklepu internetowego - dlaczego Google nie indeksuje produktów i kategorii i jak to naprawić

Paweł Wiszniewski
Paweł Wiszniewski
Specjalista SEO & GEO · AI Engineer

Indeksacja sklepu internetowego to pytanie, które strony sprzedażowe Google ma w indeksie, a które pomija i dlaczego. Reguła na start: policz udział zaindeksowanych kategorii i produktów z mapy witryny. Jeśli jest niższy niż ok. 80%, sprawdź, który status dominuje w Search Console. „Wykryto - obecnie nie zindeksowano” oznacza, że Google nie dotarł do stron (linkowanie, wydajność, za dużo adresów), a „Zeskanowano - obecnie nie zindeksowano” - że dotarł i uznał je za mało wartościowe (duplikaty, puste karty). Produkt chwilowo niedostępny zostaw z kodem 200 i dostępnością OutOfStock. Wycofany produkt z ruchem lub linkami przekieruj kodem 301 na następcę albo kategorię, a bez nich zwróć 404 lub 410.

Dlaczego Google nie indeksuje produktów i kategorii: statusy z Search Console przełożone na przyczyny w sklepie, „Wykryto” czy „Zeskanowano - obecnie nie zindeksowano”, produkty niedostępne i wycofane, warianty, mapy witryn 30 polskich sklepów, skrypt URL Inspection API i pułapka z lastmod.

/// WPIS W SKRÓCIE

Indeksacja sklepu - dlaczego Google pomija produkty

W tym wpisie pokazuję, jak policzyć indeksację stron sprzedażowych, co oznacza w sklepie każdy status z raportu Indeksowanie stron, jak odróżnić „Wykryto” od „Zeskanowano”, co zrobić z produktem niedostępnym i wycofanym, jak obsłużyć warianty, wyniki mojego sprawdzenia map witryn w polskich sklepach, skrypt do mierzenia indeksacji przez API Search Console i pułapkę z datą lastmod.

Czy brak indeksacji to w ogóle problem - pierwsza decyzja

Nie każdy niezaindeksowany adres to problem. Google pisze wprost, że większość stron ma kilka niezaindeksowanych adresów, a status „Niezindeksowana” nie musi być niczym złym - w indeksie mają być strony kanoniczne, a nie każdy adres w sklepie. Problemem jest dopiero brak w indeksie stron, które mają sprzedawać.

Co nie jest w indeksieCzy to problemCo zrobić
Adresy filtrów, sortowania, wyszukiwarki wewnętrznejNie, jeśli to celoweNic, sprawdź tylko, czy nie ma ich w mapie witryny
Duplikaty wariantów z canonicalem do produktu głównegoNieNic - status „Strona alternatywna z prawidłowym tagiem strony kanonicznej” jest w porządku
Usunięte produkty bez linków i ruchu (404)NieUsuń je z mapy witryny i z linków wewnętrznych
Kategorie z ruchem i popytemTakDiagnoza według tabeli statusów niżej
Produkty, które się sprzedają albo mają popytTakDiagnoza według tabeli statusów niżej
Nowe produkty po tygodniach od dodaniaTak, gdy dotyczy większości nowościLinkowanie, mapa witryny z lastmod, wydajność serwera

Jak policzyć udział zaindeksowanych stron sprzedażowych: podziel mapę witryny na osobne pliki dla kategorii i dla produktów, prześlij je w Search Console i w raporcie Indeksowanie stron wybierz filtr dla każdego pliku. Dostajesz liczbę zaindeksowanych i niezaindeksowanych adresów osobno dla kategorii i produktów, a nie jedną liczbę dla całego serwisu z filtrami i stronami regulaminów.

Statusy w Search Console - co oznaczają w sklepie i jak je naprawić

Najważniejsza tabela wpisu. Każdy status z raportu Indeksowanie stron przełożyłem na typowe przyczyny w sklepie i poprawkę.

Status w Search ConsoleCo mówi GoogleTypowa przyczyna w sklepiePoprawka
Wykryto - obecnie nie zindeksowanoGoogle zna adres, ale jeszcze go nie pobrałProdukty linkowane tylko z dalekich stron paginacji, za dużo adresów filtrów zjada crawl, wolny serwerLinki do produktów z kategorii i stron głównych, porządek z filtrami, szybszy serwer
Zeskanowano - obecnie nie zindeksowanoGoogle pobrał stronę, ale jej nie zindeksowałKarta z opisem producenta, prawie pusta kategoria, wariant bez różnic, strona bez produktówUnikalna treść kart z popytem, scalenie wariantów, usunięcie pustych stron
Duplikat, użytkownik nie oznaczył strony kanonicznejDuplikat bez wskazanej wersji kanonicznejTen sam produkt pod kilkoma adresami (kategoria w ścieżce, parametry), brak canonicalaJeden adres produktu i canonical do niego
Duplikat, Google wybrał inną stronę kanoniczną niż użytkownikGoogle uznał inny adres za lepszy kanonicznyCanonical do strony, która różni się treścią, sprzeczne sygnały (linki, mapa witryny wskazują co innego)Ujednolicić canonical, linki wewnętrzne i mapę witryny
Strona alternatywna z prawidłowym tagiem strony kanonicznejStrona poprawnie wskazuje kanonicznąWarianty i parametry z canonicalemNic - to stan prawidłowy
Strona wykluczona za pomocą tagu „noindex”Google trafił na noindexWtyczka filtrów, motyw albo ustawienie platformy dało noindex kategoriom lub produktomSprawdzić, czy noindex jest celowy; usunąć go ze stron sprzedażowych
Nie znaleziono (404)Strona zwraca 404Usunięte produktyUsunąć z mapy witryny i linków; 301 tylko, gdy jest następca lub ruch
Błąd soft 404Strona wygląda na błąd, ale zwraca 200Pusta kategoria, produkt z komunikatem „brak w ofercie” bez treściTreść i zamienniki na stronie albo prawdziwy kod 404
Strona zawiera przekierowanieAdres przekierowuje gdzie indziejStare adresy w mapie witryny i linkach po migracjiPodmienić adresy w mapie i linkach na docelowe
Zablokowana przez plik robots.txtRobot nie może pobrać stronyReguła w robots.txt łapie też strony sprzedażowePoprawić regułę
Zaindeksowana, ale zablokowana przez plik robots.txtW indeksie mimo blokadyFiltry zablokowane po tym, jak trafiły do indeksuNajpierw noindex, blokada później - opisuję to we wpisie o [filtrach w sklepie](/pl/blog/filtry-w-sklepie-internetowym-seo)

Po poprawce kliknij „Sprawdź poprawkę” w raporcie. Google podaje, że weryfikacja trwa zwykle do ok. dwóch tygodni, a czasem dłużej.

„Wykryto” czy „Zeskanowano” - drzewo decyzyjne

Te dwa statusy brzmią podobnie, ale mają różne przyczyny i różne naprawy. Tak je diagnozuję:

  1. 1.Większość nieindeksowanych produktów ma status „Wykryto - obecnie nie zindeksowano”? Google nie zdążył ich pobrać. Sprawdź w raporcie Statystyki indeksowania, ile adresów dziennie pobiera Googlebot i jaki jest czas odpowiedzi serwera. Jeśli robot pobiera głównie adresy filtrów i parametrów, zacznij od nich. Jeśli czas odpowiedzi rośnie, problemem jest serwer.
  2. 2.Produkty są linkowane tylko z dalekich stron paginacji? Dodaj linki z kategorii, podkategorii, sekcji „nowości” i powiązanych produktów. Google zaleca linkowanie do wszystkich produktów, które mają być w indeksie.
  3. 3.Dominuje „Zeskanowano - obecnie nie zindeksowano”? Google pobrał strony i je pominął. Porównaj kilka takich kart z zaindeksowanymi: zwykle różnią się długością i unikalnością opisu, liczbą parametrów, zdjęć i opinii albo są wariantem innego produktu.
  4. 4.„Zeskanowano” dotyczy kategorii? Sprawdź, czy kategoria ma wystarczająco produktów i czy nie jest prawie identyczna z inną (np. dwie kategorie z tą samą listą). Puste i zdublowane kategorie scal albo usuń.
  5. 5.Strony mają status „Duplikat”? To nie problem jakości, tylko adresów: ten sam produkt pod kilkoma adresami. Ustal jeden adres i ujednolić canonical, linki i mapę witryny.

O tym, jak Google przydziela zasoby na pobieranie stron, piszę szerzej we wpisie o crawl budgecie.

Produkt niedostępny i wycofany - co zrobić z jego stroną

Najczęstsze pytanie z mojej praktyki. Odpowiedź zależy od tego, czy produkt wróci, czy ma następcę i czy jego strona ma ruch albo linki z zewnątrz.

SytuacjaCo zrobić ze stronąKod HTTPDane Product
Chwilowo niedostępny, wróciZostaw stronę, pokaż termin dostawy lub zapis na powiadomienie200availability: OutOfStock (albo BackOrder, PreOrder)
Wycofany, jest następcaPrzekieruj na następcę301Na stronie następcy normalne dane Product
Wycofany, bez następcy, strona ma ruch lub linkiZostaw stronę z informacją i zamiennikami albo przekieruj na kategorię200 albo 301availability: Discontinued, gdy zostawiasz stronę
Wycofany, bez ruchu i linkówUsuń stronę404 lub 410Brak
Produkt sezonowyZostaw stronę przez cały rok200OutOfStock poza sezonem

Dwie rzeczy, o których warto pamiętać. Po pierwsze, Google traktuje wszystkie kody 4xx (poza 429) tak samo, więc wybór między 404 a 410 nie ma praktycznego znaczenia - zaindeksowane adresy z kodem 4xx wypadają z indeksu. Po drugie, przekierowanie wycofanego produktu na stronę główną albo niepasującą kategorię często kończy się statusem soft 404. Przekierowuj tylko tam, gdzie jest naprawdę podobny produkt.

Warianty produktów - jeden adres czy wiele

Rozmiary i kolory potrafią wielokrotnie powiększyć liczbę adresów. Zasada: osobny, indeksowany adres dostaje tylko wariant, którego ludzie szukają osobno (np. kolor w modzie, pojemność w elektronice). Pozostałe warianty to parametr na jednej stronie produktu albo osobne adresy z canonicalem do produktu głównego.

WariantPrzykładZalecenie
Rozmiarbuty 38, 39, 40Jeden adres produktu, rozmiar jako wybór na stronie
Kolor z popytemczarne vs białe sneakersy jednego modeluOsobne adresy, każdy z canonicalem do siebie i własnym zdjęciem
Kolor bez popytu10 odcieni podkładuJeden adres albo osobne z canonicalem do głównego
Pojemność, wersjasmartfon 128 GB vs 256 GBOsobne adresy, jeśli różnią się ceną i ludzie ich szukają
Zestaw vs produkt pojedynczyekspres + kawaOsobne produkty

Jak opisać warianty w danych strukturalnych (ProductGroup, hasVariant), pokażę w osobnym wpisie z tej serii.

Mapa witryny dla dużego katalogu

Mapa witryny nie gwarantuje indeksacji, ale dla sklepu z tysiącami produktów to główne źródło informacji o nowych i zmienionych stronach. Zasady Google: jeden plik to maksymalnie 50 tys. adresów albo 50 MB, w mapie mają być adresy kanoniczne, które chcesz widzieć w wynikach, Google ignoruje priority i changefreq, a datę lastmod bierze pod uwagę tylko wtedy, gdy jest konsekwentnie zgodna z prawdą.

ElementDobrzeŹle
Podział plikówOsobne pliki: kategorie, produkty (po 10-50 tys.), poradnikiJeden plik z całym sklepem i stronami informacyjnymi
ZawartośćTylko adresy z kodem 200, bez noindex, z canonicalem do siebiePrzekierowania, 404, filtry, adresy z noindex
lastmodData ostatniej istotnej zmiany: cena, dostępność, opisBieżąca data przy każdym wygenerowaniu mapy
AktualizacjaAutomatycznie przy dodaniu lub zmianie produktuRęcznie raz na jakiś czas

Co pokazały mapy witryn polskich sklepów - moje sprawdzenie

Jak sprawdzałem: 22 października 2026 skrypt odczytał mapy witryn 30 polskich sklepów (z pliku robots.txt, a gdy go tam nie było - spod /sitemap.xml). Dla każdego sklepu wylosował 40 adresów z plików z produktami i sprawdził kod HTTP (bez podążania za przekierowaniami), meta robots, nagłówek X-Robots-Tag i canonical. Osobno sprawdziłem daty lastmod w maksymalnie trzech plikach mapy na sklep. Kody HTTP udało się sprawdzić w 20 sklepach (800 adresów), daty lastmod w 23. Pozostałe sklepy blokowały automatyczne pobieranie albo nie udało się odczytać ich map.

Co sprawdzałemWynikPrzykład
Adresy z przekierowaniem w mapie witryny43 z 800 (5,4%), w 6 z 20 sklepówneonet.pl: 21 z 40 wylosowanych produktów przekierowywało na nowy adres po zmianie nazwy produktu
Adresy z noindex w mapie witryny5 z 800, w 2 sklepachmediamarkt.pl: 3 karty produktów z noindex; melisa.pl: 2 strony grup
Adresy 404 w mapie witryny0 z 800Sklepy usuwają wycofane produkty z mapy
Canonical do innej strony0 z 800-
Lastmod z bieżącą datą dla (prawie) wszystkich adresów3 z 23 sklepówmorele.net: 3 000 z 3 000 adresów, neonet.pl: 604 z 604, drogerienatura.pl: 96%
Jedna stara data dla większości adresów1 z 23castorama.pl: 80% adresów z tą samą datą z kwietnia 2026
Brak lastmod (poniżej 10% adresów)5 z 23mediamarkt.pl, kontri.pl, ezebra.pl, melisa.pl, vox.pl
Zróżnicowane, wiarygodne daty lastmod14 z 23m.in. zooplus.pl, sportano.pl, gemini.pl, obi.pl

Wnioski:

  • Duże sklepy rzadko mają w mapie błędy 404, za to często przekierowania. Najczęstsza przyczyna to zmiana adresu produktu albo kategorii bez aktualizacji mapy. Pojedyncze przekierowanie nie szkodzi, ale gdy dotyczy połowy próbki, robot co dzień pobiera tysiące adresów, które nie trafią do indeksu, a w raporcie rośnie liczba stron ze statusem „Strona zawiera przekierowanie”.
  • Data lastmod to najsłabszy element map. W 9 z 23 sklepów jest bezużyteczna: albo jest wszędzie dzisiejsza, albo wszędzie taka sama, albo jej nie ma. Tylko 14 sklepów podaje daty, które mogą realnie pomóc Google znaleźć zmienione produkty.
  • Noindex w mapie witryny to sprzeczny sygnał - mapa mówi „indeksuj”, strona mówi „nie indeksuj”. W próbce zdarzało się to rzadko, ale w dużym katalogu nawet 1-2% to setki takich adresów.

Ograniczenia: to próbka 40 adresów na sklep i do trzech plików mapy na sklep przy lastmod, a canonical i noindex sprawdzałem w surowym HTML, bez wykonywania JavaScriptu.

Ile to pracy - dwie skale

Szacunek z moich wycen (październik 2026) dla diagnozy i napraw indeksacji, bez przebudowy treści kart produktów.

ZałożenieSklep A: 500 produktówSklep B: 20 000 produktów
Pliki mapy witryny1 plik albo 2 (kategorie, produkty)kategorie + 1 plik produktów, przy 50 tys. i więcej kilka plików
Diagnoza statusów i próbka adresów4-6 godz.15-25 godz., w tym skrypt i analiza logów
Poprawki techniczne (canonical, noindex, mapa, przekierowania)6-12 godz.30-60 godz.
Weryfikacja poprawki w Search Consolezwykle do 2 tygodnizwykle do 2 tygodni, przy dużych zmianach dłużej
Kiedy widać efekt w liczbie zaindeksowanych stron2-6 tygodni1-3 miesiące

Taką diagnozę i poprawki robię dla sklepów w ramach pozycjonowania sklepów internetowych - zaczynam zawsze od próbki adresów z mapy witryny, jak w skrypcie poniżej.

Skrypt: udział zaindeksowanych produktów przez API Search Console

Raport w panelu pokazuje statusy, ale nie dla wybranej próbki adresów. Skrypt pobiera adresy z mapy witryny, losuje próbkę i sprawdza każdy przez URL Inspection API. Limit API to 2 000 sprawdzeń dziennie na usługę, dlatego dla dużego sklepu sprawdzasz próbkę, a nie wszystko.

indeksacja_probka.py
# pip install google-api-python-client google-auth requestsimport collections, random, re, requestsfrom google.oauth2 import service_accountfrom googleapiclient.discovery import buildSITE = "sc-domain:twojsklep.pl"SITEMAPS = {"kategorie": "https://twojsklep.pl/sitemap-kategorie.xml",            "produkty": "https://twojsklep.pl/sitemap-produkty-1.xml"}SAMPLE = 200  # na typ strony; limit API: 2000 dziennie na usługęcreds = service_account.Credentials.from_service_account_file(    "sa.json", scopes=["https://www.googleapis.com/auth/webmasters.readonly"])gsc = build("searchconsole", "v1", credentials=creds)for kind, sm in SITEMAPS.items():    urls = re.findall(r"<loc>\s*([^<\s]+)\s*</loc>", requests.get(sm, timeout=30).text)    sample = random.Random(1).sample(urls, min(SAMPLE, len(urls)))    states = collections.Counter()    for u in sample:        res = gsc.urlInspection().index().inspect(body={"inspectionUrl": u, "siteUrl": SITE}).execute()        idx = res["inspectionResult"]["indexStatusResult"]        states[idx.get("coverageState", "brak danych")] += 1    ok = sum(v for k, v in states.items() if k.startswith("Submitted and indexed") or k.startswith("Indexed"))    print(f"\n{kind}: {len(urls)} adresów w mapie, próbka {len(sample)}, zaindeksowane {ok / len(sample):.0%}")    for state, n in states.most_common():        print(f"  {n:4d}  {state}")

Wynik to udział zaindeksowanych stron osobno dla kategorii i produktów oraz lista najczęstszych statusów w próbce, które od razu wskazują wiersz w tabeli statusów. Uruchamiaj go co miesiąc i zapisuj wyniki, żeby widzieć trend.

Pułapka produkcyjna: lastmod z dzisiejszą datą

Najczęstszy błąd w mapach witryn sklepów: generator wpisuje do lastmod bieżącą datę przy każdym wygenerowaniu mapy, dla wszystkich adresów naraz. Wygląda to, jakby cały katalog zmieniał się codziennie. W moim sprawdzeniu robiły tak 3 z 23 sklepów. Google używa lastmod tylko wtedy, gdy jest konsekwentnie i sprawdzalnie zgodny z prawdą, więc taka data przestaje cokolwiek znaczyć, a sklep traci najprostszy sposób, żeby wskazać robotowi nowe i zmienione produkty.

Poprawka: lastmod brany z bazy sklepu, aktualizowany przy zmianie, która ma znaczenie dla kupującego - cena, dostępność, opis, zdjęcia. Zmiana stopki, daty w copyright czy przeliczenie stanu magazynowego bez zmiany dostępności to nie są istotne zmiany.

Czego nie robić

  • Nie walcz o indeksację wszystkich adresów w sklepie - w indeksie mają być strony sprzedażowe, nie filtry i parametry.
  • Nie wysyłaj ręcznie do indeksowania setek adresów przez Sprawdzanie adresu URL - to nie rozwiązuje przyczyny.
  • Nie usuwaj z kodem 404 produktów chwilowo niedostępnych.
  • Nie przekierowuj wycofanych produktów na stronę główną.
  • Nie trzymaj w mapie witryny przekierowań, adresów 404 i stron z noindex.
  • Nie ustawiaj lastmod na dzisiejszą datę dla całego katalogu.
  • Nie klikaj „Sprawdź poprawkę” kilka razy - Google prosi, żeby poczekać na wynik.

FAQ

Kolejność wszystkich prac w sklepie opisuję w strategii SEO dla sklepu internetowego. Jeśli chcesz, żebym zdiagnozował indeksację Twojego sklepu i wdrożył poprawki, zobacz pozycjonowanie sklepów internetowych.

/// AUTHOR
Paweł Wiszniewski – AI & Web Engineer

Paweł Wiszniewski

SEO & GEO Specialist & AI Engineer

Specjalista SEO/GEO (10 lat) i AI engineer (3 lata). Buduję widoczność w wyszukiwarkach, systemy AI i automatyzacje, które redukują koszty i zwiększają efektywność operacyjną firm.

Signal received?

Przerwij
Ciszę

Zainicjuj protokół. Nawiąż połączenie. Zbudujmy coś głośnego.

> OCZEKIWANIE_NA_SYGNAŁ...