TakéRobots Exclusion Protocol, REP, soubor robots.txtZákladní

Definice

Robots.txt je textový soubor v kořeni webu, kterým web sděluje crawlerům pravidla pro procházení URL. Vyhledávače a další slušní roboti podle něj mohou vynechat části webu, najít sitemapu a snížit zbytečnou zátěž serveru, ale soubor nezajišťuje utajení ani zákaz indexace už známých adres.

Kategorie: Webové technologieAktualizováno

Co robots.txt říká crawlerům

Soubor robots.txt leží v kořeni originu, například na https://example.cz/robots.txt. Platí pro konkrétní schéma, host a port, takže www.example.cz a shop.example.cz potřebují vlastní pravidla. Samotný soubor je veřejný a běžně dostupný komukoli. Pravidla cílí na roboty identifikované řádkem User-agent. Direktiva Disallow označuje cesty, které crawler nemá stahovat, Allow může povolit užší výjimku a Sitemap předá adresu XML souboru se seznamem důležitých URL. V praxi robots.txt pomáhá řídit crawl budget, omezit zbytečné požadavky a doplnit Sitemap, ne rozhodovat o relevanci obsahu.

Pravidla, shoda a omezení

Roboti vybírají skupinu pravidel podle názvu svého crawleru. Zápis User-agent: * znamená výchozí skupinu pro všechny roboty, pro které není uvedena přesnější skupina. Při konfliktu záleží na nejkonkrétnějším odpovídajícím pravidle podle cesty. Hvězdička se používá jako zástupný znak a znak dolaru se používá pro konec URL cesty. Direktiva Crawl-delay se na webu často objevuje, ale není univerzálně podporovaná všemi velkými vyhledávači.

Robots.txt není bezpečnostní mechanismus. Zakázaná cesta je v souboru vidět, takže může nechtěně prozradit, že existuje administrace, export nebo testovací část webu. Crawler navíc nemusí být poslušný. Soukromá data patří za autentizaci, omezení IP adres, správné HTTP odpovědi a řízení oprávnění. Robots.txt také není totéž co noindex. Když crawler stránku nestáhne, nemusí vidět meta značku noindex a URL se může ve výsledcích objevit jen podle externích odkazů. Pro duplicitní veřejné stránky řeší jiný problém kanonická URL.

Dva praktické zápisy robots.txt

Příklad 1: interní vyhledávání e-shopu

E-shop nechce, aby crawler procházel tisíce kombinací filtrů a výsledků interního vyhledávání. Pravidla zakážou generované adresy, ale ponechají veřejnou vstupní stránku s hodnotnými produkty. Výsledkem je méně zbytečných požadavků a větší šance, že robot věnuje čas kategoriím a produktovým detailům.

User-agent: *
Disallow: /search
Disallow: /filter/
Allow: /filter/top-produkty
Sitemap: https://example.cz/sitemap.xml

Příklad 2: veřejně dostupné staging prostředí

Staging na samostatné subdoméně může dostat jednoduchý zákaz pro všechny crawlery, aby se testovací prostředí běžně neprocházelo. Takový zápis je užitečný jen jako doplňkové opatření. Skutečná ochrana musí být přihlášení, VPN, omezení podle IP adresy nebo jiný serverový mechanismus, protože robots.txt nikomu technicky nezabrání v přímém otevření URL.

User-agent: *
Disallow: /

Příklady z praxe

  1. Interní vyhledávání e-shopu

    E-shop zakáže crawlerům interní vyhledávání a generované filtry, protože vytvářejí mnoho málo hodnotných URL. Výjimka ponechá jednu kurátorovanou stránku s produkty. Crawler pak méně zatěžuje server a snáz se dostane k důležitým kategoriím a produktům.

    User-agent: *
    Disallow: /search
    Disallow: /filter/
    Allow: /filter/top-produkty
    Sitemap: https://example.cz/sitemap.xml
  2. Staging prostředí

    Tým nasadí testovací web na veřejnou subdoménu a přidá úplný zákaz pro crawlery. Testovací URL se tím běžně neprocházejí, ale prostředí není zabezpečené. Přístup musí chránit heslo, VPN nebo omezení IP adres.

    User-agent: *
    Disallow: /

Časté omyly

MýtusKdyž dám URL do robots.txt, nikdo se na ni nedostane.
Ve skutečnostiRobots.txt je veřejný pokyn pro crawlery, ne řízení přístupu. Uživatel, skript nebo neposlušný robot může adresu stále otevřít, pokud ji server normálně vydá.
MýtusDisallow znamená noindex.
Ve skutečnostiDisallow omezuje procházení, ne přímo indexaci. Vyhledávač může URL znát z jiných zdrojů a stránka se může objevit bez načteného obsahu nebo bez úryvku.
MýtusJeden robots.txt platí pro všechny subdomény webu.
Ve skutečnostiRobots.txt se váže ke konkrétnímu schématu, hostu a portu. Subdoména potřebuje vlastní soubor, pokud má robotům sdělovat odlišná pravidla.

Časté dotazy

Může robots.txt zabránit zobrazení stránky ve výsledcích vyhledávání?
Robots.txt může zabránit crawleru ve stažení stránky, ale sám o sobě nezaručuje odstranění URL z výsledků vyhledávání. Vyhledávač může adresu znát z externích odkazů, sitemap nebo dřívějšího crawlování. Pro skutečný zákaz indexace veřejné stránky se používá meta značka nebo HTTP hlavička noindex, kterou crawler musí smět načíst.
Kam se soubor robots.txt na webu ukládá?
Soubor robots.txt se ukládá do kořene konkrétního originu, například https://example.cz/robots.txt. Pravidla z této adresy neplatí automaticky pro jiné subdomény, jiné schéma ani jiný port. Web s adresami https://www.example.cz a https://api.example.cz proto potřebuje samostatný soubor pro každý host, pokud mají mít crawlery jasná pravidla.
Co znamená User-agent: * v robots.txt?
User-agent: * v robots.txt označuje výchozí skupinu pravidel pro crawlery, které nemají vlastní přesnější skupinu. Hvězdička neznamená zákaz všeho, pouze výběr adresátů pravidel. Skutečné povolení nebo zákaz určují až řádky Disallow a Allow v dané skupině.
Kdy dává smysl něco v robots.txt zakázat?
Robots.txt se hodí pro omezení crawlů málo užitečných nebo drahých částí webu, například interního vyhledávání, parametrických filtrů nebo kalendářů s nekonečným množstvím URL. Blokování hodnotných stránek může být škodlivé, protože crawler neuvidí obsah, odkazy ani případný noindex. Rozhodnutí má vycházet z toho, zda je problémem procházení, indexace, duplicita nebo zabezpečení.

Zdroje

  1. Robots Exclusion Protocol(otevře se v novém okně)RFC Editor, 2022
  2. Introduction to robots.txt(otevře se v novém okně)Google Search Central
  3. Robots.txt Specifications(otevře se v novém okně)Google Search Central

Související pojmy

Potřebujete to vyřešit v praxi?

Poradíme, jak na to ve vašem projektu

Vysvětlit pojem je jedna věc, navrhnout kolem něj funkční řešení druhá. Ozvěte se a probereme, co dává smysl u vás.