Duża liczba niezaindeksowanych stron w PrestaShop

Jeśli korzystasz z PrestaShop i masz aktywną nawigację fasetową (filtry produktów), możesz zauważyć, że Googlebot intensywnie indeksuje adresy URL z parametrem ?q=, mimo że strony te mają już znacznik noindex. To może prowadzić do kilku poważnych problemów:

Błędy w indeksacji zawieszają sklep PrestaShop

  • Nadmierna liczba zapytań od Googlebota (u mnie: 4,1 mln żądań indeksowania w 90 dni),
  • Wysokie obciążenie serwera,
  • Spowolnienie działania sklepu.
duża liczba nie zindeksowanych stron w Goolge Search Console

Przykładowe żądanie od Googlebota:

66.249.76.41 - - [05/Jun/2025:11:50:01 +0200] "GET /en/1032-gastrer-gn?q=Kapazit%C3%A4t+%28in+Litern%29-2%2C25-3%2C6-5%2C9-11%2C5-14-18-3 HTTP/1.1" 200 3743 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.7103.113 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Rozwiązanie: zablokuj Googlebota przed dostępem do adresów z ?q=

1. Dodaj regułę do pliku robots.txt

User-agent:*
Disallow: /*?q=
Disallow: /*&q=

To poinformuje Googlebota, żeby nie odwiedzał tego typu adresów.

2. Zgłoś nowy robots.txt w Google Search Console

Po wprowadzeniu zmian, wejdź do Google Search Console i poproś o ponowne zindeksowanie pliku robots.txt. Z mojego doświadczenia wynika, że Google reaguje na zmianę w ciągu kilkunastu godzin.

3. (Opcjonalnie, dla zaawansowanych) Blokowanie Googlebota po stronie serwera — .htaccess lub inna konfiguracja

Jeśli ruch od Googlebota na adresy z parametrem ?q= jest bardzo intensywny i obciąża serwer, można zastosować dodatkowe ograniczenie bezpośrednio na poziomie serwera — np. przez plik .htaccess (Apache) lub odpowiednią regułę w konfiguracji Nginx.

Uwaga: Ta metoda jest dla zaawansowanych użytkowników i niesie ze sobą ryzyko.
W zależności od rodzaju serwera oraz konkretnej konfiguracji, niewłaściwie zastosowana reguła może:

  • zablokować dostęp Googlebota do całej strony (a nie tylko do niechcianych adresów z ?q=),
  • spowodować błędy 403 lub 500 dla zwykłych użytkowników,
  • całkowicie unieruchomić stronę.

Dlatego kluczowe jest, aby po wdrożeniu tej metody:

  • monitorować logi serwera,
  • upewnić się, że Googlebot otrzymuje kod odpowiedzi 200 OK dla wszystkich właściwych stron,
  • oraz 403 Forbidden tylko dla adresów zawierających ?q=.

Przykład reguły .htaccess (dla Apache) może wyglądać tak:

<IfModule mod_rewrite.c>
RewriteEngine On

# Warunek 1: Sprawdź, czy w ciągu zapytania (query string) występuje "?q="
RewriteCond %{QUERY_STRING} (^|&)q= [NC]

# Warunek 2: Sprawdź, czy User-Agent to Googlebot
RewriteCond %{HTTP_USER_AGENT} Googlebot [NC]

# Jeśli oba warunki są spełnione, zablokuj dostęp (F - Forbidden, L - Last rule)
RewriteRule ^.* - [F,L]
</IfModule>
66.249.76.41 - - [06/Jun/2025:12:20:31 +0200] "GET /es/1022-gastrosr-gn?q=Kapazit%C3%A4t+%28in+Litern%29-2%2C25-3%2C6-5%2C9-11%2C5-14-18-3 HTTP/1.1" 403 3743 "-" "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.7103.113 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Powyższy log pokazuje natychmiastową blokadę Googlebota.
Bot otrzymuje odpowiedź 403 Forbidden, co oznacza, że:

  • serwer nie przetwarza żądania,
  • skrypt PHP nie jest uruchamiany,
  • baza danych nie jest obciążana.

To skuteczna i natychmiastowa metoda odciążenia serwera przy bardzo dużym ruchu botów na adresy z parametrem ?q=.

PrestaShop wykorzystuje nawigację fasetową (filtry), która generuje adresy URL z parametrem ?q=. Nawet jeśli strony mają znacznik noindex, Googlebot może próbować je odwiedzać, jeśli nie są zablokowane w robots.txt lub na poziomie serwera.

Najpierw dodaj w robots.txt: Disallow: /*?q=. Dodatkowo, możesz zablokować żądania po stronie serwera (np. w .htaccess), dzięki czemu Googlebot od razu otrzyma kod 403 i serwer nie przetworzy zapytania.

To skuteczna metoda, ale wymaga ostrożności. Zła konfiguracja może zablokować dostęp Googlebota do całej strony. Po wdrożeniu warto monitorować logi i sprawdzić, czy zwykłe strony mają status 200, a adresy z ?q= otrzymują 403.

Użyj narzędzi Google Search Console – Test pliku robots.txt lub funkcji Sprawdź URL. Dodatkowo analizuj logi serwera, by upewnić się, że odpowiednie strony mają kod 200, a te z ?q= są zablokowane (403).

Zbyt intensywne indeksowanie filtrów obciąża serwer, spowalnia sklep i wyczerpuje budżet indeksowania w Google. Strony z parametrem ?q= zwykle nie mają wartości SEO, ponieważ prezentują zduplikowaną treść.
Co ważne — PrestaShop domyślnie dodaje do tych adresów tag <link rel="canonical">, który wskazuje na główny adres URL bez parametru ?q=.
Mimo to Googlebot nadal może próbować je odwiedzać, dlatego warto je świadomie zablokować.

Potrzebujesz pomocy z PrestaShop?

Zajmujemy się kompleksową administracją, optymalizacją oraz opieką techniczną nad sklepami PrestaShop.
Pomagamy m.in. w:

  • rozwiązywaniu problemów z indeksowaniem i SEO,
  • konfiguracji,
  • poprawie wydajności sklepu i serwera,
  • aktualizacjach, backupach i bezpieczeństwie.

Jeśli chcesz mieć sprawny, szybki i bezpieczny sklep — skontaktuj się z nami.

Zamów wycenę
Polityka prywatności | Regulamin
Pro-link 2005-2020