Jak na úspěšný web

Co je robots.txt, jak vypadá a k čemu (ne)slouží

Co je soubor robots.txt

Soubor robots.txt je textový soubor umístěný v kořenovém adresáři webové stránky (tedy expressinfo.cz/robots.txt , ale ne expressinfo.cz/slozka/robots.txt). Tento textový soubor slouží typicky k informování robotů (typicky třeba vyhledávačů Google, Seznamu, Bing a mnoha dalších), které stránky našeho webu mohou, a které naopak nesmí navštívit, a kde se nachází sitemapa/y webu.

Soubor se musí jmenovat přesně „robots.txt“ bez uvozovek a všechna písmena musí být malá. Povolený je pouze 1 soubor robots.txt na jednu doménu (pro subdomény je pak potřeba soubor další, viz dále).

Roboti, kteří navštíví web, by se jako první vždy měli podívat do souboru robots.txt, který najdou na předvídatelném místě, tedy v kořenovém adresáři (rootu) webu. Pozor, robots.txt slouží jako instrukce, ale roboti nemusí tyto instrukce poslouchat nebo se jimi jakkoliv řídit. Nejde tedy o nějaké bezpečnostní opatření, kterými zabráníte zlým robotům v tom, aby našli části webu, které nechcete, aby našli.

Soubor robots.txt slouží jako mechanismus k tomu, aby vyhledávače neprocházely naprosto všechny stránky webu, tedy aby nepřetěžovaly server nebo jako úspora takzvaného crawl budgetu, což je zjednodušeně vyhrazený počet URL našeho, které vyhledávače navštíví za nějaké období. Pokud bychom měli na webu třeba miliardy URL (což se může velmi snadno stát, pokud se například do URL adres propisují různé filtry produktů v e-shopu), mohli bychom si vyplácat crawl budget na řadu nepodstatných filtrů, ale vyhledávače by nikdy neprošly stránky, které jsou pro nás důležité.

Kde se robots.txt nachází a pro jaké domény je validní

Soubor robots.txt se nachází vždy v kořenovém adresáři domény, ke které se vztahuje. Nevztahuje se ale k případným subdoménám. Například http://example.com/robots.txt nemá vliv na případnou subdoménu, která by běžela na http://subdom.example.com. Tato subdoména musí mít svůj vlastní soubor robots.txt umístěný ve svém kořenovém adresáři.

Důležité je také dodržet daný protokol, tedy jestli jde o http, https nebo ftp. Neboli http://example.com/robots.txt nemá vliv na chování robotů na https://example.com.

Nejlepší příklady toho, jaké umístění souboru robots.txt má vliv na jaké domény, uvádí přímo Google.

Jak vypadá soubor robots.txt + nejčastěji používané instrukce

Soubor robots.txt si můžeme snadno vytvořit třeba v klasickém Poznámkovém bloku, a opravdu jde jen o klasický textový soubor. Pozor je potřeba dávat pouze na kódování, které musí být kódované v UTM-8 (kódování v Poznámkovém bloku si vyberete při ukládání souboru).

V souboru píšeme vždy jednu instrukci na řádek. Pokud je v nějaké instrukci chyba, roboti tuto instrukci typicky ignorují a pokračují dále (tedy chybná instrukce v jednom řádku nezneplatní celý soubor).

Nejtypičtější a nejpoužívanější instrukce jsou:

User-agent

User-agent specifikuje, pro které roboty jsou níže psané instrukce platné. Znak * znamená pro všechny roboty

Platí pro všechny roboty:

User-agent: *

Platí pro vyhledávač Google:

User-agent: Googlebot

Platí pro vyhledávač Seznam:

User-agent: SeznamBot

Instrukce pro různé roboty v jednom souboru robots.txt:

User-agent: Googlebot
#Instrukce pouze pro Google

User-agent: SeznamBot
#Instrukce pouze pro Seznam

Disallow

Další velmi používanou instrukcí je Disallow. Tato instrukce zakáže procházení jedné stránky nebo celých adresářů, případně i celého webu. To se hodí třeba ve chvíli, kdy nechceme, aby roboti navštívili stránku třeba s přihlášením do administrace nebo jiné podobné stránky.

Zakáže všem robotům procházení všech stránek adresáře /admin/, tedy všech souborů nebo podadresářů. Zakázat můžeme i více adresářů, kdy jen přidáme další řádek s direktivou Disallow:

User-agent: *
Disallow: /admin/
Disallow: /sukromne/

Zákaz procházení celého webu (může se hodit, když třeba web zakládáte a nechcete, aby ho zatím vyhledávače procházeli):

User-agent: *
Disallow: /

Allow

Opakem instrukce Disallow je Allow, tedy povolení procházení. Allow využijeme v případě, že chceme zakázat přístup do nějakého adresáře pomocí Disallow, ale v rámci tohoto zakázaného adresáře chceme vytvořit výjimku.

Zde by roboti neměli chodit do celého adresáře /semnechod/, ovšem s výjimkou /semnechod/semmuzes/, kterou mohou navštívit včetně všech dalších souborů nebo podadresářů:

User-agent: *
Disallow: /semnechod/
Allow: /semnechod/semmuzes/

Sitemap

Soubor sitemap.xml (může se jmenovat libovolně, ale toho je nejtypičtější název) je soubor, který v sobě obsahuje pokud možno všechny URL, které chceme, aby vyhledávače navštívili. Jde o jednoduchý způsob, jak dát vyhledávačům vědět o všech stránkách našeho webu i s dalšími informacemi navíc. V souboru robots.txt můžeme dát robotům vědět, kde se naše Sitemapa nebo i více Sitemap nachází. Do souboru robots.txt umístění napíšeme třeba takto:

Sitemap: https://www.expressinfo.cz/sitemap_index.xml
Sitemap: https://www.expressinfo.cz/post-sitemap.xml

Sitemapy píšeme zásadně v absolutním formátu adresy (tedy i s http na začátku). Sitemapy se mohou nacházet i na jiných doménách.

Soubor robots.txt NEslouží k zákazu indexace

Robots.txt je soubor, který zakazuje robotům navštěvovat různé části webu, a pokud jde o slušně vychované roboty, tak tyto instrukce budou respektovat. Ale pozor, nejde o všespásně řešení, když jde o to, aby se nějaká stránka nedostala do výsledků vyhledávání. K vyřazení z indexu nebo zakázání indexování se mají používat jiné metody (typicky umístění meta značky v html kódu těch stránek, které nechcete, aby byly zaindexovány) přímo mezi značky <head>:

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

Jak by ale mohl vyhledávač zaindexovat stránku, když ji díky souboru robots.txt ani nenavštívil? Stačí totiž například odkaz z jiné části webu, kdy třeba z bohatého textu daného odkazu může vyhledávač poznat, o jakou stránku asi půjde. Vzhledem k tomu, že jí pak vyhledávač kvůli instrukcím v robots.txt nenavštíví, tak se nedozví, že jí nemá indexovat. Je to malinko na hlavu, chápu, ale například Google to takto píše i na svých oficiálních instrukcích.

Další příklad by mohla být situace, pokud bychom nově přidali zákaz procházení nějaké části webu, ale Google by si již tuto část webu zaindexoval (to se snadno může stát, protože Google si soubor robots.txt stahuje k sobě a trvá 24 hodin, než ho stáhne znovu a začne se řídit případnými novými instrukcemi). Google by tedy mohl stránky zaindexovat, i když jsme mu zakázali procházení (ovšem o tomto zákazu Google neví). U těchto stránek pak klidně můžeme nastavit meta značku noindex v html kódu, ale protože pak následně začne respektovat zákaz procházení z robots.txt, tak se již nedostane k informaci v html kódu, že nechceme, aby stránky byly zaindexovány. Stránky tak v indexu prostě zůstanou.

Pokud tedy chceme, aby se některé stránky nedostaly do indexu, tak je lepší, aby nebyly v souboru robots.txt, ale byly správně označeny značkou noindex.

Bezpečnostní riziko robots.txt

K tomuto souboru se může dostat kdokoliv, a může se také snadno podívat, jaké stránky nechceme, aby byly zaindexovány. Často může jít třeba o stránky, u kterých by nikdo neměl vědět, že existují (například může jít o stránku s přihlášením do administrace webu, která slouží opravdu pouze nám a nikdo jiný by k ní neměl mít přístup ani o ní vědět). Je jasné, že nechceme, aby roboti tuto stránku navštívili, ale zároveň není moc dobré jí přímo specifikovat v souboru robots.txt, protože by se k ní tak útočníci mohli snadno dostat a zkoušet na ní pak útočit.

Tyto stránky, o kterých roboti ani nikdo jiný nemá vědět, tedy opravdu nesmíme psát do veřejně dostupného souboru, který slouží jen jako instrukce. Na tyto tajné stránky tedy nesmí vést žádné odkazy a nesmí o nich být nikde zmínka. Samozřejmě je pak potřeba ochránit třeba již zmíněné přihlášení i dalšími způsoby, ale minimálně ze zkušenosti jsou tyto tajné stránky velmi dobrým způsobem, jak odbourat 99,9 % pokusů o prolomení hesla, takže umístění do robotx.txt není ten nejlepší nápad.

Otestování validního souboru robots.txt

Nejsnadnější je si přidat web do Google Search Console a využít přímo validátoru, který Google nabízí. Je to nejspolehlivější metoda, že je soubor v pořádku, neobsahuje chyby a že se tento vyhledávač (ne)dostane, kam (ne)chcete.

Existují i další validátory, které najdete online, ale nejlepší mi přijde jít přímo za největším vyhledávačem na světě, u kterého je podstatné, aby tomuto souboru rozuměl.

Často kladené otázky (FAQ) a rychlé odpovědi

Co je soubor robots.txt?

robots.txt je soubor s řadou instrukcí pro roboty (tedy třeba vyhledávače), které stránky mají nebo nemají navštěvovat, případně také s umístěním souboru Sitemap.

Kde se soubor robots.txt nachází?

Soubor se nachází pouze a jenom v kořenovém adresáři webu, tedy například example.com/robots.txt. Pokud se soubor nachází jinde, roboti ho nenajdou nebo ho nebudou brát jako soubor instrukcí.

Slouží robots.txt jako nástroj k zákazu indexace?

Ne, pouze jako nástroj k zákazu procházení. Vyhledávače mohou stránky zaindexovat i bez jejich návštěvy. Pro zákaz indexace by se měly používat jiné metody, typicky umístění meta značky přímo do html kódu dané stránky.

Podobné články

Back to top button