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.
Příklad umístění souboru robots.txthttps://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.
Příklad souboru robots.txt s několika blokyUser-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: * | 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: * | Všichni roboti mají zakázáno stahovat jakoukoliv stránku webu. |
User-agent: SeznamBot / | SeznamBot nemá stahovat obsah adresáře /diskuse/. |
User-agent: * | 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: * | 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 | 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/30s | 1 dokument každých 30 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 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í.
Příklad zápisu časového rozmezí v příkazu Request-rateRequest-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ášť.
Příklad příkazů pro všechny roboty kromě SeznamBotaUser-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 GooglebotaUser-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 sitemapyUser-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