Syntaxe

Soubor robots.txt se skládá z libovolného počtu bloků, kde každý blok specifikuje pravidla pro jiného robota.

Příklad souboru robots.txt s několika bloky

User-agent: SeznamBot
Disallow: /admin

User-agent: psbot
Disallow: /obrazky

Soubor výše obsahuje dva bloky, jeden pro robota SeznamBot, jeden pro robota psbot. V každém bloku je na prvním řádku direktiva User-agent: (na rozdíl od HTTP hlaviček se používá malé písmeno a). Za ní je pak uveden název robota nebo řetězec User-Agent, kterým se robot běžně identifikuje. Namísto jména konkrétního robota lze použít znak * (hvězdička), který znamená to, že pravidla v bloku jsou míněny pro všechny roboty.

Každý další řádek pak definuje pravidlo, které má uvedený robot dodržovat. Pravidlo začíná názvem příkazu, pak následuje dvojtečka, mezera a obsah pravidla.

V příkladě nahoře je použit příkaz Disallow:, kterým se zakazuje stahování části webu. Obsahem příkazu v prvním bloku je text /admin, to znamená, že webmaster zakázal SeznamBotovi stahování všech podstránek webu, jejichž cesta v rámci webu začíná řetězcem "/admin". Podobně zakázal psbotovi stahovat stránky, jejichž cesta začíná řetězcem /obrazky.

TIP

Pokud si nepřejete, aby SeznamBot stahoval jakékoliv stránky z vašeho webu, zapište do souboru robots.txt tyto příkazy:
 
User-agent: SeznamBot
Disallow: /
 
Další možností, jak zakázat robotovi přístup na stránky, je využití robots.txt verze 2.0.

Zástupné znaky

V souboru robots.txt lze využít následující zástupné znaky:

* nahrazuje libovolný řetězec znaků (může se vyskytnout několikrát v jednom pravidle)
$ znamená konec adresy (interpretuje se stejně u všech pravidel)

Příklad použití zástupných znaků v souboru robots.txt

User-agent: SeznamBot
Disallow: *.pdf$
Zakazuje stahování všech souborů, jejichž adresa končí na „.pdf“ (a začíná jakkoliv).
User-agent: SeznamBot
Disallow: /*/diskuse/$
Zakazuje stahování výchozího dokumentu v adresářích /diskuse/, ale všechny ostatní soubory v adresářích /diskuse/ mohou být stahovány.
User-agent: SeznamBot
Disallow: /diskuse$
Postihuje /diskuse, nepostihuje /diskuse-01, /diskuse-02 atp.

Podporované příkazy

Základní příkazy, které můžete použít, jsou:

Disallow, Allow

Hlavním účelem souboru robots.txt je zakázat robotům stahování části webu. Toto zabezpečuje direktiva Disallow:, která se může v bloku zopakovat vícekrát. Podle novějších specifikací umožňuje soubor robots.txt stáhnutí stránky také povolit, a to pomocí příkazu Allow:. To je využitelné v případě, kdy je potřeba povolit stahování jednotlivých stránek v adresáři, jehož procházení je již jiným pravidlem zakázáno.

Příklady možného obsahu souboru robots.txt

User-agent: *
Disallow:
Všichni roboti (zastupuje je znak hvězdičky) mohou stahovat všechny stránky webu - prázdné místo za příkazem Disallow/Allow znamená, že nic není zakázáno. Jedná se o výchozí nastavení (prázdný nebo neexistující soubor robots.txt znamená totéž).
User-agent: *
Allow:
User-agent: *
Disallow: /
Všichni roboti mají zakázáno stahovat jakoukoliv stránku webu.
User-agent: SeznamBot
Disallow: /diskuse/
SeznamBot nemá stahovat obsah adresáře /diskuse/.
User-agent: *
Disallow: /archiv/
Disallow: /abc
Všichni roboti mají zakázáno vstupovat do adresáře /archiv/. Také mají zakázáno stahovat stránky webu, jejichž jméno začíná řetězcem „abc“.
User-agent: *
Disallow: /
Allow: /A/
Disallow: /A/B/
Všichni roboti můžou stahovat z adresáře /A/ a jeho podadresářů vyjma podadresáře /B/. Na pořadí pravidel v sekci nezáleží.
User-agent: SeznamBot
Disallow: /
SeznamBot nesmí z webu stahovat nic. Lomítko je nutné, prázdné místo by znamenalo, že nic není zakázáno.

Request-rate

Direktiva Request-rate slouží k nastavení počtu dokumentů, které může robot stáhnout za danou časovou jednotku.

Předvolená rychlost stahování dokumentů SeznamBotem je nastavena se snahou být šetrný k serverům, aby je stahování nadmíru nazatěžovalo nebo dokonce nevyřadilo z provozu. V případě, že vám stávající rychlost nevyhovuje (např. máte hodně stránek a chcete, aby se stahovaly a indexovaly rychleji, nebo naopak vaše servery jsou SeznamBotem nadmíru zatížené), můžete v souboru robots.txt uvést jinou rychlost.

Obě podporované verze robots.txt podporují následující zápis příkazu Request-rate:

Příklad zápisu pravidla Request-rate

Request-rate: 1/10s 1 dokument každých 10 sekund
Request-rate: 100/15m 100 dokumentů každých 15 minut
Request-rate: 400/1h 400 dokumentů každou hodinu
Request-rate: 9000/1d 9000 dokumentů každý den

POZOR

Minimální rychlost stahování SeznamBota je 1 dokument za 10 sekund. Pokud uvedete nižší hodnoty, tyto jsou automaticky převedeny na toto minimum. Maximum je omezeno aktuálním výkonem a zatížením SeznamBota.

Request-rate umožňuje také specifikovat časové rozmezí, ve kterém se robot bude chovat podle vámi nastavených pravidel. Ve zbylém čase, který není v příkazu Request-rate uveden, se robot vrátí k výchozímu chování.

Příklad zápisu časového rozmezí v příkazu Request-rate

Request-rate: <rate> <time>
Request-rate: 1/10s 1800-1900
#jeden dokument se stáhne každých 10 sekund v době od 18:00 do 19:00. Ve zbylém čase 
stahuje obsah podle své standardní rychlosti.

Bloky pravidel pro více robotů

Pravidla uvedená v souboru robots.txt jsou platná v rámci bloku, tj. od řádku User-agent: až do následujícího řádku User-agent: nebo do konce souboru. Pravidla uvedená po řádku User-agent: * platí pro všechny roboty vyjma těch, kteří jsou pak v souboru uvedeni zvlášť.

Příklad příkazů pro všechny roboty kromě SeznamBota

User-agent: *
Disallow: /
# pro všechny roboty: neprohledávat nic

User-agent: Seznambot
Request-rate: 300/1m
# pro Seznambota: prohledávat všechno, rychlost 300 URL za minutu

Příklad souboru robots.txt s pravidly pro všechny roboty a speciálními pravidly pro SeznamBota a Googlebota.

User-agent: *
Disallow: /images/
Request-rate: 30/1m
# pro všechny roboty: neprohledávat /images/, rychlost 30 URL za minutu

User-agent: SeznamBot
Disallow: /cz/chat/
Request-rate: 300/1m
# pro SeznamBota: neprohledávat /cz/chat/, rychlost 300 URL za minutu

User-agent: Googlebot
Disallow: /logs/ 
Request-rate: 10/1m
# pro Googlebota: neprohledávat /logs/, rychlost 10 URL za minutu

Sitemap

Tato direktiva informuje robota o tzv. sitemapě. Obsahem je absolutní URL adresa sitemapy. Direktivu můžete uvést vícekrát s různými sitemapami.

Příklad souboru robots.txt s uvedením sitemapy

User-Agent: *
Disallow: /diskuse
Disallow: /hledej
Disallow: /emailem
Disallow: /dynamicke-bannery
Disallow: /sessionCheck

Sitemap: https://www.novinky.cz/sitemap/sitemap_articles.xml
Sitemap: https://www.novinky.cz/sitemap/sitemap_news.xml
Sitemap: https://www.novinky.cz/sitemap/sitemap_sections.xml
Pomohl Vám tento článek? Ne

Kontaktujte nás