Modul 3 · 3.3
Slovenčina
robots.txt: čo blokovať a čo nie
Modul 3: Technický základ stránky · Čas čítania: 13 minút
Cieľ lekcie: Po tejto lekcii dokážete prečítať a napísať súbor robots.txt, sami vypočítať, či Googlebot smie na danú adresu, vysvetliť, čo sa stane pri chýbajúcom alebo nedostupnom súbore, a viete, prečo robots.txt nie je zabezpečenie ani noindex.
Kľúčové pojmy: robots.txt (RFC 9309), crawler, skupina, User-agent, Disallow, Allow, najdlhšia zhoda, rovnaká dĺžka (vyhráva Allow), * a $, Sitemap:, stavový kód robots.txt (4xx, 5xx), 500 KiB, 24 hodín v cache, žiadne zabezpečenie, žiadny noindex, AI crawlery (Google-Extended, GPTBot)
Tabuľka pri vchodových dverách
Súbor robots.txt je obyčajný textový súbor v koreňovom priečinku vašej stránky, vždy na tej istej adrese: https://www.example.com/robots.txt. Slušný crawler (lekcia 1.2) si tento súbor najprv vyžiada a prečíta si, ktoré časti stránky nesmie navštíviť. Je to tabuľka pri vchodových dverách, nie zámok: Googlebot a Bingbot ju rešpektujú, no robot so zlými úmyslami si tabuľku jednoducho prečíta a vojde ďalej.
Od roku 2022 je tento protokol oficiálnym internetovým štandardom: RFC 9309. Google navyše presne popisuje, ako Googlebot súbor číta. Oba zdroje v tejto lekcii využívame.
Niekoľko pevných pravidiel:
- Súbor je v koreňovom priečinku hostiteľa. Súbor robots.txt v
/blog/robots.txtsa nečíta. - Platí len pre daného hostiteľa, daný protokol a daný port.
https://www.example.com/robots.txtneplatí prehttps://shop.example.com/; ten potrebuje vlastný súbor. - Je to čistý text v kódovaní UTF-8.
Ako je súbor zostavený
User-agent: *
Disallow: /winkelmand/
Disallow: /zoeken
Allow: /zoeken/tips
User-agent: Googlebot
Disallow: /concepten/
Sitemap: https://www.example.com/sitemap.xmlSúbor sa skladá zo skupín. Skupina začína jedným alebo viacerými riadkami User-agent: a za nimi nasledujú pravidlá Disallow: (nenavštevovať) a Allow: (navštíviť smie). Cesta za Disallow: je začiatok adresy: Disallow: /zoeken blokuje /zoeken, /zoeken?q=rozen aj /zoekenmachine, pretože všetky začínajú na /zoeken.
Riadok Sitemap: nepatrí do žiadnej skupiny a oznamuje, kde je vaša sitemap (lekcia 3.4). Google vyžaduje úplnú adresu s https:// a názvom hostiteľa.
Disallow: bez cesty neblokuje nič. Disallow: / blokuje všetko.
Ktorá skupina platí?
Crawler si vyberie jednu skupinu: tú s najkonkrétnejším názvom, ktorý mu zodpovedá. Googlebot teda nasleduje skupinu User-agent: Googlebot, ak existuje, a skupinu * potom úplne ignoruje. V príklade vyššie teda Googlebot smie do /winkelmand/: toto pravidlo je len v skupine *. Ide o jednu z najčastejších chýb: kto vytvorí samostatnú skupinu pre Googlebot, musí v nej zopakovať všetky pravidlá, ktoré majú platiť aj pre Google.
Názov nerozlišuje veľké a malé písmená (googlebot = Googlebot). Ak sú v súbore dve skupiny pre ten istý crawler, Google ich spojí.
Ktoré pravidlo vyhrá?
V rámci skupiny môže adresa spadať pod viacero pravidiel. Vtedy platí:
- Vyhráva najdlhšie zhodné pravidlo (najkonkrétnejšia cesta).
- Ak sú
AllowaDisallowpresne rovnako dlhé, vyhrávaAllow. Google to nazýva "najmenej obmedzujúce pravidlo".
Dva znaky majú špeciálny význam:
| Znak | Význam | Príklad | Zasiahne | Nezasiahne |
|---|---|---|---|---|
* | žiadny alebo viac ľubovoľných znakov | Disallow: /*?sessie= | /rozen?sessie=12 | /rozen?kleur=rood |
$ | koniec adresy | Disallow: /*.pdf$ | /folder.pdf | /folder.pdf?v=2 |
Príklad výpočtu so skupinou * z ukážky vyššie, pre crawler Bingbot (ktorý nemá vlastnú skupinu):
| Adresa | Zhodné pravidlá | Výsledok |
|---|---|---|
/winkelmand/ | Disallow: /winkelmand/ | nesmie |
/zoeken/tips | Disallow: /zoeken (7 znakov) a Allow: /zoeken/tips (12) | smie: vyhráva najdlhšie |
/zoeken?q=rozen | Disallow: /zoeken | nesmie |
/bruidsboeketten | žiadne | smie |
/robots.txt | (vždy) | smie: samotný robots.txt je vždy povolený |
Keď súbor chýba alebo server zlyháva
Čo Google urobí, závisí od stavového kódu, ktorým váš server odpovie na /robots.txt:
| Odpoveď | Čo Google urobí |
|---|---|
| 200 (nájdené) | Prečíta pravidlá |
| Presmerovanie (301, 302) | Nasleduje aspoň päť krokov; potom to Google považuje za 404 |
| 4xx, napríklad 404 alebo 403 (okrem 429) | Akoby robots.txt neexistoval: všetko je povolené |
| 5xx alebo žiadne spojenie | Prvých 12 hodín Google stránku neprehľadáva a skúša to znova; potom až 30 dní používa poslednú dobrú verziu z cache. Ak chyba pretrváva aj potom a stránka inak funguje, Google sa správa, akoby robots.txt neexistoval |
Chýbajúci robots.txt teda nie je problém: všetko je povolené. Robots.txt, ktorý vracia chybu servera, problém je: Google vtedy dočasne prestane prehľadávať. RFC 9309 je v tomto ešte prísnejšie: pri nedostupnom súbore musí crawler predpokladať, že je zakázané všetko.
Ďalej:
- Google prečíta najviac 500 KiB; čo je za touto hranicou, ignoruje.
- Google si robots.txt zvyčajne uchováva v cache až 24 hodín. Zmena sa teda neprejaví hneď. V Search Console nájdete v časti Nastavenia prehľad robots.txt (robots.txt report): ktorú verziu Google naposledy načítal, s chybami a upozorneniami, a tlačidlo na opätovné načítanie.
- Google pozná len
User-agent,Allow,DisallowaSitemap. Pravidlá akoCrawl-delayaleboNoindexGooglebot ignoruje.
Čo robots.txt nerobí
Nie je to zabezpečenie
Váš robots.txt si môže prečítať ktokoľvek, aj ten, kto má zlé úmysly. Pravidlo Disallow: /beheer-oud/ práve ukazuje, kde je niečo zaujímavé. Hovorí to aj samotné RFC 9309: pravidlá nie sú formou zabezpečenia prístupu. Skutočne niečo ochrániť môžete heslom alebo tak, že server prístup odmietne, napríklad pomocou .htaccess (pozrite Čítajte ďalej).
Nie je to noindex
Toto je najdôležitejšie ponaučenie. robots.txt riadi prehľadávanie, nie indexovanie (lekcia 1.3). Google doslova píše, že robots.txt nie je spôsob, ako udržať stránku mimo Google. Ak na zablokovanú adresu odkazujú iné stránky, adresa sa môže vo výsledkoch vyhľadávania napriek tomu objaviť, len bez popisu.
Ak chcete stránku udržať mimo výsledkov vyhľadávania, použite noindex (v <meta name="robots"> alebo v hlavičke X-Robots-Tag) alebo stránku chráňte heslom. A dajte si pozor na klasickú pascu: ak stránku s noindex zároveň zablokujete v robots.txt cez Disallow, Google stránku nemôže navštíviť, a teda noindex nikdy neprečíta.
Neblokujte súčasti, ktoré Google potrebuje
Neblokujte priečinky so štýlmi, skriptami alebo obrázkami, ktoré vaša stránka potrebuje na správne zobrazenie. Google si vašu stránku prezerá tak ako prehliadač; bez týchto súborov jej Google rozumie horšie.
AI crawlery
Čoraz viac firiem zhromažďuje webové stránky pre umelú inteligenciu. Niektoré z nich môžete v robots.txt osloviť:
Google-Extendednie je samostatný robot, ale názov v robots.txt, ktorým určíte, či Google smie používať váš obsah na trénovanie modelov Gemini a na grounding. Google píše, že to nemá vplyv na zaradenie ani pozíciu vo Vyhľadávaní Google.GPTBotod OpenAI zhromažďuje stránky, ktoré sa môžu použiť na trénovanie modelov.OAI-SearchBotslúži pre vyhľadávanie v ChatGPT: ak ho zablokujete, vaša stránka sa v odpovediach vyhľadávania ChatGPT nezobrazí.
User-agent: GPTBot
Disallow: /Či to chcete, je vaša voľba, nie technická nevyhnutnosť. Ak omylom zablokujete vyhľadávacieho robota (Googlebot, Bingbot, OAI-SearchBot), budete tam horšie viditeľní.
V praxi: kde je váš robots.txt?
- AI Builder od WebOké pri publikovaní sám vytvorí robots.txt s
User-agent: *,Allow: /a riadkomSitemap:. Ak stránku nastavíte na neindexovanie alebo ide o bezplatnú ukážku, je v ňomDisallow: /. - WordPress vytvára virtuálny robots.txt s odkazom na sitemap. Ak do webového priečinka vložíte vlastný súbor
robots.txt, má prednosť. - Vlastná stránka na hostingovom balíku: súbor
robots.txtvložíte do webového priečinka (v DirectAdminpublic_html) cez Web FTP alebo FTP.
U iných poskytovateľov to funguje podobne: súbor musí byť vždy dostupný na /robots.txt vášho hostiteľa.
Zhrnutie
- robots.txt je na
/robots.txtkaždého hostiteľa a hovorí slušným crawlerom, čo nesmú navštíviť. - Crawler nasleduje jednu skupinu (najkonkrétnejší názov, inak
*). V rámci skupiny vyhráva najdlhšie pravidlo; pri rovnakej dĺžke vyhrávaAllow. - 404 znamená "všetko je povolené", chyba servera spôsobí, že Google dočasne prestane prehľadávať. Google číta 500 KiB a uchováva súbor v cache až 24 hodín.
- robots.txt nie je zabezpečenie ani noindex. Stránku s
noindexneblokujte v robots.txt. - AI crawlery ako
GPTBota názovGoogle-Extendedmôžete nastaviť samostatne, bez vplyvu na Vyhľadávanie Google.
Kvíz
Úloha
Úloha A3.3: Kontrola vášho súboru robots.txt. Zadajte svoju doménu a k tomu tri adresy z vlastnej stránky (napríklad domovskú stránku, stránku produktu a váš košík alebo stránku vyhľadávania) a pri každej adrese vaše očakávanie: smie ju Googlebot prehľadávať, áno alebo nie? Program načíta váš robots.txt, pozrie sa na stavový kód, veľkosť, skupiny a riadok Sitemap: a pre každú adresu prepočíta, čo Googlebot podľa pravidiel z tejto lekcie smie. Zodpovedá to vášmu očakávaniu? Nemáte vlastnú stránku? Použite www.wikipedia.org.
Čítajte ďalej
Postupy v týchto článkoch platia pre panely WebOké; u iných poskytovateľov to funguje podobne.
- Návod na DirectAdmin 11.1: Otvorenie Web FTP: zložky vo vašom balíku
- Blokovanie súborov cez .htaccess, napríklad plugin-googlemap2-proxy.php
- Návod na DirectAdmin 11.4: Zobrazenie a úprava skrytých súborov ako .htaccess
- Google Search Central, Ako Google interpretuje robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt
- Google Search Central, Úvod do 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, Prehľad crawlerov (Google-Extended): https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers
- OpenAI, Prehľad crawlerov (GPTBot, OAI-SearchBot): https://developers.openai.com/api/docs/bots
