Robots Exclusion Protocol

Robots Exclusion Protocol (REP) – mechanizm informowania automatów o tym, czego nie powinny robić na stronie WWW[1].

Dotyczy to przede wszystkim działających automatycznie programów indeksujących serwisy WWW dla wyszukiwarek, które podążając za hiperłączami, indeksują całą zawartość danego serwisu do katalogu wyszukiwarki, ale również programów innego typu, np. automatycznych mirrorów[2].

Protokół REP nigdy nie stał się oficjalnym standardem i jedynie informuje o odpowiednim zachowaniu, nie wymusza go zaś w żaden sposób. System ten jest generalnie przestrzegany, gdyż w niczyim interesie nie leży łamanie jego zasad[2].

Wstępną wersję standardu opracował w 1994 roku Martijn Koster (również webmaster), gdy roboty indeksujące przeciążały jego witrynę[2]. Od momentu utworzenia protokół REP nie była aktualizowany pod kątem dzisiejszych sytuacji granicznych[2].

Powody stosowania

edytuj
  • Czasem pobranie jakiejś strony powoduje wywołanie jakiejś akcji, np. oddanie głosu w sondażu (ściśle interpretując standardy, wszystkie tego typu akcje powinny odbywać się za pomocą formularzy i metody POST, nie linków i GET, nie jest to jednak powszechnie przestrzegane).
  • Niechęć autora do tego, żeby dana strona była indeksowana w wyszukiwarkach, gdyż nie wnosi ona żadnej nowej treści do ich bazy. Tak jest m.in. ze stronami edycji na Wikipedii, np.:
http://pl.wiki.x.io/w/wiki.phtml?title=Robots_Exclusion_Protocol&action=edit
  • Duże obciążenie serwera w związku z generacją strony oraz zwykłą niechęć do tego, żeby była ona w bazach wyszukiwarek. Niektóre strony internetowe z różnych przyczyn wolą pozostać poza wyszukiwarkami, lub pozwalają na indeksowanie tylko swojej strony głównej.

Mechanizmy

edytuj

Istnieją dwa mechanizmy Robots Exclusion Protocol: robots.txt[1] i znaczniki meta.

robots.txt

edytuj

Najważniejszym mechanizmem jest plik robots.txt umieszczony w katalogu głównym serwera. Zgodnie ze standardem Robots Exclusion Protocol, robots.txt to plik składający się z:

  • komentarzy zaczętych od #
  • rekordów oddzielonych pustymi liniami
    • rekord składa się z pól Nazwa: Wartość[3]
      • jednego pola User-agent
      • pól Disallow

Opis pól[3]:

  • User-agent oznacza jakich programów dany rekord dotyczy.
  • Disallow to przedrostki (prefiksy) URL-i, których ściągać nie wolno.
  • User-agent: * dotyczy wszystkich niewymienionych w innych rekordach programów.

Niektóre boty rozumieją też inne pola, np. ograniczające liczbę pobrań ze strony na minutę.

Przykłady

edytuj

Cała witryna będzie indeksowana przez roboty (tak jakby nie było pliku robots.txt):

User-agent: *
Disallow:

Cała witryna nie będzie indeksowana:

User-agent: *
Disallow: /

Indeksowane nie będą tylko foldery „images” i „private” w katalogu głównym strony:

User-agent: *
Disallow: /images/
Disallow: /private/

Indeksowany nie będzie tylko plik „file.html” w katalogu „directory”:

User-agent: *
Disallow: /directory/file.html

Znaczniki meta

edytuj

Jest też możliwe podawanie dyrektyw dla robotów w znacznikach HTML: <meta name="robots" content="X">, gdzie X to[2]:

  • noindex – nie indeksuj strony
  • nofollow – nie podążaj za linkami na stronie
  • noarchive – nie archiwizuj strony w cache

X może być złożone z jednego, dwóch lub trzech powyższych słów rozdzielonych przecinkiem (np. noindex,nofollow,noarchive), przy czym dopuszczalne jest też użycie słowa none jako odpowiednika noindex,nofollow[2].

Znaczniki meta wymagają analizy HTML-a, więc są używane o wiele rzadziej niż robots.txt

Przypisy

edytuj
  1. a b How the Web crawler uses the robots exclusion protocol [online], www.ibm.com, 10 kwietnia 2014 [dostęp 2023-02-15] (ang.).
  2. a b c d e f Sformalizowanie specyfikacji Robots Exclusion Protocol | Blog Centrum pomocy wyszukiwarki Google [online], Google Developers [dostęp 2023-02-15] (pol.).
  3. a b RFC ft-koster-rep: Robots Exclusion Protocol, „IETF Datatracker”, 9 września 2022 [dostęp 2023-02-15] (ang.).