Indeksowalność: plik robots.txt i metatagi robots
Czym są plik robots.txt i meta tag robots?
robots.txt to plik tekstowy znajdujący się w katalogu głównym witryny (np. https://ornek.com/robots.txt) i informujący roboty wyszukiwarek, które katalogi lub strony mogą indeksować (crawl). Tag meta robots natomiast znajduje się w sekcji HTML <head> i decyduje o tym, czy strona, nawet jeśli została zindeksowana, zostanie uwzględniona w wynikach wyszukiwania (index). Oba elementy działają na różnych poziomach: jeden odpowiada na pytanie „czy możesz wejść przez te drzwi”, a drugi – „czy po wejściu możesz dodać ten pokój do katalogu”.
To rozróżnienie jest często mylone, ponieważ o obu mówi się w kontekście „zarządzania botami”, ale ich obszary działania są zupełnie różne, a niewłaściwe połączenie może prowadzić do niepożądanych skutków.
Plik robots.txt jest w rzeczywistości „żądaniem przestrzegania zasad”, a nie środkiem bezpieczeństwa: boty działające w dobrej wierze (takie jak Googlebot) przestrzegają tych zasad, jednak boty działające w złej wierze mogą całkowicie zignorować ten plik. Dlatego próba „ukrycia” poufnych lub wrażliwych treści za pomocą pliku robots.txt jest błędnym założeniem dotyczącym bezpieczeństwa.
Dlaczego to ma znaczenie?
Pomieszanie tych dwóch mechanizmów może poważnie zaszkodzić widoczności witryny. Jeśli strona zostanie zablokowana przed indeksowaniem za pomocą pliku robots.txt, wyszukiwarka może w ogóle nie dostrzec tagu noindex — ponieważ aby go zobaczyć, musi najpierw przeszukać stronę — a strona może przypadkowo pozostać w indeksie (zazwyczaj jako wpis bez tytułu i opisu).
Natomiast przy prawidłowym zastosowaniu te dwa narzędzia pozwalają precyzyjnie zarządzać tym, które treści pojawią się w wynikach wyszukiwania: plik robots.txt pozwala wykluczyć z budżetu indeksowania nieistotne obszary (np. panel administracyjny, strony wyników wyszukiwania), natomiast meta tag robots zapewnia usunięcie określonych stron (np. strony z podziękowaniami, zfiltrowane warianty list) z indeksu.
W przypadku dużych witryn budżet indeksowania jest zasobem ograniczonym: bot podczas każdej wizyty indeksuje tylko część witryny. Zablokowanie za pomocą pliku robots.txt obszarów o niewielkiej wartości (np. stron wyników wyszukiwania wewnętrznego, kombinacji filtrów) pozwala botowi poświęcić czas na naprawdę ważne strony.
Jak to naprawić?
- W pliku robots.txt blokuj tylko te katalogi, których indeksowania naprawdę nie chcesz (np. panele administracyjne, strony koszyka).
- Jeśli chcesz usunąć stronę z indeksu, nie rób tego za pomocą pliku robots.txt,
<meta name="robots" content="noindex">. - Pamiętaj, że aby atrybut noindex działał, strona musi być otwarta do indeksowania w pliku robots.txt.
- Stosuj zasadę jednego źródła prawdy: nie powtarzaj tego samego sygnału w sprzeczny sposób za pomocą wielu metod.
- Regularnie sprawdzaj plik robots.txt; w środowisku produkcyjnym mogą przypadkowo pozostać ograniczenia z testów lub środowiska stagingowego.
- Korzystając z raportu zasięgu (coverage) w Google Search Console, regularnie sprawdzaj, które strony zostały oznaczone jako „niezindeksowane” lub „wykluczone z powodu atrybutu noindex”.
Przykład
User-agent: *
Disallow: /admin/
Allow: /
<meta name="robots" content="noindex, follow">
Zły przykład: najpierw zablokowanie strony Disallow: /kampanya/ w pliku robots.txt, a następnie dodajesz ją do samej strony <meta name="robots" content="noindex"> — ponieważ bot nigdy nie zindeksuje tej strony, atrybut noindex nie zadziała, a strona nadal może pojawiać się w indeksie.
Często popełniane błędy
Disallow: /i przez pomyłkę zablokować indeksowanie całej witryny.- Zablokowanie strony zarówno w pliku robots.txt, jak i dodanie do niej atrybutu noindex (atrybut nie zostanie zauważony, a strona może pozostać w indeksie).
- Zapomnienie o przeniesieniu restrykcyjnego pliku robots.txt ze środowiska testowego/stagingowego na stronę produkcyjną.
- Przypadkowe dodanie ważnych stron do listy Disallow.
- Przeniesienie starego pliku robots.txt na nową witrynę bez sprawdzenia zasad po przeniesieniu lub przeprojektowaniu witryny; ograniczenie, które miało sens na starej witrynie, może obejmować również ważne strony w nowej strukturze.
- Brak ustalenia spójnej polityki indeksowania na stronach generujących parametry paginacji, filtrowania lub sortowania; gdy część takich stron pozostaje w indeksie, a część jest z niego wykluczona, powstaje sprzeczny sygnał w skali całej witryny.
- Sprzeczne stosowanie tagu kanonicznego (canonical) i atrybutu noindex na tej samej stronie; np. ustawienie strony jako noindex przy jednoczesnym wskazaniu innej strony jako kanonicznej powoduje wysyłanie sprzecznych sygnałów.
- Zapominanie, że dla całej witryny wystarczy jeden plik robots.txt, i próby wprowadzania oddzielnych ograniczeń dostępu w podkatalogach; plik robots.txt obowiązuje wyłącznie w katalogu głównym.
- W raporcie Seoraporu.co sprzeczne sygnały, takie jak „zablokowane przez plik robots.txt, ale z atrybutem noindex”, są oddzielnie zaznaczane; zamiast stosować oba atrybuty na tej samej stronie, należy wybrać tylko jeden z nich.