PrestaShop Robots.txt: Co blokować, co pozwalać

408 wyświetleń

Czym jest robots.txt i dlaczego ma znaczenie dla PrestaShop

Plik robots.txt znajduje się w katalogu głównym instalacji PrestaShop i stanowi pierwszy punkt komunikacji między Twoim sklepem a robotami wyszukiwarek. Informuje boty takie jak Googlebot, Bingbot i inne, które części Twojej witryny mogą indeksować, a które powinny pominąć. Chociaż nie jest to mechanizm bezpieczeństwa (nie blokuje dostępu, a jedynie doradza robotom), jest jednym z najważniejszych narzędzi do zarządzania budżetem crawlowania — liczbą stron, które wyszukiwarka przejrzy na Twojej stronie w określonym czasie.

Dla sklepów PrestaShop ma to ogromne znaczenie. Typowa instalacja PrestaShop może generować tysiące wariantów URL poprzez filtry, opcje sortowania, paginację, przełączanie walut i zapytania wyszukiwania. Jeśli pozostanie to niekontrolowane, boty wyszukiwarek zmarnują swój budżet crawlowania na te bezwartościowe strony zamiast odkrywać i indeksować Twoje rzeczywiste strony produktów i kategorii.

Jak PrestaShop generuje swój plik robots.txt

PrestaShop zawiera wbudowany generator robots.txt dostępny z poziomu Back Office. Przejdź do Parametry sklepu > Ruch i SEO i przewiń na dół, gdzie znajdziesz sekcję "Generowanie pliku robots". Kliknięcie przycisku generowania tworzy plik robots.txt w katalogu głównym Twojego sklepu.

Domyślnie wygenerowany plik zawiera zazwyczaj takie reguły -

User-agent: *
Disallow: /classes/
Disallow: /config/
Disallow: /download/
Disallow: /mails/
Disallow: /modules/
Disallow: /translations/
Disallow: /tools/
Disallow: /*?orderby=
Disallow: /*?orderway=
Disallow: /*?tag=
Disallow: /*?id_currency=
Disallow: /*?search_query=
Disallow: /*?back=
Disallow: /*?n=
Sitemap: https://twojsklep.com/sitemap.xml

Choć jest to rozsądny punkt wyjścia, jest daleki od kompletności. Wiele krytycznych wzorców URL marnujących budżet crawlowania nie jest uwzględnionych.

Co musisz blokować w PrestaShop

1. Strony koszyka, zamówienia i konta

Te strony są specyficzne dla użytkownika i nie mają żadnej wartości SEO. Powinny być zawsze blokowane -

Disallow: /*?controller=cart
Disallow: /*?controller=order
Disallow: /*?controller=authentication
Disallow: /*?controller=my-account
Disallow: /*?controller=identity
Disallow: /*?controller=addresses
Disallow: /*?controller=address
Disallow: /*?controller=history
Disallow: /*?controller=order-detail
Disallow: /*?controller=password
Disallow: /*?controller=discount
Disallow: /*?controller=order-return
Disallow: /*?controller=order-follow
Disallow: /*?controller=guest-tracking
Disallow: /cart
Disallow: /order
Disallow: /login
Disallow: /my-account
Disallow: /password-recovery

2. Nawigacja fasetowa i filtry warstwowe

Nawigacja fasetowa jest największym zabójcą budżetu crawlowania dla sklepów e-commerce. Gdy klient używa filtrów takich jak kolor, rozmiar czy zakres cenowy, PrestaShop generuje unikalne URL dla każdej kombinacji. Kategoria z 5 kolorami, 4 rozmiarami i 3 zakresami cenowymi może wygenerować setki kombinacji URL — z których żadna nie powinna znajdować się w indeksie Google.

# Blokuj parametry filtrów nawigacji warstwowej
Disallow: /*?q=
Disallow: /*&q=
Disallow: /*?selected_filters=
Disallow: /*&selected_filters=
Disallow: /module/ambjolisearch/jolisearch

# Blokuj kombinacje filtrów cenowych
Disallow: /*?price=
Disallow: /*&price=

# Blokuj filtry atrybutów i cech
Disallow: /*?id_attribute_group=
Disallow: /*&id_attribute_group=
Disallow: /*?id_feature=
Disallow: /*&id_feature=

3. Wewnętrzne wyniki wyszukiwania

Strony wewnętrznych wyników wyszukiwania to cienka treść i nigdy nie powinny być indeksowane. Często tworzą niemal zduplikowane strony i są znanym źródłem problemów z jakością -

Disallow: /*?controller=search
Disallow: /*?s=
Disallow: /*&s=
Disallow: /search
Disallow: /*?search_query=
Disallow: /*&search_query=

4. Parametry paginacji

Podczas gdy strony kategorii same w sobie powinny być dostępne do crawlowania, parametry paginacji generujące warianty sortowania/stron powinny być kontrolowane -

Disallow: /*?page=
Disallow: /*&page=
Disallow: /*?p=
Disallow: /*&p=

Ważna uwaga - Bądź ostrożny z paginacją. Jeśli zablokujesz /*?page= całkowicie, możesz uniemożliwić robotom dotarcie do produktów, które pojawiają się tylko na głębszych stronach. Lepszym podejściem jest implementacja tagów rel="canonical" kierujących paginowane strony na pierwszą stronę lub użycie sygnałów paginacji rel="next" i rel="prev".

5. Strony porównania i listy życzeń

Disallow: /*?controller=comparison
Disallow: /comparison
Disallow: /*?controller=wishlist
Disallow: /module/blockwishlist/

6. Katalogi administracyjne i systemowe

Disallow: /admin*/
Disallow: /app/
Disallow: /bin/
Disallow: /cache/
Disallow: /classes/
Disallow: /config/
Disallow: /controllers/
Disallow: /docs/
Disallow: /download/
Disallow: /img/tmp/
Disallow: /localization/
Disallow: /mails/
Disallow: /override/
Disallow: /pdf/
Disallow: /src/
Disallow: /tools/
Disallow: /translations/
Disallow: /upload/
Disallow: /var/
Disallow: /vendor/
Disallow: /webservice/

7. Parametry śledzenia URL

Parametry kampanii marketingowych tworzą zduplikowaną treść, gdy boty crawlują otagowane URL -

Disallow: /*?utm_source=
Disallow: /*?utm_medium=
Disallow: /*?utm_campaign=
Disallow: /*&utm_source=
Disallow: /*&utm_medium=
Disallow: /*&utm_campaign=
Disallow: /*?fbclid=
Disallow: /*?gclid=
Disallow: /*?ref=

Co musisz zezwalać w PrestaShop

1. Strony produktów i kategorii

To rdzeń Twojego sklepu i muszą zawsze pozostać dostępne do crawlowania. Nie blokuj swoich głównych katalogów z treścią.

2. Pliki CSS, JavaScript i obrazy

Google musi renderować Twoje strony, aby ocenić jakość treści. Blokowanie plików CSS lub JS uniemożliwia renderowanie i może zaszkodzić rankingom -

Allow: /themes/*/assets/
Allow: /themes/*/css/
Allow: /themes/*/js/
Allow: /js/
Allow: /img/
Allow: /modules/*/views/css/
Allow: /modules/*/views/js/

3. Strony CMS

Twoje strony prawne, strony o nas i strony content marketingowe powinny być w pełni dostępne do crawlowania. Upewnij się, że nie zostały przypadkowo przechwycone przez zbyt szerokie reguły Disallow.

4. Strony producentów i dostawców (jeśli używane)

Jeśli utrzymujesz bogate strony producentów lub dostawców z unikalną treścią, pozostaw je dostępne do crawlowania. Jeśli są to cienkie, automatycznie generowane strony, rozważ ich zablokowanie.

Obsługa robotów AI

Rozwój usług AI wprowadził nową kategorię robotów, które zbierają treści do celów treningowych. Jeśli chcesz zapobiec wykorzystywaniu Twoich opisów produktów, zdjęć i innych treści przez modele AI, możesz dodać specyficzne reguły -

# Blokuj roboty treningowe AI
User-agent: GPTBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: anthropic-ai
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: FacebookBot
Disallow: /

User-agent: Bytespider
Disallow: /

Zauważ, że zablokowanie Google-Extended uniemożliwia Google wykorzystanie Twoich treści do treningu AI (Gemini), jednocześnie pozwalając zwykłemu Googlebotowi normalnie crawlować i indeksować Twoje strony.

Kompletny zalecany plik robots.txt dla PrestaShop

Oto kompleksowy plik robots.txt, który możesz dostosować do swojego sklepu PrestaShop -

# Główne roboty wyszukiwarek
User-agent: *

# Zezwalaj na zasoby statyczne
Allow: /themes/*/assets/
Allow: /themes/*/css/
Allow: /themes/*/js/
Allow: /js/
Allow: /img/
Allow: /modules/*/views/css/
Allow: /modules/*/views/js/

# Blokuj katalogi systemowe
Disallow: /app/
Disallow: /bin/
Disallow: /cache/
Disallow: /classes/
Disallow: /config/
Disallow: /controllers/
Disallow: /docs/
Disallow: /download/
Disallow: /img/tmp/
Disallow: /localization/
Disallow: /mails/
Disallow: /override/
Disallow: /pdf/
Disallow: /src/
Disallow: /tools/
Disallow: /translations/
Disallow: /upload/
Disallow: /var/
Disallow: /vendor/
Disallow: /webservice/

# Blokuj koszyk, zamówienie, konto
Disallow: /cart
Disallow: /order
Disallow: /login
Disallow: /my-account
Disallow: /password-recovery
Disallow: /*?controller=cart
Disallow: /*?controller=order
Disallow: /*?controller=authentication
Disallow: /*?controller=my-account

# Blokuj filtry i sortowanie
Disallow: /*?orderby=
Disallow: /*?orderway=
Disallow: /*?n=
Disallow: /*?q=
Disallow: /*?selected_filters=
Disallow: /*?id_currency=
Disallow: /*?tag=
Disallow: /*?back=

# Blokuj wyszukiwanie
Disallow: /*?controller=search
Disallow: /*?search_query=
Disallow: /*?s=
Disallow: /search

# Blokuj parametry śledzenia
Disallow: /*?utm_source=
Disallow: /*?utm_medium=
Disallow: /*?utm_campaign=
Disallow: /*?fbclid=
Disallow: /*?gclid=

# Blokuj porównanie i listę życzeń
Disallow: /*?controller=comparison
Disallow: /comparison

# Sitemap
Sitemap: https://twojsklep.com/1_index_sitemap.xml

# Blokuj roboty treningowe AI
User-agent: GPTBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: Google-Extended
Disallow: /

Częste błędy, których należy unikać

Całkowite blokowanie katalogu modules

Domyślny plik robots.txt PrestaShop blokuje /modules/. Chociaż nie chcesz, aby pliki PHP modułów były crawlowane, wiele modułów serwuje krytyczne pliki CSS i JavaScript z tego katalogu. Całkowite zablokowanie może uniemożliwić Google prawidłowe renderowanie Twoich stron. Zamiast tego zablokuj /modules/, ale wyraźnie zezwól na podkatalogi CSS i JS, jak pokazano powyżej.

Używanie robots.txt zamiast noindex

Krytyczne nieporozumienie - robots.txt informuje boty, aby nie crawlowały URL, ale nie zapobiega indeksowaniu. Jeśli inna strona linkuje do strony, którą zablokowałeś w robots.txt, Google może ją nadal zaindeksować (wyświetlając "Opis tego wyniku nie jest dostępny ze względu na plik robots.txt tej witryny"). Dla stron, które chcesz całkowicie usunąć z wyników wyszukiwania, użyj zamiast tego meta tagu noindex lub nagłówka HTTP X-Robots-Tag.

Zapominanie o referencji do sitemapy

Zawsze umieszczaj URL swojej sitemapy na końcu pliku robots.txt. Pomaga to robotom natychmiast znaleźć Twoją sitemapę. Jeśli używasz modułu generującego wiele sitemapów, odwołaj się do pliku indeksu sitemapy.

Używanie zbyt szerokich reguł

Reguła taka jak Disallow: /*? zablokowałaby każdy URL z dowolnym parametrem zapytania, co byłoby katastrofalne. Bądź precyzyjny ze swoimi regułami i testuj je za pomocą testera robots.txt w Google Search Console przed wdrożeniem.

Testowanie konfiguracji robots.txt

  1. Google Search Console - Użyj narzędzia do testowania robots.txt (znajdującego się w narzędziach Legacy), aby sprawdzić konkretne URL względem Twoich reguł
  2. Testowanie ręczne - Odwiedź twojsklep.com/robots.txt bezpośrednio w przeglądarce, aby sprawdzić, czy plik jest dostępny i poprawnie sformatowany
  3. Raport pokrycia - Po wdrożeniu zmian monitoruj raport pokrycia w Google Search Console pod kątem nieoczekiwanych wzrostów stron "Wykluczone"
  4. Analiza plików logów - Sprawdź logi serwera, aby potwierdzić, że boty rzeczywiście respektują Twoje reguły i nie marnują budżetu crawlowania na zablokowane URL

Kwestie multisklepu

Jeśli prowadzisz konfigurację multisklepu PrestaShop, każdy sklep (domena) potrzebuje własnego pliku robots.txt w swoim katalogu głównym. Generator PrestaShop tworzy reguły dla wszystkich sklepów w jednym pliku, ale jeśli Twoje sklepy znajdują się na różnych domenach, musisz je odpowiednio rozdzielić. Plik robots.txt każdego sklepu powinien odwoływać się do własnej sitemapy i mieć reguły odpowiednie dla jego struktury URL.

Kiedy regenerować robots.txt

Powinieneś regenerować lub aktualizować swój plik robots.txt zawsze, gdy -

  • Dodajesz nowe moduły tworzące publicznie dostępne URL (moduły wyszukiwania, moduły filtrów)
  • Zmieniasz strukturę URL lub włączasz/wyłączasz przyjazne URL
  • Zmieniasz szablon (różne szablony mogą serwować zasoby z różnych ścieżek)
  • Dodajesz lub usuwasz języki (co zmienia prefiksy URL)
  • Włączasz lub wyłączasz funkcję multisklepu
  • Zauważasz nietypowe wzorce crawlowania w logach serwera lub Google Search Console

Pamiętaj - zawsze rób kopię zapasową działającego pliku robots.txt przed regeneracją. Generator PrestaShop całkowicie nadpisuje plik, a wszystkie ręcznie dodane niestandardowe reguły zostaną utracone, chyba że dodasz je ponownie po wygenerowaniu.

Czy ta odpowiedź była pomocna?

Masz jeszcze pytania?

Can't find what you're looking for? Send us your question and we'll get back to you quickly.

Loading...
Back to top