Robots.txt

Rozcestník



Standard robots.txt (protokol pro zakázání přístupu robotů) slouží autorům stránek k nastavení částí webu, které robot nemá navštěvovat. 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 se správou webu, placené články ve zpravodajských archivech, interní diskusní fóra, výsledky vyhledávání položek v e-shopu apod.).

TIPY

Soubor robots.txt slouží k nastavení pravidel pro stahování stránek. Pokud chcete zakázat indexování stránky, použijte meta tag robots přímo v HTML textu této stránky a robotovi ji dovolte stahovat. Pokud je stránka nefunkční nebo chybí a přejete si ji vyřadit z indexu, čtěte sekci Odstranění stránky .

POZOR

Pokud nastavíte zákaz indexace značkou meta tag robots na stránce a zároveň zakážete stahování v robots.txt, robot si stránku již nemusí stáhnout a může se stát, že se zákaz indexace nezaregistruje a neuplatní.


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 (požadavky na stránky) není omezen nebo zakázán.

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

http://seo-napoveda.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 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é stránky v adresáři, jehož procházení je jinak zakázáno.

TIP

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


Příklady významů příkazů v 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.

Použijete-li v souboru pravidla pro více robotů, jsou platná v rámci sekce, tj. od řádku User-agent: až do následujícího řádku User-agent: nevčetně 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 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

Pokud si přejete, aby SeznamBot na vaše stránky nechodil, pak do robots.txt napište následující 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 robots.txt lze využít následující zástupné znaky:

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

Request-rate

Předvolená rychlost stahování dokumentů SeznamBotem je nastavena se snahou být šetrný ke všem 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 stahovali a indexovali rychleji, nebo naopak vaše servery jsou SeznamBotem nadmíru zatížené), můžete v souboru robots.txt uvést jinou rychlost.

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

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

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í 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 robot vrátí k výchozímu chování.

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 povolením regulárních výrazů známých z unixového shellu. Použití robots.txt verze 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ém řádku sekce.

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:

* zastupuje jakoukoliv posloupnost znaků (včetně případu 0 znaků)
? zastupuje jakýkoliv jeden znak
\ následující speciální znak (např. ?, *, ...) bude chápán doslovně - např. řetězci /file\? bude vyhovovat pouze cesta začínající /file?, ale cesta /files už ne.
[<množina znaků>] zastupuje libovolný znak z dané množiny
[!<množina znaků>]
nebo
[^<množina znaků>]
zastupuje libovolný znak neobsažený v dané množině

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 verze 1.0 (zákaz stahování stránek, které začínají zadaným řetězcem) dosáhneme přidáním zástupného znaku * (hvězdička) na konec řetezce: Disallow: /helpme*. To samé platí i pro direktivu Allow:.

Pomohl Vám tento článek? Ne

Kontaktujte nás