Komunikace s vyhledávači - robots.txt

Rozcestník

robots.txt - Seznam syntaxe - o co se jedná, k čemu to slouží
Obsah souboru, příklady - jak správně nakonfigurovat, aby tomu Seznambot rozuměl
Zástupné znaky - rozšiřující možnosti konfigurace robots.txt
Sitemaps - jak upozornit Seznambota, že web využívá formátu sitemaps
Request Rate - jak omezit počet přístupů SeznamBota
Meta robots - zakázání indexace pomocí meta robots
Zákaz sledování odkazu rel="nofollow" - jak přinutit Seznambota, aby nenásledoval některé odkazy
Robots.txt - syntaxe Robot-version: 2.0 - možnosti použití robots.txt verze 2.0



Rozhodnutí o tom, zda a které ze stránek webu budou resp. nebudou indexovány fulltextovými roboty je zcela na autorovi dané stránky. K tomu slouží standard robots (protokol pro zakázání přístupu robotům). Autor stránky s jeho pomocí nastaví, na které části webu může nebo nemůže který fulltextový robot chodit. Obecně je cílem tvůrců aby vytvořená stránka byla fulltextem vyhledatelná a měla tedy své čtenáře. V některých případech je však třeba procházení jedné ze stránek nebo dokonce celé části webu fulltextovým robotům zakázat. (placené články ve zpravodajských archivech, interní diskusní fóra, výsledky vyhledávání položek v e-shopu apod.) Existuje několik způsobů jak to provést:

  • Pro celou doménu najednou souborem robots.txt
  • Pro jednotlivé stránky zvlášť pomocí meta tagu v hlavičce
  • Pro konkrétní odkaz atributem rel="nofollow"

Robots.txt - Seznam syntaxe


Roboti, kteří přijdou prohledávát váš server, se nejprve podívají do souboru robots.txt, jestli není jejich pohyb omezen nebo zakázán.

TIP!

Soubor robots.txt je obyčejný textový soubor, 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. (olympijske-hry.cz/robots.txt ).

Obsah souboru, příklady

V jednotlivých řádcích souboru robots.txt je vždy zapsán User-agent: (robot), dále následují pravidla – zakázané adresáře (Disallow:).

TIP!

Podle novějších specifikací robots.txt umožňuje indexaci URL také povolit (Allow:). Využitelné je to v případě, že je třeba povolit jednotlivou stránku v adresáři, jehož indexace je výše zakázána.

Příklady:
User-agent: Seznambot
Disallow: /
  Toto znamená, že Seznambot nesmí indexovat nic. Lomítko je nutné, prázdné místo znamená indexuj vše
User-agent: Seznambot
Disallow: /diskuse/
  Takový zápis říká, že Seznambot nesmí indexovat obsah adresáře /diskuse/
User-agent: *
Disallow: /archiv/
Disallow: /bla
  Tento zápis zakázal všem robotům (hvězdička) vstupovat do adresáře /archiv/ a načítat stránky, které začínají řetězcem 'bla'
User-agent: *
Disallow:

nebo
User-agent: *
Allow:
  Tento zápis znamená, že všichni roboti můžou indexovat na celém webu (prázdné místo za Disallow). Toto je výchozí nastavení, prázdný nebo neexistující soubor robots.txt je totéž.
User-agent: *
Disallow: /
  Tímto zápisem zakážete všem robotům indexaci všech podstránek.
Disallow: /
Allow: /A/
Disallow: /A/B/
  Zde se uplatní délka použitého pravidla - na pořadí se nehlědí. Tj. Robot může do adresáře /A/ a jeho podadresářů vyjímaje podadresář /B/

Použijete-li v souboru pravidla pro více robotů, jsou pravidla platná od "User-Agent:" až do následujícího řádku "User-Agent:" nebo do konce souboru. V případě "User-Agent: *" pravidla platí pro všechny roboty vyjma všech robotů uvedených v souboru.

TIP!

Příklad 1.
User-Agent: *
Disallow: /images/
Request-rate: 30/1m
# pro všechny roboty kromě Seznambota a Goolebota: 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 minut

Příklad 2.
User-Agent: *
Disallow: /
pro všechny roboty kromě Seznambota: neprohledávat nic

User-Agent: Seznambot
Request-rate: 300/1m
# pro Seznambota: prohledávat všechno, rychlost 300 url za minutu

POZOR!

User-agent: *
Disallow: /
Seznambot tento zápis bere v potaz, ale první stránku webu zaindexuje! Důvodem je naše zkušenost s neznalostí mnohých majitelů webů, kteří se díví, že jim robot neindexuje stránky – problém je samozřejmě tento zápis v robots.txt
Pokud si přejete, aby Seznambot neindexoval ani první stránku webu, pak do robots.txt připište:
User-agent: Seznambot
Disallow: /
Tímto zajistíte, že na vaše stránky nebude chodit.
Další možností je využít robots.txt ver 2.0, kde je tato direktiva striktně dodržována.

Zástupné znaky

Kromě hvězdičky * nahrazující libovolný řetězec znaků lze v robots.txt použít také znak dolaru $, znamená konec adresy. Znak $ interpretuje u všech pravidel. V jednom pravidle se může hvězdička vyskytovat vícekrát.

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

Sitemaps

Do souboru robots.txt lze také napsat odkaz na sitemapu. Více v nápovědě Sitemaps.

Request Rate

Přestože se snažíme stahovat dokumenty z jednotlivých serverů, tak abychom je nevyřadili z provozu, může se stát, že i toto námi stanovené minimum vám nebude vyhovovat. Proto jsme zavedli direktivu Request-rate: <počet dokumentů> / < čas> jako další parametr v robots.txt. Obě verze námi podporované syntaxe (seznam, verze 2.0) podporují následující zápis:

Request-rate: 1/30s   1 dokument každých 30 vteřin
Request-rate: 30/15m   30 dokumentů každých 15 minut
Request-rate: 120/1h   120 dokumentů každou hodinu
Request-rate: 2000/1d   2000 dokumentů každý den

POZOR!

Minimum dokumentů které SeznamBot stáhne je 1 dokument za 1 minutu. Všechny nižší hodnoty budou brány jako toto minimum. Maximum je omezeno rychlosti SeznamBota.

Dále je možné specifikovat časové rozmezí, kdy by měl robot na stránky zavítat. Request-rate: <rate> <time>

Request-rate: 1/30s 1800-1900   1 dokument každých 30 vteřin v čase od 18:00-19:00

Meta robots

Meta tag v hlavičce HTML stránky umožňuje zakázat robotům jednak indexování obsahu, jednak sledování odkazů.
V html kódu se zapisuje takto:

<meta name="robots" content=" noindex, nofollow ">

Přípustné hodnoty:
Noindex   obsah stránky nebude indexován
Index   obsah stránky bude indexován (normální hodnota)
Nofollow   odkazy nebudou sledovány
Follow   odkazy budou sledovány (normál)
All   vše povoleno, tedy jako index, follow

Zákaz sledování odkazu rel="nofollow"

Tímto atributem lze zakázat sledování jednotlivého odkazu – chcete-li odkázat nějakou stránku ale nepředat jí zpětný odkaz.
V html kódu se zapisuje takto:

<a href="http://olympijske-hry.cz_hry.com" rel=" nofollow ">olympijské hry</a>

TIP!

Pomocí odkazu s rel="nofollow" můžete označovat odkazy vedoucí z vašeho webu nad kterými nemáte dostatečnou kontrolu – například různá diskusní fóra, diskuse pod články apod. Zamezíte tak snižování relevance odkazů, které vedou z vašich stránek.

Robots.txt - syntaxe Robot-version: 2.0

Nyní můžete použít robots.txt ve verzi 2.0, která je na rozdíl od výše zmíněného rozšířena o regulární výrazy podobné těm z BASHe.
Aby SeznamBot věděl, že daný robots.txt využíva direktiv ver. 2.0, tak je potřeba to následovně zapsat:

User-agent: *
Robot-version: 2.0
Disallow: /
  je nutné, aby Robot-version: 2.0 byl na druhé pozici bezprostředně za User-agent: *

Zástupné znaky a jejich význam
“*“   odpovídá jakékoli sekvenci znaků (0 a více)
“?“   odpovídá jakémukoli znaku
“\“   následující metaznak bude považován za normální znak (“/adresar.php\?“ – bude bráno jako (“/adresar.php?“)
“[<množina znaků>]“   bude odpovídat libovolný znak z množiny znaků
“[!<množina znaků>]“
nebo
“[^<množina znaků>]“
  bude odpovídat libovolný znak neobsažený v množině znaků

POZOR!

Na rozdíl od verze 1.0 se neporovnává jen začátek, ale celé url, tzn. Disallow: /helpme zakazuje jen url /helpme, původní funkcionality dosáhneme pomocí Disallow: /helpme*. Toto platí i pro direktivu Allow.

Kontaktujte nás