Robots.txt
Obsah článku:
Co je robots.txt?
Robots.txt v angličtině robots exclusion protocol nebo robots exclusion standard je soubor uložen v kořenovém adresáři, který umožňuje definovat pravidla pro procházení vašeho webu. Tento soubor by si měl každý robot, který vstoupí na vaše webové stránky nebo e-shop prohlédnout a na základě uvedených informací dále procházet web. Můžete přesně definovat, na které stránky robot chodit může a na které chodit nemá. Správným nastavením souboru robots.txt se můžete vyhnout nechtěnému přetížení webu nebo zabránit procházení některých parametrů na vašem webu a optimalizovat tak crawler budget.
Pravidla pro robots.txt
Pokud chcete aby váš soubor robots.txt fungoval správně, je zapotřebí dodržovat tyto dvě pravidla.
- Soubor musí být umístěn v kořenovém adresáři webu. www.domena.cz/robots.txt.
- Musí být psaný pouze malými písmeny.
Jak napsat soubor robots.txt
V první řadě si představíme definice zástupných znaků a direktiv, které můžete v robots.txt používat. Ukážeme si také několik příkladů, které vám objasní chování a logiku tohoto souboru.
User-agent:
User-agent vám umožní definovat o jakého robota se jedná. Pokud chcete definovat pravidla pro všechny roboty najednou můžete použít zástupný znak hvězdičky(*). Zápis by v tomto případě vypadal takto: User-agent: *
Disallow:
Disallow vám umožňuje definovat do jakých adresářů robot jít nemůže. Když budete chtít zakázat procházení adresáře admin zápis budete vypadat takto: Disallow: /admin/. V některých případech budete chtít robotům zakázat úplný přístup na vaše stránky. V tomto případě použijete zástupný znak lomítka(/).
- Disallow: /admin/ (Zákaz do adresáře admin)
- Disallow: / (Úplný zákaz přístupu)
- Disallow: (Povolení přístupu)
Allow:
Allow umožňuje znovu povolit vaše zakázané URL. Tento přístup bohužel nerespektují všichni roboti a proto nastavení nemusí v některých případech fungovat. Představte si situaci, ve které chcete omezit robotům Googlu přístup na celý váš web a povolit jen adresář public. Zápis bude vypadat takto:
- User-agent: Googlebot (Jakého robota nastavujeme)
- Disallow: / (Zákaz přístupu na všechny stránky)
- Allow: /public/ (Povolení přístupu do adresáře public)
Hvězdička (*)
Roboti chápou hvězdičku jako zástupný znak, který je využíván v regulárních výraz. Hvězdička nahrazuje libovolný počet znaků. Představte si situaci, ve které budete chtít vyloučit procházení filtračních parametrů pro všechny roboty. Zápis budete vypadat takto:
- User-agent: * (Platí pro všechny roboty)
- Disallow: /*?manufacturer (Zakazuje procházení aktivního filtru výrobce)
- Disallow: /*?stock (Zakazuje procházení aktivního filtru skladové dostupnosti)
Sitemap:
Direktiva sitemap vám umožňuje předat informaci o cestě k souboru sitemap, který by měl obsahovat informace o všech důležitých stránkách webu.
- User-agent: *
- Sitemap: www.domena.cz/sitemap.xml
Více o souboru sitemap.
Komentáře v robots.txt
Komentáře v robots.txt doporučujeme používat i když je soubor veřejný. Za několik měsíců si nebude ani jeden člověk z firmy pamatovat proč někteří roboti do adresáře můžou a proč jiní ano. Znak pro komentář je hashtag (#).
- #Sem napište váš komentář
- User-agent: *
- Disallow:
Doplňující informace
Pravidla se v souboru robots.txt nedědí. Pokud nastavujete pravidla pro všechny roboty přes User-agent: * nemělo by se vám stát že špatně definujete nebo vynecháte nějaké pravidlo. Když se po nějaké době rozhodnete upravit pravidla jednoho robota a ostatním je nechat stejná, je zapotřebí zmíněného robota nastavit celého znovu. Žádné pravidla zmíněné pro všechny roboty spadající pod User-agent: * peo zmíněného robota neplatí.
Nastavování více robotů
Modelový příklad: Vaše firma se rozhodla zamezit přístup robotům Yahoo do adresáře /private/, ale z nějakého důvodu tento adresář chcete nechat přístupný všem ostatním robotům.
- User-agent: * (Nastavení pro všechny roboty)
- Disallow: /php/ (Zákaz přístupu do adresáře php)
- Disallow: /kosik/ (Zákaz přístupu do adresáře kosik)
- Disallow: /login/ (Zákaz přístupu do adresáře login)
- Disallow: /registrace/ (Zákaz přístupu do adresáře registrace)
- User-agent: Googlebot (Nastavení pro Googlebota)
- Disallow: /admin/ (Zákaz přístupu do adresáře admin)
Takový zápis Googlebotu umožňuje vstoupit všude kromě adresáře admin a všem ostatním robotům ne, pokud to byl záměr vše je v pořádku. Pokud jste chtěli nastavit stejné pravidla a jen Googlebota o toto jedno pravidlo rozšířit je zapotřebí použít pro Googlebota i ostatní pravidla. Viz ukázka:
- User-agent: * (Nastavení pro všechny roboty)
- Disallow: /php/ (Zákaz přístupu do adresáře php)
- Disallow: /kosik/ (Zákaz přístupu do adresáře kosik)
- Disallow: /login/ (Zákaz přístupu do adresáře login)
- Disallow: /registrace/ (Zákaz přístupu do adresáře registrace)
- User-agent: Googlebot (Nastavení pro Googlebota)
- Disallow: /php/ (Zákaz přístupu do adresáře php)
- Disallow: /kosik/ (Zákaz přístupu do adresáře kosik)
- Disallow: /login/ (Zákaz přístupu do adresáře login)
- Disallow: /registrace/ (Zákaz přístupu do adresáře registrace)
- Disallow: /admin/ (Zákaz přístupu do adresáře admin)
Indexace stránek
Robots.txt neslouží pro zákaz indexace webových stránek, ale pouze pouze pro zákaz procházení webových stránek. Stránka, která má v souboru robots.txt zakázané procházení může být tedy indexována. Vyhledávač se o ní může dozvědět i jinými způsoby než je crawlování webu a to například skrze odkazující zdroje. Zakázat indexaci jednotlivých stránek můžete pomocí meta tag robots přidáním příkazu noindex.
Jména robotů
- Google - Googlebot
- Seznam - Seznambot
- Bing - Bingbot
- Slurp - Yahoo
Další zajimavé informace najdete ve slovníku pojmů.