Robots.txt

Rozcestník



Standart robots.txt (protokol pro zakázání přístupu robotům) slouží autorovi k nastavení částí webu, které robot může nebo nemůže 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 do něj nejprve podívají (v případě, že existuje), aby zjistili, zda jejich pohyb po webu není omezen nebo zakázán.

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

http://seo-napoveda.cz/robots.txt

V jednotlivých řádcích souboru je vždy na prvním řádce zapsán příkaz User-agent: a za ní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:. Využitelné je to v případě, kdy je třeba povolit jednotlivou stránku 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 můžou 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ářů vyjímaje podadresář /B/. Na pořadí se nehledí.
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 "User-Agent:" až do následujícího řádku "User-Agent:" nebo do konce souboru. V případě "User-Agent: *" platí pravidla pro všechny roboty vyjma těch, kteří jsou uvedeni v souboru.

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ém je samozřejmě 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 vícekrá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ážete 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 časem, který není v 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é standartní 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

Ve verzi robots.txt 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ídat bude libovolný znak z množiny znaků
[!<množina znaků>]
nebo
[^<množina znaků>]
odpovídat bude libovolný znak neobsažený v množině znaků

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

Kontaktujte nás