Komunikace s vyhledávači - robots.txt
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
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:
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.