Modul 3 · 3.3
robots.txt: co blokovat a co ne
Modul 3: Technický základ stránky · Doba čtení: 13 minut
Cíl lekce: Po této lekci umíte přečíst a napsat soubor robots.txt, sami spočítat, zda Googlebot smí na určitou adresu, vysvětlit, co se stane, když soubor chybí nebo je nedostupný, a víte, proč robots.txt není zabezpečení ani noindex.
Klíčové pojmy: robots.txt (RFC 9309), crawler, skupina, User-agent, Disallow, Allow, nejdelší shoda, stejná délka (vyhrává Allow), * a $, Sitemap:, stavový kód souboru robots.txt (4xx, 5xx), 500 KiB, 24 hodin v mezipaměti, žádné zabezpečení, žádný noindex, AI crawlery (Google-Extended, GPTBot)
Cedulka u vchodových dveří
Soubor robots.txt je obyčejný textový soubor v kořenové složce Vašeho webu, vždy na stejné adrese: https://www.example.com/robots.txt. Slušný crawler (lekce 1.2) si tento soubor vyžádá jako první a přečte si, které části webu nesmí navštívit. Je to cedulka u vchodových dveří, ne zámek: Googlebot a Bingbot ji respektují, ale robot se zlými úmysly si cedulku prostě přečte a jde dál.
Od roku 2022 je protokol oficiálním internetovým standardem: RFC 9309. Google navíc přesně popisuje, jak Googlebot soubor čte. V této lekci vycházíme z obou zdrojů.
Několik pevných pravidel:
- Soubor je v kořenové složce hostitele. Soubor robots.txt v
/blog/robots.txtse nečte. - Platí pouze pro daného hostitele, protokol a port.
https://www.example.com/robots.txtneplatí prohttps://shop.example.com/; ten potřebuje vlastní soubor. - Je to prostý text v kódování UTF-8.
Jak je soubor sestaven
User-agent: *
Disallow: /winkelmand/
Disallow: /zoeken
Allow: /zoeken/tips
User-agent: Googlebot
Disallow: /concepten/
Sitemap: https://www.example.com/sitemap.xmlSoubor se skládá ze skupin. Skupina začíná jedním nebo více řádky User-agent: a po nich následují pravidla Disallow: (nenavštěvovat) a Allow: (navštěvovat). Cesta za Disallow: je začátek adresy: Disallow: /zoeken blokuje /zoeken, /zoeken?q=rozen a také /zoekenmachine, protože všechny začínají na /zoeken.
Řádek Sitemap: nepatří k žádné skupině a říká, kde je Vaše sitemap (lekce 3.4). Google vyžaduje úplnou adresu včetně https:// a názvu hostitele.
Pravidlo Disallow: bez cesty neblokuje nic. Disallow: / blokuje vše.
Která skupina platí?
Crawler si vybere jednu skupinu: tu s nejkonkrétnějším názvem, který mu odpovídá. Googlebot se tedy řídí skupinou User-agent: Googlebot, pokud existuje, a skupinu * pak zcela ignoruje. V příkladu výše tedy Googlebot do /winkelmand/ (nákupní košík) smí: toto pravidlo je pouze ve skupině *. Jde o jednu z nejčastějších chyb: kdo vytvoří samostatnou skupinu pro Googlebot, musí v ní zopakovat všechna pravidla, která mají platit i pro Google.
Na velikosti písmen v názvu nezáleží (googlebot = Googlebot). Pokud jsou v souboru dvě skupiny pro stejný crawler, Google je sloučí.
Které pravidlo vyhrává?
V rámci skupiny může jedna adresa spadat pod více pravidel. Pak platí:
- Vyhrává nejdelší odpovídající pravidlo (nejkonkrétnější cesta).
- Jsou-li
AllowaDisallowpřesně stejně dlouhé, vyhráváAllow. Google tomu říká „nejméně omezující pravidlo“.
Dva znaky mají zvláštní význam:
| Znak | Význam | Příklad | Zasáhne | Nezasáhne |
|---|---|---|---|---|
* | žádný nebo více libovolných znaků | Disallow: /*?sessie= | /rozen?sessie=12 | /rozen?kleur=rood |
$ | konec adresy | Disallow: /*.pdf$ | /folder.pdf | /folder.pdf?v=2 |
Příklad výpočtu se skupinou * z ukázky výše, pro crawler Bingbot (který nemá vlastní skupinu):
| Adresa | Odpovídající pravidla | Výsledek |
|---|---|---|
/winkelmand/ | Disallow: /winkelmand/ | nesmí |
/zoeken/tips | Disallow: /zoeken (7 znaků) a Allow: /zoeken/tips (12) | smí: vyhrává nejdelší |
/zoeken?q=rozen | Disallow: /zoeken | nesmí |
/bruidsboeketten | žádná | smí |
/robots.txt | (vždy) | smí: samotný robots.txt je vždy povolen |
Když soubor chybí nebo server selhává
Co Google udělá, závisí na stavovém kódu, kterým Váš server odpoví na /robots.txt:
| Odpověď | Co Google udělá |
|---|---|
| 200 (nalezeno) | Přečte pravidla |
| Přesměrování (301, 302) | Následuje alespoň pět kroků; potom s tím Google zachází jako s 404 |
| 4xx, například 404 nebo 403 (kromě 429) | Jako by žádný robots.txt neexistoval: vše je povoleno |
| 5xx nebo žádné spojení | Prvních 12 hodin Google web neprochází a zkouší to znovu; potom až 30 dní používá poslední dobrou verzi z mezipaměti. Pokud chyba trvá i potom a web jinak funguje, Google se chová, jako by robots.txt neexistoval |
Chybějící robots.txt tedy problém není: pak je povoleno vše. Soubor robots.txt, který vrací chybu serveru, ale problém je: Google pak dočasně přestane web procházet. RFC 9309 je v tom ještě přísnější: u nedostupného souboru musí crawler předpokládat, že je vše zakázáno.
Dále:
- Google čte nejvýše 500 KiB; co následuje dál, ignoruje.
- Google obvykle uchovává robots.txt v mezipaměti až 24 hodin. Změna se tedy neprojeví okamžitě. V Search Console najdete v Nastavení přehled robots.txt (robots.txt report): kterou verzi Google naposledy stáhl, s chybami a upozorněními, a tlačítko pro opětovné stažení.
- Google zná pouze
User-agent,Allow,DisallowaSitemap. Pravidla jakoCrawl-delayneboNoindexGooglebot ignoruje.
Co robots.txt nedělá
Není to zabezpečení
Váš robots.txt si může přečíst kdokoli, i ten, kdo má zlé úmysly. Pravidlo Disallow: /beheer-oud/ naopak ukazuje, kde je něco zajímavého. RFC 9309 to říká samo: pravidla nejsou žádnou formou zabezpečení přístupu. Skutečně chránit obsah můžete heslem nebo tím, že server přístup odmítne, například pomocí .htaccess (viz Další čtení).
Není to noindex
Toto je nejdůležitější poučení. robots.txt řídí procházení, ne indexování (lekce 1.3). Google doslova píše, že robots.txt není způsob, jak udržet stránku mimo Google. Pokud na zablokovanou adresu odkazují jiné weby, může se adresa ve výsledcích vyhledávání přesto objevit, jen bez popisu.
Chcete-li stránku udržet mimo výsledky vyhledávání, použijte noindex (v <meta name="robots"> nebo v hlavičce X-Robots-Tag) nebo stránku ochraňte heslem. A pozor na klasickou past: pokud stránku s noindex zároveň zablokujete v robots.txt pomocí Disallow, Google ji nemůže navštívit, a tedy noindex nikdy nepřečte.
Neblokujte části, které Google potřebuje
Neblokujte složky se styly, skripty nebo obrázky, které Vaše stránka potřebuje ke správnému zobrazení. Google si stránku prohlíží tak, jak to dělá prohlížeč; bez těchto souborů jí rozumí hůř.
AI crawlery
Stále více firem shromažďuje webové stránky pro umělou inteligenci. Některé z nich můžete v robots.txt oslovit:
Google-Extendednení samostatný robot, ale název v robots.txt, kterým určujete, zda Google smí Váš obsah používat k trénování modelů Gemini a pro grounding. Google uvádí, že to nemá žádný vliv na zařazení ani pozici ve Vyhledávání Google.GPTBotod OpenAI shromažďuje stránky, které mohou být použity k trénování modelů.OAI-SearchBotslouží vyhledávací funkci ChatGPT: pokud ho zablokujete, Váš web se v odpovědích vyhledávání ChatGPT nezobrazí.
User-agent: GPTBot
Disallow: /Zda to chcete, je Vaše volba, ne technická nutnost. Pokud omylem zablokujete vyhledávacího robota (Googlebot, Bingbot, OAI-SearchBot), budete tam hůře k nalezení.
V praxi: kde je Váš robots.txt?
- AI Builder od WebOké při publikování sám vytvoří robots.txt s
User-agent: *,Allow: /a řádkemSitemap:. Pokud web nastavíte na neindexovat nebo jde o bezplatné demo, je v souboruDisallow: /. - WordPress vytváří virtuální robots.txt s odkazem na sitemap. Pokud do webové složky sami nahrajete soubor
robots.txt, má přednost. - Vlastní web na hostingovém balíčku: soubor
robots.txtnahrajete do webové složky (v DirectAdminpublic_html) přes Správce souborů nebo FTP.
U jiných poskytovatelů to funguje podobně: soubor musí být vždy dostupný na /robots.txt Vašeho hostitele.
Shrnutí
- robots.txt je na
/robots.txtkaždého hostitele a říká slušným crawlerům, co nesmějí navštívit. - Crawler se řídí jednou skupinou (nejkonkrétnější název, jinak
*). V rámci skupiny vyhrává nejdelší pravidlo; při stejné délce vyhráváAllow. - 404 znamená „vše je povoleno“, chyba serveru způsobí, že Google dočasně přestane procházet. Google čte 500 KiB a ukládá do mezipaměti až na 24 hodin.
- robots.txt není zabezpečení ani noindex. Stránku s
noindexv robots.txt neblokujte. - AI crawlery jako
GPTBota názevGoogle-Extendedmůžete řídit zvlášť, bez důsledků pro Vyhledávání Google.
Kvíz
Úkol
Úkol A3.3: Kontrola Vašeho souboru robots.txt. Zadejte svou doménu a k ní tři adresy ze svého webu (například domovskou stránku, stránku produktu a nákupní košík nebo stránku vyhledávání) a u každé adresy svůj odhad: smí ji Googlebot procházet, ano, nebo ne? Program stáhne Váš robots.txt, zkontroluje stavový kód, velikost, skupiny a řádek Sitemap: a u každé adresy spočítá, co Googlebot podle pravidel z této lekce smí. Odpovídá Váš odhad? Nemáte vlastní web? Použijte www.wikipedia.org.
Další čtení
Postupy v těchto článcích platí pro panely WebOké; u jiných poskytovatelů to funguje podobně.
- Příručka k DirectAdmin 11.1: Otevření Správce souborů: složky ve Vašem balíčku
- Blokování souborů přes .htaccess, například plugin-googlemap2-proxy.php
- Příručka k DirectAdmin 11.4: Zobrazení a úprava skrytých souborů jako .htaccess
- Google Search Central, Jak Google interpretuje specifikaci robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt
- Google Search Central, Úvod do souborů robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/intro
- RFC 9309, Robots Exclusion Protocol: https://www.rfc-editor.org/rfc/rfc9309.html
- Google, Přehled crawlerů (Google-Extended): https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers
- OpenAI, Přehled crawlerů (GPTBot, OAI-SearchBot): https://developers.openai.com/api/docs/bots
