Nová tištěná kniha o SEO
SEO Akademie Collabim
S láskou a vidinou klientů píše Collabim Nejpoužívanější český SEO nástroj

Jak Google interpretuje specifikaci robots.txt

Automatické vyhledávače společnosti Google podporují protokol REP (Robots Exclusion Protocol). To znamená, že před procházením webu si roboty Google stáhnou a rozeberou soubor robots.txt webu a získají informace o tom, které části webu mohou být procházeny. Protokol REP se nevztahuje na prohledávače společnosti Google, které jsou řízeny uživateli (například odběry kanálů), ani na prohledávače, které se používají ke zvýšení bezpečnosti uživatelů (například k analýze malwaru).

Na této stránce je popsán výklad zákona REP společností Google. Původní standard naleznete v dokumentu RFC 9309.

Je pro vás SEO zatím velká neznámá a chcete se dozvědět, co to obnáší? Vydali jsme knihu, která obsahuje všechny základní informace a postupy, které pro SEO budete potřebovat. V knize najdete vysvětlení základních SEO pojmů, metody pro optimalizaci nebo třeba i to, jak SEO vyhodnocovat. Chci knihu Základy SEO: Jasně a stručně >>

Co je soubor robots.txt

Pokud nechcete, aby procházející roboty přistupovaly k částem vašeho webu, můžete vytvořit soubor robots.txt s příslušnými pravidly. Soubor robots.txt je jednoduchý textový soubor obsahující pravidla o tom, které prohlížeče mohou přistupovat do kterých částí webu. Například soubor robots.txt pro stránku collabim.cz může vypadat takto:

# Tento soubor robots.txt řídí procházení adres URL pod https://collabim.cz.
# Všechny prohledávače mají zakázáno procházet soubory v adresáři „includes“, jako
# jsou soubory .css, .js, ale Google je potřebuje k vykreslování, takže je Googlebot smí
# procházet.
User-agent: *
Disallow: /includes/

User-agent: Googlebot
Allow: /includes/

Sitemap: https://collabim.cz/sitemap.xml

Pokud s robots.txt teprve začínáte, začněte s naším úvodem do robots.txt. Najdete zde také tipy pro vytvoření souboru robots.txt a rozsáhlý seznam často kladených otázek a odpovědí na ně.

Umístění souboru a rozsah platnosti

Soubor robots.txt musíte umístit do adresáře nejvyšší úrovně webu na podporovaném protokolu. Adresa URL souboru robots.txt rozlišuje (stejně jako ostatní adresy URL) malá a velká písmena. V případě vyhledávače Google jsou podporovány protokoly HTTP, HTTPS a FTP. V případě protokolů HTTP a HTTPS získávají prohlížeče soubor robots.txt pomocí nepodmíněného požadavku GET protokolu HTTP; v případě protokolu FTP používají prohlížeče standardní příkaz RETR (RETRIEVE) s použitím anonymního přihlášení.

Pravidla uvedená v souboru robots.txt se vztahují pouze na hostitele, protokol a číslo portu, kde je soubor robots.txt umístěn.

Příklady platných adres URL robots.txt

Následující tabulka obsahuje příklady adres URL robots.txt a cest URL, pro které jsou platné. První sloupec obsahuje adresu URL souboru robots.txt a druhý sloupec obsahuje domény, pro které by tento soubor robots.txt platil a pro které ne.

Příklady adres URL souboru Robots.txt
https://example.com/robots.txt To je obecný případ. Neplatí pro jiné subdomény, protokoly nebo čísla portů. Platí pro všechny soubory ve všech podadresářích na stejném hostiteli, protokolu a čísle portu.

Platí pro:

https://example.com/
https://example.com/folder/file

Neplatí pro:

https://other.example.com/
http://example.com/
https://example.com:8181/
https://www.example.com/robots.txt Soubor robots.txt na subdoméně je platný pouze pro tuto subdoménu.

Platí pro:

https://www.example.com/

Neplatí pro:

https://example.com/
https://shop.www.example.com/
https://www.shop.example.com/

https://example.com/folder/robots.txt Není platný soubor robots.txt. Prohledávače nekontrolují soubory robots.txt v podadresářích.
https://www.exämple.com/robots.txt IDN jsou ekvivalentní svým verzím s punycode. Viz také RFC 3492.

Platí pro:

https://www.exämple.com/
https://xn--exmple-cua.com/

Neplatí pro:

https://www.example.com/
ftp://example.com/robots.txt Platí pro:

ftp://example.com/

Neplatí pro:

https://example.com/
https://212.96.82.21/robots.txt Soubor robots.txt s IP adresou jako názvem hostitele je platný pouze pro procházení této IP adresy jako názvu hostitele. Není automaticky platný pro všechny webové stránky hostované na této IP adrese (i když je možné, že soubor robots.txt je sdílený, v takovém případě by byl k dispozici i pod sdíleným názvem hostitele).

Platí pro:

https://212.96.82.21/

Neplatí pro:

https://example.com/ 
(i když je umístěn na 212.96.82.21)
https://example.com:443/robots.txt Standardní čísla portů (80 pro HTTP, 443 pro HTTPS, 21 pro FTP) odpovídají jejich výchozím názvům hostitelů.

Platí pro:

https://example.com:443/
https://example.com/

Neplatí pro:

https://example.com:444/
https://example.com:8181/robots.txt Soubory Robots.txt na nestandardních číslech portů jsou platné pouze pro obsah zpřístupněný prostřednictvím těchto čísel portů.

Platí pro:

https://example.com:8181/

Neplatí pro:

https://example.com/

 

Zpracování chyb a stavových kódů HTTP

Při požadavku na soubor robots.txt ovlivňuje stavový kód HTTP v odpovědi serveru to, jak bude soubor robots.txt použit procházením společnosti Google. Následující tabulka shrnuje, jak robot Googlebot zachází se soubory robots.txt pro různé stavové kódy HTTP.

Zpracování chyb a stavových kódů HTTP
2xx (úspěch) Stavové kódy HTTP, které signalizují úspěch, přimějí vyhledávače Google zpracovat soubor robots.txt, jak jej poskytl server.
3xx (přesměrování) Google sleduje nejméně pět přesměrování podle definice RFC 1945 a poté se zastaví a považuje je za 404 pro robots.txt. To platí i pro všechny zakázané adresy URL v řetězci přesměrování, protože kvůli přesměrování nemohl procházet pravidla.

 

Google nesleduje logická přesměrování v souborech robots.txt (frames, JavaScript nebo přesměrování typu meta refresh).

4xx (chyby klienta) Prohlížeče Google považují všechny chyby 4xx kromě 429 za neexistenci platného souboru robots.txt. To znamená, že Google předpokládá, že neexistují žádná omezení procházení.

Nepoužívejte stavové kódy 401 a 403 pro omezení rychlosti procházení. Stavové kódy 4xx, kromě 429, nemají na rychlost procházení žádný vliv. Přečtěte si, jak omezit rychlost procházení..

5xx (chyby serveru) Protože server nemohl poskytnout jednoznačnou odpověď na požadavek robots.txt společnosti Google, společnost Google dočasně interpretuje chyby serveru 5xx a 429, jako by byl web zcela zakázán. Google se pokusí procházet soubor robots.txt, dokud nezíská stavový kód HTTP bez chyby serveru. Chyba 503 (služba není dostupná) vede k poměrně častému opakování pokusu. Pokud je soubor robots.txt nedostupný déle než 30 dní, použije Google poslední kopii souboru robots.txt uloženou v mezipaměti. Pokud je nedostupný, společnost Google předpokládá, že neexistují žádná omezení procházení.

Pokud potřebujete dočasně pozastavit procházení, doporučujeme pro každou adresu URL na webu zobrazit stavový kód 503 HTTP.

Pokud se Googlu podaří zjistit, že je web nesprávně nakonfigurován tak, aby v případě chybějících stránek vracel stavový kód 5xx místo 404, bude chybu 5xx z tohoto webu považovat za 404. Pokud například chybové hlášení na stránce, která vrací stavový kód 5xx, zní “Stránka nenalezena”, Google bude interpretovat stavový kód jako 404 (nenalezeno).

Další chyby Soubor robots.txt, který nelze načíst z důvodu problémů s DNS nebo sítí, jako jsou časové limity, neplatné odpovědi, resetovaná nebo přerušená připojení a chyby v sekvencování HTTP, je považován za chybu serveru.

 

Ukládání do mezipaměti

Společnost Google obvykle ukládá obsah souboru robots.txt do mezipaměti po dobu až 24 hodin, ale může jej ukládat do mezipaměti i déle v situacích, kdy není možné obnovit verzi v mezipaměti (například kvůli časovým limitům nebo chybám 5xx). Odpověď uložená v mezipaměti může být sdílena různými procházeními. Společnost Google může prodloužit nebo zkrátit dobu uložení do mezipaměti na základě hlaviček HTTP max-age Cache-Control.

Formát souboru

Soubor robots.txt musí být prostý textový soubor v kódování UTF-8 a řádky musí být odděleny znaky CR, CR/LF nebo LF.

Google ignoruje neplatné řádky v souborech robots.txt, včetně značky Unicode Byte Order Mark (BOM) na začátku souboru robots.txt, a používá pouze platné řádky. Pokud je například stahovaný obsah HTML místo pravidel robots.txt, Google se pokusí analyzovat obsah a extrahovat pravidla a vše ostatní bude ignorovat.

Podobně pokud kódování znaků souboru robots.txt není UTF-8, může Google ignorovat znaky, které nejsou součástí rozsahu UTF-8, což může způsobit neplatnost pravidel robots.txt.

Společnost Google v současné době prosazuje omezení velikosti souboru robots.txt na 500 kibibytů (KiB). Obsah, který přesahuje maximální velikost souboru, je ignorován. Velikost souboru robots.txt můžete snížit sloučením pravidel, která by vedla k nadměrné velikosti souboru robots.txt. Například umístěte vyloučený materiál do samostatného adresáře.

Syntaxe

Platné řádky robots.txt se skládají z pole, dvojtečky a hodnoty. Mezery jsou nepovinné, ale doporučují se pro lepší čitelnost. Mezera na začátku a na konci řádku se ignoruje. Chcete-li zahrnout komentáře, předložte komentář znakem #. Mějte na paměti, že vše za znakem # bude ignorováno. Obecný formát je <pole>:<hodnota><#nepovinný-komentář> (<field>:<value><#optional-comment>).

Google podporuje následující pole:

  • user-agent: určuje, pro který crawler pravidla platí,
  • allow: cesta k adrese URL, která může být prohledávána,
  • disallow: cesta URL, která nesmí být procházena,
  • sitemap: úplná adresa URL mapy stránek.

Pole allow a disallow se také nazývají pravidla (známá také jako rules). Tato pravidla jsou vždy zadána ve tvaru rule: [path], kde [path] je nepovinné. Ve výchozím nastavení nejsou pro určené prohlížeče stanovena žádná omezení pro procházení. Prolézací stroje ignorují pravidla bez příkazu [path].

Hodnota [path], pokud je zadána, je relativní vůči kořenovému adresáři webové stránky, odkud byl soubor robots.txt načten (s použitím stejného protokolu, čísla portu, názvu hostitele a domény). Hodnota cesty musí začínat znakem /, aby označovala kořenový adresář, a rozlišují se v ní malá a velká písmena. Další informace o porovnávání adres URL na základě hodnot cest.

user-agent

Řádek user-agent určuje, na který crawler se pravidla vztahují. Úplný seznam řetězců user-agent, které můžete použít v souboru robots.txt, najdete v části Crawlery a řetězce user-agent společnosti Google.

U hodnoty řádku user-agent se nerozlišují velká a malá písmena.

disallow

Pravidlo disallow určuje cesty, které nesmí být přístupné procházením identifikovaným řádkem user-agent, s nímž je pravidlo disallow seskupeno. Crawlery pravidlo bez cesty ignorují.

Google nemůže indexovat obsah stránek, které jsou zakázány pro procházení, ale může přesto indexovat adresu URL a zobrazit ji ve výsledcích vyhledávání bez úryvku.

Hodnota pravidla disallow rozlišuje velká a malá písmena.

Použití:

disallow: [path]

allow

Pravidlo allow určuje cesty, k nimž mohou určené prohlížeče přistupovat. Pokud není zadána žádná cesta, pravidlo se ignoruje.

U hodnoty pravidla allow se rozlišují velká a malá písmena.

Použití:

allow: [path]

sitemap – mapa stránek

Google, Bing a další hlavní vyhledávače podporují pole mapy stránek v souboru robots.txt, jak je definováno na webu sitemaps.org.

Hodnota pole sitemap rozlišuje velká a malá písmena.

Použití:

sitemap: [absoluteURL]

Řádek [absoluteURL] ukazuje na umístění souboru mapy webu nebo indexu mapy webu. Musí to být plně kvalifikovaná adresa URL včetně protokolu a hostitele a nemusí být zakódována jako adresa URL. Adresa URL nemusí být na stejném hostiteli jako soubor robots.txt. Můžete zadat více polí mapy webu. Pole mapy stránek není vázáno na žádného konkrétního uživatelského agenta a mohou jej sledovat všechny procházení, pokud není procházení zakázáno.

Například:

user-agent: otherbot
disallow: /kale 

sitemap: https://example.com/sitemap.xml
sitemap: https://cdn.example.org/other-sitemap.xml
sitemap: https://ja.example.org/テスト-サイトマップ.xml

Seskupení řádků a pravidel

Pravidla, která se vztahují na více uživatelských agentů, můžete seskupit tak, že pro každý crawler zopakujete řádky s user-agent.

Například:

user-agent: a
disallow: /c 

user-agent: b
disallow: /d 

user-agent: e
user-agent: f
disallow: /g

user-agent: h

V tomto příkladu existují čtyři různé skupiny pravidel:

  • jedna skupina je určena pro uživatelského agenta „a“,
  • jedna skupina pro uživatelského agenta „b“,
  • jedna skupina pro uživatelské agenty „e“ a „f“,
  • jedna skupina pro uživatelského agenta „h“.

Technický popis skupiny naleznete v části 2.1 dokumentu REP.

Pořadí priority pro uživatelské agenty

Pro určitý crawler platí pouze jedna skupina. Prohlížeče Google určují správnou skupinu pravidel tak, že v souboru robots.txt najdou skupinu s nejkonkrétnějším uživatelským agentem, který odpovídá uživatelskému agentu prohledávače. Ostatní skupiny jsou ignorovány. Veškerý neshodný text je ignorován (například googlebot/1.2 i googlebot* jsou ekvivalentní googlebot). Na pořadí skupin v souboru robots.txt nezáleží.

Pokud je pro daného agenta uživatele deklarováno více než jedna specifická skupina, všechna pravidla ze skupin platných pro daného agenta uživatele jsou interně sloučena do jedné skupiny. Skupiny specifické pro uživatelského agenta a globální skupiny (*) se nekombinují.

Příklady

Shoda polí agent-user

user-agent: googlebot-news
(group 1) 

user-agent: *
(group 2)

user-agent: googlebot
(group 3)

Tímto způsobem by procházení vybralo příslušnou skupinu:

Sledovaná skupina pro každého crawlera
Googlebot News Googlebot-news sleduje skupinu 1, protože skupina 1 je nejkonkrétnější skupinou.
Googlebot (web) Googlebot sleduje skupinu 3.
Googlebot Storebot Storebot-Google následuje skupinu 2, protože neexistuje žádná specifická skupina Storebot-Google.
Googlebot News (při procházení obrázků) Při procházení obrázků sleduje googlebot-news skupinu 1. Googlebot-news neprochází obrázky pro Google Images, takže sleduje pouze skupinu 1.
Otherbot (web) Ostatní prohlížeče Google sledují skupinu 2.
Otherbot (news) Ostatní crawlery Google, které prohledávají zpravodajský obsah, ale neidentifikují se jako googlebot-news, následují skupinu 2. I když existuje záznam pro související crawler, je platný pouze v případě, že se konkrétně shoduje.

 

Seskupení pravidel

Pokud je v souboru robots.txt více skupin, které se vztahují k určitému uživatelskému agentovi, vyhledávače Google tyto skupiny interně sloučí. Například:

user-agent: googlebot-news
disallow: /fish

user-agent: *
disallow: /carrots

user-agent: googlebot-news
disallow: /shrimp

Prohlížeče interně seskupují pravidla například podle agenta uživatele:

user-agent: googlebot-news
disallow: /fish
disallow: /shrimp

user-agent: *
disallow: /carrots

Pravidla jiná než allow, disallow a user-agent jsou analyzátorem robots.txt ignorována. To znamená, že následující úryvek souboru robots.txt je považován za jednu skupinu, a proto jsou user-agent a i b ovlivněny příkazem disallow: / pravidlo:

user-agent: a
sitemap: https://example.com/sitemap.xml

user-agent: b
disallow: /

Při zpracování pravidel souboru robots.txt prohlížeče ignorují řádek mapy stránek. Například takto budou procházení chápat předchozí úryvek robots.txt:

user-agent: a
user-agent: b
disallow: /

Porovnávání adres URL na základě hodnot cest

Společnost Google používá hodnotu cesty v pravidlech pro allow a disallow jako základ pro určení, zda se pravidlo vztahuje na konkrétní adresu URL na webu. Funguje to tak, že pravidlo porovná s komponentou cesty adresy URL, kterou se crawler snaží načíst. Znaky ASCII, které nejsou 7bitové, mohou být v cestě zahrnuty jako znaky UTF-8 nebo jako znaky UTF-8 kódované procentuálně podle RFC 3986.

Google, Bing a další hlavní vyhledávače podporují omezenou formu zástupných znaků pro hodnoty cest. Tyto zástupné znaky jsou:

  • * označuje 0 nebo více výskytů libovolného platného znaku.
  • $ označuje konec adresy URL.

Následující tabulka ukazuje, jak různé zástupné znaky ovlivňují zpracování:

Příklad shody path
/ Shoduje se s kořenovou adresou URL a všemi adresami URL nižší úrovně.
/* Ekvivalent k /. Koncový zástupný znak se ignoruje.
/$ Shoduje se pouze s kořenem. Procházení je povoleno u libovolné adresy URL nižší úrovně.
/fish Shoduje se s jakoukoli cestou začínající na /fish. Všimněte si, že při porovnávání se rozlišují velká a malá písmena.

Shoduje se:

/fish
/fish.html
/fish/salmon.html
/fishheads
/fishheads/yummy.html
/fish.php?id=anything

Neshoduje se:

/Fish.asp
/catfish
/?id=ryby
/desert/fish
/fish* Ekvivalent k /fish. Koncový zástupný znak se ignoruje.

Shoduje se:

/fish
/fish.html
/fish/salmon.html
/fishheads
/fishheads/yummy.html
/fish.php?id=anything

Neshoduje se:

/Fish.asp
/catfish
/?id=fish
/desert/fish
/fish/ Shoduje se s čímkoli ve složce /fish/.

Shoduje se:

/fish/
/fish/?id=anything
/fish/salmon.htm

Neshoduje se:

/fish
/fish.html
/animals/fish/
/Fish/Salmon.asp
/*.php Shoduje se s jakoukoli cestou, která obsahuje .php.

Shoduje se:

/index.php
/filename.php
/folder/filename.php
/folder/filename.php?parameters
/folder/any.php.file.html
/filename.php/

Neshoduje se:

/ (i když se mapuje na /index.php)
/windows.PHP
/*.php$ Shoduje se s jakoukoli cestou path, která končí příponou .php.

Shoduje se:

/filename.php
/folder/filename.php

Neshoduje se:

/filename.php?parameters
/filename.php/
/filename.php5
/windows.PHP
/fish*.php Shoduje se s jakoukoli cestou, která obsahuje /fish a .php v tomto pořadí.

Shoduje se:    

/fish.php
/fishheads/catfish.php?parameters

Neshoduje se:

 /Fish.PHP

Pořadí přednosti pravidel

Při porovnávání pravidel robots.txt s adresami URL používají vyhledávače nejkonkrétnější pravidlo podle délky cesty k pravidlu. V případě konfliktních pravidel, včetně pravidel se zástupnými znaky, použije Google nejméně omezující pravidlo.

Následující příklady ukazují, které pravidlo budou prohledávače Google používat na danou adresu URL.

Příklady situací
https://example.com/page
allow: /p
disallow: /

Platné pravidlo: allow: /p, protože je specifičtější.

https://example.com/folder/page
allow: /folder
disallow: /folder

Platné pravidlo: allow: /folder, protože v případě konfliktních pravidel Google použije nejméně omezující pravidlo.

https://example.com/page.htm
allow: /page
disallow: /*.htm

Použitelné pravidlo: disallow: /*.htm, protože cesta k pravidlu je delší a odpovídá více znakům v URL, takže je konkrétnější.

https://example.com/page.php5
allow: /page
disallow: /*.ph

Platné pravidlo: allow: /page, protože v případě protichůdných pravidel použije Google nejméně omezující pravidlo.

https://example.com/
allow: /$
disallow: /

Použitelné pravidlo: allow: /$, protože je specifičtější.

https://example.com/page.htm
allow: /$
disallow: /

Použitelné pravidlo: disallow: /, protože pravidlo allow se vztahuje pouze na kořenovou adresu URL.

 

Když chcete najít všechny důležité informace o robots.txt na jednom místě – k čemu slouží soubor robots.txt, jak jej vytvořit, aktualizovat i jak pracovat se sitemapou robots.txt – tohle vše naleznete v přehledném článku Robots.txt: Kompletní průvodce, návod, tipy a rady.

Překlad, odborná a obsahová korektura: SEOPRAKTICKY.CZ

Použité zdroje

  1. How Google Interprets the robots.txt Specification | Google Search Central  |  Documentation  |  Google Developers. Google for Developers – Software Development Guides, Tools & More  |  Google Developers [online]. Dostupné z: https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt

Související články

Základy vyhledávání

Základy SEO

Procházení a indexování

Ranking a možnosti zobrazení ve výsledku vyhledávání

Monitorování a odstraňování chyb

Průvodce pro konkrétní stránky

Nemáte představu, kolik tržeb ze SEO Vašemu webu či e-shopu měšíčně utíká? Rádi Vám budeme věnovat čas osobně. Ukážeme Vám, o kolik peněz byste mohli každý měsíc vydělat více jen díky SEO! A to ZDARMA. Chci konzultaci ZDARMA >>

Další články

Jak se hýbe český internet? Sledujte denní statistiky!

Zobrazit