Przejdź do treści

Nagłówek i treść - HTML

Plik robots.txt

Jak zablokować indeksowanie zdjęć lub plików z określonego katalogu?

robots.txt

Znacznik <meta name="robots"> jest przydatny w celu określania dostępu przez roboty do pojedynczych dokumentów HTML. Okazuje się jednak mało praktyczny, jeśli chcielibyśmy zablokować dostęp robotom-indekserom np. do wszystkich dokumentów z określonego katalogu serwisu albo wręcz hurtowo do wszystkich plików witryny, tak aby nie pojawiały się w wynikach wyszukiwania np. Google. Znacznik ten okazuje się wręcz zupełnie nieprzydatny, jeśli zależy nam na zablokowaniu indeksowania zdjęć z naszego serwisu (większość wyszukiwarek posiada osobne formularze do wyszukiwania plików graficznych).

Istnieje jednak możliwość określenia globalnego dostępu do wszystkich plików serwisu - nosi on nazwę: Standard Wykluczania Robotów (ang. A Standard for Robot Exclusion - Robots Exclusion Protocol). W głównym katalogu konta WWW - czyli tam, gdzie znajduje się dokument strony głównej serwisu (index.html) - należy umieścić specjalny plik pod nazwą robots.txt. W pliku tym umieszcza się tzw. rekordy - każdy zawiera grupę linijek w postaci:

Pole: wartość

Wielkość liter w nazwach pól nie ma znaczenia, natomiast zwykle ma znaczenie w wartościach pola. Oprócz typowych linijek możliwe jest również umieszczanie komentarzy, czyli tekstu, który nie zostanie wzięty pod uwagę przez roboty. Komentarz rozpoczyna się znakiem "#", a kończy na końcu linijki.

User-Agent

W jednym pliku robots.txt może się znajdować dowolna liczba rekordów rozdzielonych pustymi linijkami - każdy musi się rozpoczynać linią User-Agent, wskazującą do których robotów odnoszą się dalsze linijki danego rekordu:

# Ten rekord odnosi się tylko do robota "Googlebot":
User-agent: Googlebot

Pojedynczy rekord może zawierać więcej niż jedną linię User-Agent:

# Ten rekord odnosi się tylko do robotów "Googlebot" i "MSNBot":
User-agent: Googlebot
User-agent: MSNBot

Specyfikacja HTML 4.01 wyraźnie zabrania umieszczania kilku linii User-Agent jednej pod drugą, jednak standard (nieopracowany przez W3C) mówi na ten temat zupełnie co innego. Googlebot interpretuje wielokrotne linijki tego typu.

Wielkość liter w nazwach robotów nie ma znaczenia. Lista istniejących robotów wyszukiwarek sieciowych znajduje się na stronie: The Web Robots Database.

Zamiast nazwy robota można wpisać również znak gwiazdki ("*"), co wskazuje każdego istniejącego robota. Kiedy robot danej wyszukiwarki odwiedza witrynę, najpierw sprawdza czy istnieje plik robots.txt. Jeśli tak, szuka w nim rekordu (grupy linii), który pasuje do jego nazwy. Jeśli taki znajdzie, odczytuje linie z wybranego rekordu i pomija wszystkie inne. Jeżeli nie znajdzie, szuka rekordu z linią User-Agent: *. Jeżeli takiego nie znajdzie, indeksuje bez ograniczeń wszystkie dokumenty serwisu. Zwracam uwagę, że jeśli robot znajdzie przeznaczony specjalnie dla niego rekord, to w ogóle nie zajmuje się rekordem User-Agent: *.

Disallow

W rekordach poniżej User-Agent musi się znajdować jedna lub więcej linii Disallow, wskazujących ścieżki do plików, do których robot nie ma dostępu. Każda ścieżka musi rozpoczynać się od znaku ukośnika ("/") i powstaje poprzez wycięcie pierwszego członu adresu URL. Na przykład aby zablokować dostęp do pliku http://www.example.org/index.html, należy wpisać:

User-Agent: *
Disallow: /index.html

Pusta wartość Disallow oznacza brak ograniczeń w indeksowaniu dokumentów:

User-Agent: *
# Wszystkie dokumenty serwisu będą normalnie indeksowane:
Disallow:

Aby zablokować dostęp do wszystkich plików z jakiegoś katalogu i ewentualnie wszystkich jego podkatalogów, wystarczy wpisać samą nazwę tego katalogu, która koniecznie musi kończyć się znakiem ukośnika ("/"):

User-Agent: *
# Żaden plik z katalogu "prywatne" nie zostanie zaindeksowany:
Disallow: /prywatne/

Aby zablokować dostęp do wszystkich plików całego serwisu, jako ścieżkę należy podać sam ukośnik:

# Ten serwis w ogóle nie będzie indeksowany przez roboty:
User-Agent: *
Disallow: /

Allow

Standard Wykluczania Robotów został rozszerzony o dodatkową dyrektywę - Allow, której działanie jest przeciwne do Disallow, czyli wskazuje ścieżki, które robot może indeksować:

# Tylko strona główna tego serwisu zostanie zaindeksowana:
User-Agent: *
Disallow: /
Allow: /index.html

Dyrektywa Allow może nie być interpretowana przez niektóre roboty wyszukiwarek (jest rozpoznawana przez robota Google)

Wzorce dopasowania

Co zrobić, jeśli chcemy zablokować indeksowanie wszystkich zdjęć serwisu, ale jednocześnie zezwolić na indeksowanie samych dokumentów HTML? Najlepiej byłoby umieścić wszystkie zdjęcia w osobnym katalogu:

User-Agent: *
Disallow: /zdjecia/

Czasem jednak jest to niemożliwe. W takim przypadku pomocne są tzn. wzorce dopasowania, czyli znaki specjalne, które pozwalają dopasować ścieżki na podstawie ogólnych warunków. Googlebot rozpoznaje następujące znaki specjalne w ścieżkach dyrektyw Disallow oraz Allow:

  • * - Zastępuję dowolny ciąg znaków (również pusty)
  • $ - Jeżeli zostanie postawiony na końcu ścieżki, oznacza dopasowanie do końca nazwy, dzięki temu nadaje się szczególnie do określania ścieżek do plików określonego typu, czyli o wybranym rozszerzeniu nazwy
User-Agent: Googlebot
# Nie indeksuj plików graficznych:
Disallow: /*.jpg$
Disallow: /*.jpeg$
Disallow: /*.gif$
Disallow: /*.png$
# Nie indeksuj dokumentów z identyfikatorami sesji:
Allow: /*?$
Disallow: /*?

Różnica pomiędzy /*.gif$ a /*.gif jest taka, że w drugim przypadku zablokowane zostaną również pliki: /nazwa.gift, /nazwa.gif/nazwa.html, co raczej nie było naszym zamiarem.

Wzorce dopasowania są rozszerzeniem standardu i mogą być nieobsługiwane przez wiele robotów sieciowych (są interpretowane przez robota Google), dlatego zaleca się nie umieszczać ich w rekordzie User-Agent: *.

Swój plik robots.txt możesz przetestować w specjalnym generatorze.

Pytania i odpowiedzi

Czym jest plik robots.txt?

Plik robots.txt to specjalny dokument tekstowy, dzięki któremu możemy sterować widocznością dokumentów, zdjęć i innych plików z naszej strony internetowej w wynikach wyszukiwania np. Google.

Gdzie jest plik robots.txt?

Plik robots.txt nie jest obowiązkowy. Jeśli twórca witryny zdecydował się go dodać, musi się on znajdować w głównym folderze ze stroną WWW i mieć dokładnie taką nazwę (ważna jest również wielkość liter!). Na przykład jeśli serwis znajduje się pod adresem https://www.example.com/, to adres pliku powinien być następujący: https://www.example.com/robots.txt.

Komentarze

Zobacz więcej komentarzy

Facebook