robots.txt

Robots.txt prakticky: co to je, jak ho napsat a čeho se vyvarovat

Robots.txt je textový soubor v kořeni webu, kterým říkáte vyhledávacím robotům, kam smějí a kam ne. Nic víc, nic míň. Není to bezpečnostní opatření, není to nástroj na mazání stránek z Googlu a rozhodně to není soubor, do kterého se kopírují cizí pravidla „pro jistotu".

V praxi vidíme dva extrémy. Buď robots.txt nikdo neřeší a e-shop nechá roboty procházet tisíce nesmyslných filtrovaných URL. Nebo do něj někdo zasáhne bez rozmyslu a odstřihne Googlu půlku webu. Obojí stojí peníze. Tenhle návod vychází z oficiální dokumentace Google a je napsaný tak, abyste podle něj zvládli soubor napsat i zkontrolovat.

Co robots.txt umí a co ne

Představte si robots.txt jako ceduli u vjezdu do areálu. Stojí na viditelném místě, každý si ji přečte a slušní návštěvníci se podle ní zařídí. Cedule ale nenahrazuje zámek. Kdo chce dovnitř a nezajímají ho pravidla, prostě vejde.

Vyhledávače jako Google, Seznam nebo Bing se pravidly řídí. Jednoduchý soubor vypadá takhle:

robots.txt

User-agent: Googlebot Disallow: /interni-slozka/ User-agent: * Allow: / Sitemap: https://www.vas-eshop.cz/sitemap.xml

Překlad do češtiny: Googlebot nesmí do složky /interni-slozka/. Všichni ostatní roboti smějí všude. Mapa webu je na uvedené adrese. Druhá skupina je mimochodem zbytečná — když nic nezakážete, je všechno povolené automaticky.

Zásadní je rozdíl mezi procházením a indexací. Robots.txt řeší jen to první. Když robotovi zakážete stránku procházet, neznamená to, že ji Google nemůže mít ve výsledcích. Pokud na ni vedou odkazy odjinud, může se URL do indexu dostat i tak — jen bez popisku, protože si obsah nikdy nenačetl.

Na tohle robots.txt je

Ano
  • +Ušetřit robotům čas na částech webu, které nemají hodnotu pro vyhledávání — košík, přihlášení, interní vyhledávání, nekonečné kombinace filtrů.
  • +Zabránit zbytečné zátěži serveru z opakovaného procházení nezajímavých URL.
  • +Ukázat robotům, kde leží mapa webu.
  • +Řídit přístup konkrétních robotů zvlášť — jinak Googlebot, jinak roboti od AI nástrojů.

Na tohle robots.txt není

Ne
  • Odstranit stránku z výsledků vyhledávání. K tomu slouží značka <meta name="robots" content="noindex"> nebo odstranění stránky.
  • Chránit citlivý obsah. Na to je heslo nebo přihlášení, ne cedule na plotě.
  • Zpomalit procházení. Google direktivu Crawl-delay nepodporuje a ignoruje ji.
  • Zastavit roboty, kteří pravidla nerespektují. Ti se souborem vůbec nezabývají.
⚠️

Robots.txt je veřejný soubor

Kdokoli si ho otevře na adrese vasedomena.cz/robots.txt. Když do něj napíšete Disallow: /admin-tajny-vstup/, právě jste všem ukázali, kde ten vstup je. Cesty k citlivým částem webu do robots.txt nepatří.

Kde musí soubor ležet

Robots.txt patří do kořene webu a nikam jinam. Pro doménu www.vas-eshop.cz to znamená adresu https://www.vas-eshop.cz/robots.txt. V podsložce ho roboti hledat nebudou, takže soubor na adrese vas-eshop.cz/stranky/robots.txt je jen obyčejný textový soubor bez jakéhokoli účinku.

Pravidla platí vždy jen pro tu kombinaci protokolu, domény a portu, na které soubor leží. To v praxi mate nejčastěji u subdoménblog na blog.vas-eshop.cz se řídí vlastním souborem, ne tím z hlavní domény.

Adresa souboru Platí pro Neplatí pro
https://vas-eshop.cz/robots.txt Všechny stránky a složky na https://vas-eshop.cz/ https://www.vas-eshop.cz/, http://vas-eshop.cz/, blog.vas-eshop.cz
https://blog.vas-eshop.cz/robots.txt Jen subdoménu blog.vas-eshop.cz Hlavní doménu i ostatní subdomény
https://vas-eshop.cz/slozka/robots.txt Nic. Roboti soubory v podsložkách nehledají. Vše
https://vas-eshop.cz:8181/robots.txt Jen obsah na portu 8181 Standardní https://vas-eshop.cz/

K tomu tři technické podmínky, na kterých Google trvá: soubor se musí jmenovat přesně robots.txt, musí být uložený v kódování UTF-8 a na webu smí být jen jeden. Maximální velikost, kterou Google zpracuje, je 500 KiB — co je za tímto limitem, ignoruje.

💡

Pište v poznámkovém bloku, ne ve Wordu

Textové procesory ukládají soubory ve vlastním formátu a doplňují znaky, které tam nepatří — typicky české uvozovky „takhle". Robot pak řádek nepřečte. Použijte Poznámkový blok, TextEdit nebo jakýkoli editor kódu. Na hostovaných platformách typu Shoptet, Wix nebo Blogger soubor většinou needitujete přímo, ale přes nastavení v administraci.

Čtyři řádky, které stačí znát

Google podporuje čtyři pole. Nic jiného tam nehledejte a nic jiného tam nepište — ostatní řádky se ignorují.

Řádek Co dělá
User-agent: Určuje, kterého robota se následující pravidla týkají. Začíná každou skupinu. Hvězdička znamená „všichni roboti".
Disallow: Cesta, kterou robot nesmí procházet. Musí začínat lomítkem. Pokud jde o složku, končí lomítkem.
Allow: Výjimka ze zákazu. Používá se, když chcete v zakázané složce něco přece jen povolit.
Sitemap: Úplná adresa mapy webu včetně https://. Nepatří k žádné skupině, může jich být víc.

Skupina začíná řádkem User-agent a pokračuje pravidly pod ním. Skupiny od sebe oddělte prázdným řádkem — je to přehlednější. Znak # uvozuje komentář a všechno za ním se ignoruje, takže si do souboru klidně pište poznámky pro sebe i pro kolegy.

robots.txt — okomentovaný příklad

# Pravidla pro všechny roboty User-agent: * Disallow: /kosik/ Disallow: /prihlaseni/ Disallow: /vyhledavani/ # Googlebot potřebuje CSS a JavaScript, jinak stránku nevykreslí User-agent: Googlebot Disallow: /kosik/ Allow: /assets/ Sitemap: https://www.vas-eshop.cz/sitemap.xml

Pozor na jeden detail: Googlebot se řídí jen svojí skupinou. Zákazy z obecné skupiny pro něj neplatí, protože specifická a obecná skupina se nikdy neslučují. Co má platit pro Googlebota, musí být v jeho skupině zopakované.

Na velikosti písmen záleží — ale jen u cest. Názvy polí jsou na velikost písmen citlivé nejsou, takže User-agent i user-agent fungují stejně. Cesta ale ano: Disallow: /soubor.html zablokuje /soubor.html, ale nikoli /Soubor.html.

Jak Google pravidla vyhodnocuje

Tohle je část, kde vzniká většina omylů. Platí tři principy.

  • 1

    Každý robot čte jen jednu skupinu

    Robot si najde skupinu s nejkonkrétnějším odpovídajícím jménem a ostatní ignoruje. Když v souboru existuje skupina pro Googlebot i obecná skupina pro *, Googlebot přečte tu svoji a obecnou přeskočí. Pořadí skupin v souboru přitom nehraje roli.

  • 2

    Víc skupin pro stejného robota se sloučí

    Pokud stejného robota uvedete v souboru dvakrát, Google si obě skupiny vnitřně spojí do jedné. Skupina pro konkrétního robota a obecná skupina se ale nesloučí nikdy.

  • 3

    Vyhrává delší pravidlo, při shodě to volnější

    Když se na jednu adresu hodí zákaz i povolení, rozhoduje délka zapsané cesty — delší je konkrétnější a vyhrává. Pokud jsou obě stejně dlouhé, Google zvolí to méně omezující, tedy povolení.

Adresa Pravidla v souboru Co se použije
/stranka Allow: /s
Disallow: /
Allow: /s — cesta je delší, tedy konkrétnější
/slozka/stranka Allow: /slozka
Disallow: /slozka
Allow — při shodné délce vyhrává volnější pravidlo
/stranka.htm Allow: /stranka
Disallow: /*.htm
Disallow — vzor sedí na delší část adresy
/ (úvodní stránka) Allow: /$
Disallow: /
Allow: /$ — přesná shoda na kořen je konkrétnější

Hvězdička a dolar

V cestách můžete používat dva zástupné znaky. Hvězdička * zastupuje libovolný počet libovolných znaků. Dolar $ označuje konec adresy. Obojí funguje u Allow i Disallow, ale ne u Sitemap.

Nejčastější omyl je předpokládat, že zápis /ryby zablokuje jen složku /ryby/. Nezablokuje. Zablokuje všechno, co tímto řetězcem začíná.

Disallow: /ryby

Sedí na jakoukoli cestu, která začíná řetězcem /ryby — včetně slov, která na něj jen navazují.

Zablokuje

  • /ryby
  • /ryby.html
  • /ryby/losos.html
  • /rybykaprovite
  • /ryby.php?id=cokoliv

Nezablokuje

  • /Ryby.html
  • /morske-ryby
  • /?id=ryby
  • /katalog/ryby

Disallow: /ryby/

Lomítko na konci omezuje pravidlo výhradně na obsah dané složky.

Zablokuje

  • /ryby/
  • /ryby/losos.html
  • /ryby/?id=cokoliv

Nezablokuje

  • /ryby
  • /ryby.html
  • /katalog/ryby/

Disallow: /*.pdf$

Dolar znamená, že adresa musí uvedeným řetězcem skutečně končit. Cokoli za ním — třeba parametr — shodu ruší.

Zablokuje

  • /navod.pdf
  • /soubory/katalog.pdf

Nezablokuje

  • /navod.pdf?verze=2
  • /navod.pdf/
  • /NAVOD.PDF

Bez dolaru na konci by /*.pdf zabralo i adresy, kde je přípona uprostřed. Pokud tedy chcete zablokovat opravdu jen soubory daného typu, dolar tam patří.

Kuchařka hotových pravidel

Následující pravidla vycházejí z dokumentace Google a dají se použít rovnou. Než něco zkopírujete, přečtěte si popis — polovina zásahů do robots.txt, které opravujeme u nových klientů, vznikla zkopírováním pravidla bez pochopení, co dělá.

Povolit celý web

Nejběžnější stav. Prázdný Disallow znamená, že nic není zakázané. Funguje stejně, jako kdyby soubor neexistoval.

User-agent: * Disallow:

Zakázat celý web

Patří na testovací a vývojové weby. Na ostrém webu je to nejdražší překlep v SEO. Adresy se navíc mohou objevit ve výsledcích i tak — jen bez obsahu.

User-agent: * Disallow: /

Zakázat složku i s obsahem

Lomítko na konci je povinné, jinak pravidlo zabere i adresy, které jen začínají stejným řetězcem.

User-agent: * Disallow: /kosik/ Disallow: /prihlaseni/

Zakázat jednu konkrétní stránku

Uveďte celou cestu tak, jak vypadá v prohlížeči, včetně přípony.

User-agent: * Disallow: /stara-akce.html

Zakázat vše kromě jedné složky

Kombinace zákazu a výjimky. Roboti se dostanou pouze do složky /verejne/.

User-agent: * Disallow: / Allow: /verejne/

Pustit dovnitř jen jednoho robota

Web projde pouze uvedený robot, všichni ostatní mají zákaz. Hodí se výjimečně, ale někdy je to přesně to, co potřebujete.

User-agent: Googlebot-News Allow: / User-agent: * Disallow: /

Zakázat jednoho robota, ostatní pustit

Typické řešení pro otravné roboty, kteří zatěžují server a nic vám nepřinášejí.

User-agent: Otravnybot Disallow: / User-agent: * Allow: /

Zakázat určitý typ souborů

Dolar na konci zajistí, že se pravidlo nechytne na adresy s parametry. Bez něj zabere víc, než čekáte.

User-agent: Googlebot Disallow: /*.xls$

Skrýt obrázky před Google Images

Zablokuje všechny obrázky, včetně zobrazení v Google Discover. U e-shopu si to promyslete — obrázky produktů bývají zdroj návštěv.

User-agent: Googlebot-Image Disallow: /

Sloučit víc robotů do jedné skupiny

Když mají mít dva roboti stejná pravidla, uveďte je nad sebe. Soubor je kratší a udržovatelnější.

User-agent: Googlebot User-agent: Storebot-Google Allow: /produkty/ Disallow: /
💡

Hvězdička neplatí na reklamní roboty AdsBot

Skupina User-agent: * se vztahuje na všechny roboty kromě reklamních AdsBot. Ty musíte uvést jménem. Je to záměr — jinak by chybně nastavený robots.txt mohl shodit kontrolu kvality vašich reklam.

Nasazení a test

Od napsání souboru k funkčnímu nastavení vedou čtyři kroky. Vynechat se nedá ani jeden.

  • 1

    Vytvořte soubor

    V textovém editoru, s názvem robots.txt a v kódování UTF-8. Přidejte komentáře, ať za rok víte, proč tam které pravidlo je.

  • 2

    Nahrajte ho do kořene webu

    Způsob závisí na hostingu — FTP, správce souborů, administrace platformy. Když se do kořene nedostanete, obraťte se na správce domény nebo hostingu.

  • 3

    Ověřte, že je veřejně dostupný

    Otevřete anonymní okno prohlížeče a zadejte adresu vasedomena.cz/robots.txt. Musíte vidět obsah souboru přesně tak, jak jste ho uložili.

  • 4

    Zkontrolujte ho v Search Console

    Přehled robots.txt v Google Search Console ukáže, jestli Google soubor načetl, kdy naposledy a jestli v něm nenašel chybu. Vývojáři mohou navíc použít otevřenou knihovnu robotstxt, se kterou Google pravidla vyhodnocuje, a testovat lokálně.

Jak soubor později měnit

Postup je nudný a přesně tak to má být. Stáhněte aktuální verzi, upravte ji, nahrajte zpátky. Stáhnout ji můžete prostým zkopírováním z prohlížeče, z přehledu robots.txt v Search Console, nebo příkazem:

terminál

curl https://www.vas-eshop.cz/robots.txt -o robots.txt

Stáhne aktuální robots.txt do souboru ve vašem počítači. Po úpravě ho nahrajte zpět do kořene webu pod stejným názvem.

Google si obsah souboru ukládá do mezipaměti a běžně ho obnovuje jednou za 24 hodin. Když potřebujete, aby si změnu načetl dřív — třeba jste omylem zakázali celý web — použijte v přehledu robots.txt funkci pro vyžádání opětovného načtení.

Pokud nemáte oprávnění nahrávat soubory do kořene domény, změnu za vás musí udělat její správce. Typický případ: váš web běží na adrese subdomena.example.cz/vas-web/, ale robots.txt patří majiteli domény example.cz.

Co se stane, když soubor nejde načíst

Roboti si robots.txt stahují pravidelně a na odpovědi serveru záleží víc, než většina lidí tuší. Tohle je tabulka, kterou byste měli znát, než začnete ladit server.

Odpověď serveru Jak se Google zachová
2xx — v pořádku Zpracuje soubor tak, jak ho server vrátil.
3xx — přesměrování Projde nejméně pět přesměrování. Pokud ani pak soubor nenajde, chová se, jako by vrátil 404. Přesměrování přes JavaScript nebo meta refresh nesleduje vůbec.
4xx — chyba na straně klienta Kromě kódu 429 to bere tak, že žádný robots.txt neexistuje. Tedy: nic není zakázané. Kódy 401 a 403 nepoužívejte na omezování procházení, na rychlost procházení nemají vliv.
5xx — chyba serveru Prvních 12 hodin přestane web procházet. Dalších 30 dní použije poslední funkční verzi souboru. Když chyba trvá déle a web je jinak dostupný, chová se, jako by soubor neexistoval.
⚠️

Chyba 5xx na robots.txt zastaví procházení celého webu

Nejde o teorii. Když server u robots.txt vrací chybu, Google na 12 hodin přestane procházet všechno ostatní. Do monitoringu dostupnosti proto patří i tahle jedna adresa, ne jen úvodní stránka.

Šest chyb, které vidíme nejčastěji

Tenhle výčet vychází z auditů, které děláme na začátku spolupráce. Pořadí odpovídá tomu, jak často na chyby narážíme.

Chyba

Zákaz z testovacího webu zůstal v ostrém provozu

Vývojáři web zaheslují a zakážou roboty. Při spuštění se robots.txt zapomene přepsat a e-shop je pro Google neviditelný. Kontrolujte ho hned první den po nasazení.

# Tohle na ostrém webu být nesmí User-agent: * Disallow: /

Chyba

Zákaz stránky, která má značku noindex

Klasika. Chcete stránku dostat z výsledků, tak jí dáte noindex a pro jistotu ji zakážete i v robots.txt. Jenže když ji robot nesmí načíst, značku nikdy nepřečte. Stránka v indexu zůstane. Zvolte jedno, ne obojí.

# Chcete odindexovat? Nechte robota dovnitř # a použijte meta robots noindex.

Chyba

Blokované CSS a JavaScript

Google stránku vykresluje stejně jako prohlížeč. Když mu zakážete soubory se vzhledem a skripty, uvidí rozbitou stránku a podle toho ji taky vyhodnotí. Složky se šablonou nechte přístupné.

User-agent: Googlebot Allow: /assets/ Allow: /*.css$ Allow: /*.js$

Chyba

Chybějící lomítko na konci složky

Zápis Disallow: /akce nezablokuje jen složku /akce/, ale i kategorii /akce-jaro nebo článek /akce-a-slevy.html. U e-shopu tak jde snadno odstřihnout celá skupina výdělečných stránek.

# Špatně: Disallow: /akce Disallow: /akce/

Chyba

Očekávání od direktivy Crawl-delay

Řádek Crawl-delay: 10 se v českých šablonách objevuje pořád. Google ho ignoruje. Pokud vás roboti zatěžují, řešte to na straně serveru nebo přes nastavení rychlosti procházení, ne tímhle řádkem.

# Google tenhle řádek přeskočí: # Crawl-delay: 10

Chyba

Plošná blokace parametrů ve filtrech

Zablokovat kombinace filtrů dává smysl. Zablokovat všechny adresy s otazníkem už ne — přijdete i o stránkování, řazení a další adresy, které mají v indexu co dělat. Nejdřív se podívejte do logů a Search Console, co roboti skutečně procházejí.

# Nebezpečné plošné pravidlo: # Disallow: /*?

A co roboti od AI

Robots.txt neřídí jen vyhledávače. Stejným souborem a stejnou syntaxí se řídí i roboti, kteří sbírají obsah pro AI nástroje — mají jen vlastní jména v poli User-agent. Když je zablokujete, váš obsah se do odpovědí těchto nástrojů nedostane a zmizí i šance na citaci a zmínku značky.

To je strategické rozhodnutí, ne technický detail. Vydavatel placeného obsahu má důvod roboty AI odstřihnout. E-shop, který chce být vidět tam, kde dnes lidé hledají, spíš ne. Než něco zakážete, projděte si, co který robot dělá — u samotného Googlu je rozdíl mezi Googlebotem, který obsluhuje vyhledávání včetně AI Overviews, a robotem Google-Extended, který se týká trénování a dalších AI produktů.

💡

Jména AI robotů se mění rychleji než dokumentace

Seznamy user-agentů, které kolují po internetu, bývají zastaralé. Před zásahem do souboru si aktuální jméno robota ověřte přímo v dokumentaci jeho provozovatele.

Nejčastější otázky k robots.txt

Musí mít každý web robots.txt?

Nemusí. Když soubor chybí, Google to bere tak, že je povolené všechno — a u malého webu je to většinou v pořádku. Praktičtější je ale mít ho i tak, aspoň kvůli odkazu na mapu webu a kvůli tomu, že se pak nebudete divit, co v něm jednou přibude.

Jak rychle se změna projeví?

Google si obsah souboru pamatuje zpravidla 24 hodin. Pokud potřebujete změnu promítnout dřív, vyžádejte si opětovné načtení v přehledu robots.txt v Google Search Console.

Zmizí zakázaná stránka z výsledků vyhledávání?

Nemusí. Robots.txt zakazuje procházení, ne indexaci. Pokud na adresu vedou odkazy, může se ve výsledcích objevit i bez popisku.

Na odstranění z indexu použijte značku noindex, ochranu heslem nebo stránku smažte. A hlavně — stránku, kterou chcete odindexovat, nesmíte současně zakázat v robots.txt. Robot by se k té značce nikdy nedostal.

Platí robots.txt z hlavní domény i pro subdoménu?

Neplatí. Každá subdoména potřebuje vlastní soubor ve svém kořeni. Stejně tak se pravidla neváží mezi protokoly http a https ani mezi různými porty.

Můžu mít v souboru víc map webu?

Ano, počet není omezený. Každou uveďte na samostatném řádku a vždy jako úplnou adresu včetně protokolu. Mapa webu ani nemusí ležet na stejné doméně jako robots.txt.

Co když v souboru udělám chybu v syntaxi?

Řádky, kterým Google nerozumí, jednoduše přeskočí a použije zbytek. To zní smířlivě, ale je to zrádné: chybně zapsané pravidlo se tváří, že tam je, přitom neplatí.

Proto po každé úpravě zkontrolujte soubor v přehledu robots.txt v Search Console.

🤖

Nejste si jistí, co váš robots.txt skutečně dělá?

Projdeme ho s vámi spolu s celým technickým základem webu a řekneme rovnou, co dělá dobře a co vás stojí návštěvnost. 30 minut, online, zdarma.

Mgr. Michal Binka, SEO specialista a konzultant

Autor článku

Mgr. Michal Binka

SEO specialista a konzultant, zakladatel SEO PRAKTICKY

SEO dělá přes dvacet let — od dob, kdy se meta keywords ještě braly vážně a robots.txt psal každý ručně. Napsal tři knihy o SEO, sedí v metodické skupině Shoptetu a vede tým specialistů v brněnském Technologickém parku.

Nemá kouzelné tlačítko na zapnutí SEO a negarantuje pozice. Garantuje proces, transparentnost a čísla, která si každý může ověřit.

  • 23+ let v SEO
  • Autor 3 knih o SEO
  • Zlatý Shoptet Partner
  • Metodická skupina Shoptetu pro SEO
  • Certifikovaný Collabim specialista

Zdroje

Dokumentace Google se průběžně mění. U každého zdroje je uvedeno datum poslední aktualizace k datu vydání článku — než podle něj zasáhnete do souboru, ověřte si aktuální znění přímo u zdroje.