Robots.txt

Standard robots.txt (angl. robots exclusion standard nebo též robots exclusion protocol) slouží správcům webových stránek k předepsání žádaného chování robotů k webu. Používá se v případech, kdy stránka nebo část webu je funkční a přístupná pro lidi, ale robotům je potřeba stahování zakázat (např. podstránky pro administraci webu, placené články ve zpravodajských archivech, interní diskusní fóra, výsledky vyhledávání v e-shopu apod.).

Soubor slouží ke sdělení záměru správce webu a ulehčení vzájemné komunikace; čtení a respektování uvedených pravidel je zcela na rozhodnutí robota, který na web přijde. SeznamBot pravidla uvedená v souboru robots.txt respektuje.

Tip

Pokud chcete zakázat indexování stránky, použijte meta tag robots přímo v HTML textu této stránky a stahování stránky SeznamBotem nechte povolené.

Soubor robots.txt je obyčejný textový soubor, který musí být umístěn v kořenovém adresáři webu. Jeho název musí být psán malými písmeny. Roboti, kteří přijdou prohledávat váš server, se nejprve podívají do tohoto souboru (pokud existuje), aby zjistili, zda jejich pohyb po webu (požadavky na stránky) není omezen nebo zakázán.

https://www.seznam.cz/robots.txt

Tip

Pokud máte web s vysokým počtem stránek, do soubotu robots.txt můžete také zapsat odkaz na tzv. sitemapu, která může robotovi pomoct s optimalizací stahování.

Syntaxe

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

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: /

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:

Request-rate: 1/30s1 dokument každých 30 sekund
Request-rate: 100/15m100 dokumentů každých 15 minut
Request-rate: 400/1h400 dokumentů každou hodinu
Request-rate: 9000/1d9000 dokumentů každý den

Pozor

Minimální rychlost stahování SeznamBota je 1 dokument za 30 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í.

Request-rate: <rate> <time> 
Request-rate: 1/30s 1800-1900 
#jeden dokument se stáhne každých 30 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ášť.

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
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.

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