Kompendium wiedzy o robots.txt: blokowanie botów, wskazanie map stron, SEO
User-agent: *
# odmówienie dostępu do folderu
Disallow: /folder1
# przyzwolenie na dostęp do podstrony
Allow: /folder1/waznastrona
# wskazanie mapy strony
Sitemap: http://domena.pl/pelnyadresmapy.xml
1. Czym jest plik robots.txt?
Plik robots.txt zarządza dostępem robotów indeksujących do strony. Wykorzystuje protokół Robots Exclusion Protocol, powstały już w 1994 roku, który jest standardowo interpretowany przez większość botów. Podstawowy cel zastosowania robots.txt to ograniczenie zużycia zasobów po stronie serwera oraz po stronie robota, dzięki wskazaniu sekcji, których odpytywanie nie jest wartościowe – przykładowo sekcji z wynikami wewnętrznej wyszukiwarki.
2. Gdzie znajdę robots.txt?
Plik powinien znajdować się w głównym katalogu domeny i być dostępny pod adresem domena.pl/robots.txt. Ten adres jest odpytywany przez robota indeksującego Google jeszcze przed wejściem na jakiekolwiek adresy w obrębie domeny.
Przykład dostępu do https://www.google.pl/robots.txt – w przeglądarce widoczna jest jego zawartość:
User-agent: *
Disallow: /search
Allow: /search/about
Allow: /search/static
Allow: /search/howsearchworks
Disallow: /sdch
Disallow: /groups
Disallow: /index.html?
(...)
Sitemap: http://www.gstatic.com/s2/sitemaps/profiles-sitemap.xml
Sitemap: https://www.google.com/sitemap.xml
3. Zawartość pliku robots.txt
User-agent: * – linia, która definiuje roboty indeksujące, których będą dotyczyć dalsze polecenia. Obowiązuje do kolejnego polecenia User-agent. Gwiazdka * to symbol wszystkich botów.
Disallow: /search – linia odmawiająca dostępu do określonych adresów. Podany ciąg znaków jest traktowany jest przedrostek, stąd podanie /search blokuje dostęp nie tylko do katalogu, ale również do podkatalogów, a także podstron w tym katalogu. Użycie Disallow: / blokuje dostęp do całej witryny. Użycie pustego Disallow: nie blokuje dostępu do żadnego adresu w witrynie.
Allow: /search/about – linia pozwalająca na dostęp do określonych adresów. Zazwyczaj jest używana w połączeniu z Disallow, gdzie po komendzie wykluczenia, możliwe jest doprecyzowanie specyficznych miejsc, które są dostępne. W podanym przykładzie, wykluczony został katalog /search, jednak pracownicy firmy Google zezwolili na dostęp do podkatalogu /search/about.
Noindex: – rzadko używana komenda, nieobecna w standardowym protokole, ale uznawana przez roboty indeksujące Google. Nakazuje wyłączenie z indeksu wskazanego adresu. Może być stosowana zamiennie z Disallow.
Sitemap: – wskazuje lokalizację mapy strony za pomocą pełnego adresu.
4. Jak stworzyć plik robots.txt?
Wystarczy utworzenie pliku tekstowego w Notatniku z odpowiednimi regułami, który zostanie umieszczony na serwerze w miejscu dostępnym z domena.pl/robots.txt (zazwyczaj w katalogu „public_html”). Należy odnotować, że niektóre systemy zarządzania treścią są w stanie nadpisywać plik robots.txt w trakcie aktualizacji lub po instalacji określonych wtyczek.
5. Zastosowanie pliku robots.txt w SEO
Najczęstsze zastosowanie Robots Exclusion Protocol dotyczy licznych adresów, które nie są istotne dla robotów indeksujących – sortowania i filtrowania list (na przykład podstrona kategorii sortowanej po najwyższej cenie), a także wewnętrznych rozwiązań (na przykład ścieżek do pluginów, logowania, rejestracji). Adresy podawane w komendzie Disallow stosują się do poniższych wytycznych:
- brak nazwy domeny („/” zamiast „domena.pl/”),
- początkowy ukośnik nie ma znaczenia jeśli jest podawany adres inny niż strona główna („/podstrona” = „podstrona”), w przypadku strony głównej konieczny jest ukośnik („/” nie równa się pustemu ” „),
- podany ciąg znaków zawsze musi się znajdować w adresie, którego dotyczy („/podstrona” będzie dotyczyć domena.pl/podstrona, ale nie będzie dotyczyć domena.pl/innapodstrona),
- wewnątrz adresu możliwe jest użycie symbolu dowolnego ciągu znaków – gwiazdki „*” („/kategoria-*/produkt” będzie dotyczyć zarówno domena.pl/kategoria-1/produkt jak i domena.pl/kategoria-600/produkt),
- komenda dotyczy wszystkich adresów z dowolnymi dopisanymi znakami („/podstrona” będzie dotyczyć również domena.pl/podstrona/druga, domena.pl/podstrona12345 i pozostałych),
- symbol dowolnego ciągu znaków nie ma znaczenia w ostatniej pozycji (zarówno z „*” jak i bez „*” na końcu, komenda dotyczy wszystkich możliwych końcówek).
Przykładowo, jeśli kategorie mogą być filtrowane za pomocą parametru price, można go wykluczyć za pomocą komendy:
Disallow: /*price
Dzięki temu roboty indeksujące nie będą odpytywać adresów takich jak /kategoria?price=highest, /innakategoria?price=lowest, /wyszukiwarka?price=lowest itd.
Z tak zdefiniowanych wykluczeń można wyróżnić wyjątki:
Disallow: /*price
Allow: /*price=lowest
Powyższe komendy wykluczą adresy takie jak /kategoria?price=highest, ale umożliwią robotom dostęp do /kategoria?price=lowest.
Różne wykluczenia można zastosować w stosunku do różnych robotow. Pozwala to na zarządzanie ruchem w osobnej wersji mobilnej:
User-agent: *
Disallow: /m/
User-agent: Googlebot-Mobile
Allow: /m/
6. Robots.txt, a meta robots
Zachowanie robotów indeksujących Google może być regulowane zarówno za pomocą komend w robots.txt jak i w kodzie strony za pośrednictwem znaczników meta robots. Zawsze jako pierwszy jest sprawdzany plik robots.txt – instrukcje w nim decydują o tym, czy dany adres będzie odwiedzony. Jeśli dostęp do adresu jest uniemożliwiony za pośrednictwem robots.txt, kod strony oraz ewentualne znaczniki meta robots nie zostaną odczytane.
Zdarza się, że wyszukiwarka już posiada w indeksie adres, który został w późniejszym czasie zablokowany w pliku robots.txt. Jest to widoczne w wynikach wyszukiwania jako:
Użycie Disallow po zaindeksowaniu adresu, nie usuwa go z indeksu, a jedynie zmienia wygląd na powyższy. By usunąć adres już obecny w indeksie, należy zmienić komendę Disallow na Noindex.
Interesujący przykład wykorzystania tego mechanizmu jest widoczny po wpisaniu „world’s greatest seo” w wyszukiwarkę:
Wiele lat temu Darren Slatten podlinkował z zewnątrz widoczny wyżej adres obcej domeny MattCutts.com (domena należy do byłego kierownika działu zwalczającego spam w wyszukiwarce). Z powodu dużej ilości linków (z anchorami, które dały tytuł powyższego wyniku), wyszukiwarka Google dodała adres do indeksu. Mimo zaindeksowania, roboty nie są w stanie do odczytać adresu, ponieważ jest on zablokowany w pliku robots.txt domeny MattCutts.com:
User-agent: *
Disallow: /files
Stąd mimo nieistnienia podstrony, pozostaje w wynikach wyszukiwania już od ponad 9 lat.
7. Jak wykluczyć wszystkie boty poza GoogleBotem?
W internecie spotykane są długie listy botów należących do różnorodnych narzędzi (Ahrefs, Majestic itd.), jednak wstawianie setek linii wykluczających boty nie jest potrzebne. Jeśli administrator serwera chce ograniczyć zużycie zasobów na rzecz wszystkich botów poza GoogleBotem, wystarczy wstawienie:
User-agent: Google
Disallow:
User-agent: *
Disallow: /
8. Ograniczenia
Niektóre roboty nie stosują się do poleceń zawartych w omawianym pliku, stąd blokowanie dostępu warto wesprzeć dodatkowymi metodami – na przykład przekierowaniami lub hasłami chroniącymi dostęp do katalogu.
9. Kontrola poprawności pliku
Po dodaniu strony do Google Search Console, można skontrolować poprawność przygotowanego pliku robots.txt za pomocą testera dostępnego pod adresem: https://www.google.com/webmasters/tools/robots-testing-tool.