Robots.txt (soubor robots.txt)

Standard robots.txt (protokol pro zakázání přístupu robotů) slouží autorům stránek k nastavení částí webu, které robot smí nebo nesmí navštěvovat. Používá se v případech, kdy je potřeba procházení určité stránky či části webu robotům zakázat (např. placené články ve zpravodajských archivech, interní diskusní fóra, výsledky vyhledávání položek v e-shopu apod.).

Syntaxe pro robots.txt

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 není omezen nebo zakázán.

Příklad umístění souboru robots.txt:

http://objevit.cz/robots.txt

V jednotlivých sekcích souboru je vždy na prvním řádku zapsán příkaz User-agent:, po kterém následují pravidla (například zakázané adresáře pomocí příkazu Disallow).

TIP: Podle novějších specifikací umožňuje robots.txt indexaci URL také povolit pomocí příkazu Allow:. To je využitelné v případě, kdy je třeba povolit jednotlivé stránky v adresáři, jehož indexace je jinak zakázána.

Příklady významů příkazů v souboru robots.txt

User-agent: *
Disallow:
Všichni roboti mohou indexovat všechny stránky webu, což je povoleno prázdným místem za příkazem Disallow/Allow). Jedná se o výchozí nastavení (prázdný nebo neexistující soubor robots.txt znamená totéž).
User-agent: *
Allow:
User-agent: *
Disallow: /
Zákaz indexace všech podstránek pro všechny roboty.
User-agent: *
Disallow: /archiv/
Disallow: /abc
Zakázat všem robotům (zastupuje je znak hvězdička: *) vstupovat do adresáře /archiv/ a načítat stránky, které začínají řetězcem „abc“.
User-agent: *
Disallow: /
Allow: /A/
Disallow: /A/B/
Robot může do adresáře /A/ a jeho podadresářů vyjma podadresáře /B/. Na pořadí pravidel nezáleží.
User-agent: SeznamBot
Disallow: /
SeznamBot nesmí indexovat nic. Lomítko je nutné, prázdné místo znamená indexuj vše.
User-agent: SeznamBot
Disallow: /diskuse/
SeznamBot nesmí indexovat obsah adresáře /diskuse/.

Použijete-li v souboru pravidla pro více robotů, jsou platná 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 v souboru uvedeni zvlášť.

Příklad příkazů pro všechny roboty kromě 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

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

POZOR

SeznamBot bere zápis:
User-agent: *
Disallow:/

v potaz, ale první stránku webu přesto zaindexuje. Důvodem tohoto chování je naše zkušenost s neznalostí mnohých majitelů webů, kteří se diví, že jim robot neindexuje stránky. Problémem je obvykle uvedený zápis v robots.txt.
Pokud si přejete, aby SeznamBot neindexoval ani první stránku webu, pak do robots.txt napište následující příkazy:
User-agent: SeznamBot
Disallow: /

Zajistíte tím, že robot na vaše stránky nebude chodit. Další možností, jak zakázat robotovi přístup na stránky, je využití robots.txt verze 2.0, kde je tato direktiva striktně dodržována.

Zástupné znaky

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

* nahrazuje libovolný řetězec znaků (může se vyskytovat 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$
Zakáže stahování všech souborů, jejichž adresa končí na „.pdf“ (a začíná jakkoliv).
User-agent: SeznamBot
Disallow: /*/diskuse/$
Zakáže 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.

TIP: Do soubotu robots.txt lze také zapsat odkaz na sitemapu webu.

Request-rate

Direktiva Request-rate slouží k nastavení počtu dokumentů, které může robot za určitou časovou jednotku stáhnout. Používá se v případě, kdy vám nevyhovuje námi nastavené minimum stahování dokumentů, které se snaží být šetrné k serverům, aby je nevyřadilo z provozu.

Příklad syntaxe pravidla Request-rate

Request-rate: <počet dokumentů> / <čas>

Obě podporované verze robots.txt podporují následující zápis příkazu 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

Minimum dokumentů, které SeznamBot stáhne, je 1 dokument za 10 sekund. Všechny nižší hodnoty proto bere jako toto minimum. Maximum je omezeno rychlostí 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 bude robot chovat standardně podle našich nastavení..

Příklad syntaxe č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.

Syntaxe pro robots.txt verze 2.0

Seznam podporuje robots.txt ve verzi 2.0. Jeho syntaxe je oproti předchozí verzi rozšířena o regulární výrazy známé z unixového shellu. Použití robots.txt ve verzi 2.0 je potřeba SeznamBotovi oznámit. Slouží k tomu příkaz Robot-version: 2.0, který musí být vždy na druhé pozici.

Příklad použití robots.txt ve verzi 2.0

User-agent: *
Robot-version: 2.0
Disallow: /

Zástupné znaky verze 2.0

V robots.txt verze 2.0 lze používat následující zástupné znaky:

* odpovídá jakékoliv sekvenci znaků (0 a více)
? odpovídá jakémukoliv znaku
\ následující znak bude považován za normální znak (“/adresar.php\?“ bude brán jako (“/adresar.php?“)
[<množina znaků>] odpovídá libovolnému znaku z dané množiny
[!<množina znaků>]
nebo
[^<množina znaků>]
odpovídá libovolnému znaku neobsaženému v dané množině

U souboru robots.txt pozor!

Na rozdíl od robots.txt verze 1.0 se neporovnává jen začátek, ale celá URL. To znamená, že například Disallow: /helpme zakazuje jen URL /helpme. Původní funkcionality (zákaz načítání stránek, které začínají zvoleným řetězcem) dosáhneme vložením zástupného znaku * (hvězdička): Disallow: /helpme*. Toto platí i pro direktivu Allow:.

Tým redaktorů magazínu Objevit.cz se skládá z poměrně mladých lidí, kteří psaní článků a pohybování se ve světě IT pokládají za svůj koníček, věnují se mu a tudíž mu i rozumí.

Komentáře

Nahoru