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.

Update dla ChatGPT:

<IfModule mod_rewrite.c>
RewriteEngine On

# Celujemy w URL z parametrem q=
RewriteCond %{QUERY_STRING} (?:^|[;&])q= [NC]

# Boty do zablokowania
RewriteCond %{HTTP_USER_AGENT} (GPTBot|AhrefsBot|MJ12bot|SemrushBot|DotBot|DataForSeoBot|CCBot|Python-requests|curl|scrapy|crawler) [NC]

# Zwracamy 404 (możesz zmienić na 403)
RewriteRule ^ - [R=404,L]
</IfModule>
Zamów wycenę
Polityka prywatności | Regulamin
Pro-link 2005-2020

Ta strona korzysta z ciasteczek

Niezbędne ciasteczka umożliwiają prawidłowe funkcjonowanie strony internetowej, zapewniając podstawowe funkcje, takie jak nawigacja po stronie i dostęp do jej zabezpieczonych obszarów. Bez tych ciasteczek strona nie może działać prawidłowo.

Niezbędne

Niezbędne ciasteczka umożliwiają prawidłowe funkcjonowanie strony internetowej, zapewniając podstawowe funkcje, takie jak nawigacja po stronie i dostęp do jej zabezpieczonych obszarów. Bez tych ciasteczek strona nie może działać prawidłowo.

Zgoda na Analitykę

Wyrażam zgodę na wykorzystywanie plików cookie Google Analytics w celu prowadzenia anonimowych statystyk, analizy sposobu korzystania ze strony oraz jej ulepszania, przy czym część danych może być także używana przez Google do personalizacji i pomiaru skuteczności reklam.

Zgoda na Reklamy spersonalizowane

Wyrażam zgodę na wykorzystywanie przez Google plików cookie i podobnych technologii w celu wyświetlania reklam spersonalizowanych, pomiaru ich skuteczności oraz zapewnienia bezpieczeństwa strony poprzez odróżnianie użytkowników od botów.

Informacje

Ciasteczka (cookies) to małe pliki tekstowe, które mogą być wykorzystywane przez strony internetowe, by usprawnić doświadczenie użytkownika. Zgodnie z przepisami prawa, możemy przechowywać na Twoim urządzeniu ciasteczka, które są ściśle niezbędne do funkcjonowania tej strony. W przypadku wszystkich innych typów ciasteczek potrzebujemy Twojej zgody. Oznacza to, że ciasteczka klasyfikowane jako niezbędne są przetwarzane na podstawie art. 6 ust. 1 lit. f RODO. Wszystkie pozostałe ciasteczka, czyli te z kategorii preferencji i marketingu, są przetwarzane na podstawie art. 6 ust. 1 lit. a RODO. Nasza strona korzysta z różnych rodzajów ciasteczek. Niektóre ciasteczka są umieszczane przez usługi stron trzecich, które pojawiają się na naszych stronach. W każdej chwili możesz zmienić lub wycofać swoją zgodę z Oświadczenia o ciasteczkach na naszej stronie internetowej. Dowiedz się więcej o tym, kim jesteśmy, jak możesz się z nami skontaktować i jak przetwarzamy dane osobowe, zapoznając się z naszą Polityką Prywatności.