Soubor robots.txt
je jednoduchý textový soubor umístěný ve veřejně přístupném kořenovém adresáři webu (např. https://www.example.com/robots.txt
). Ačkoliv je jeho syntaxe triviální, jeho význam v rámci technického SEO je zásadní. Špatná konfigurace může vést k závažným důsledkům – od ignorace důležitých částí webu roboty až po úplné vyřazení webu z výsledků vyhledávání.
Cílem tohoto článku je nabídnout nejen přehled základních pravidel, ale také poskytnout kontext, pokročilé příklady a specifická doporučení pro různé platformy – zejména WordPress.
Co je robots.txt
a proč ho používat
Soubor robots.txt
slouží k řízení přístupu robotů (tzv. user-agents) vyhledávačů, jako je Googlebot, Bingbot, Yandexbot apod., k jednotlivým částem vašeho webu. Je součástí tzv. Robots Exclusion Protocolu (REP), který byl navržen pro efektivní správu procházení webů.
Primární cíle použití robots.txt
jsou:
- Zamezit indexaci duplicitního nebo nevhodného obsahu.
- Omezit přístup ke strukturám, které nejsou pro veřejnost určeny.
- Optimalizovat tzv. crawl budget – tedy čas a prostředky, které robot na webu stráví.
- Zabránit procházení technických struktur, které nemají informační hodnotu.
- Zamezit prohledávání rozhraní jako jsou REST API, vyhledávací dotazy, AJAX skripty apod.
Struktura souboru robots.txt
Soubor se skládá z bloků, z nichž každý začíná direktivou User-agent
, po níž následují Disallow
, Allow
a případně Sitemap
.
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://www.example.com/sitemap_index.xml
- User-agent: Určuje, na kterého robota se pravidla vztahují.
*
znamená všechna zařízení. - Disallow: Zakazuje přístup k určité cestě nebo URL.
- Allow: Výslovně povoluje přístup – používá se pro upřesnění pravidel (např. výjimky z disallow).
- Sitemap: Doporučení, kde se nachází XML sitemap(y) webu.
Soubor se čte blokově po jednotlivých user-agentech. Není možné kombinovat pravidla pro více User-agent
sekcí. Každý blok je vyhodnocován samostatně.
Wildcards a speciální znaky
Pro přesnější řízení přístupu jsou k dispozici zástupné znaky.
Hvězdička *
Znamená „libovolný počet znaků“. Příklad:
Disallow: /private/*.pdf
Zakáže všechny PDF soubory ve složce /private/
.
Symbol $
Znamená „konec URL“. Používá se pro zpřesnění:
Disallow: /*.pdf$
Tímto pravidlem zakážeme všechny končící PDF soubory, ale ne například /download.php?file=document.pdf
.
Kombinace *
a $
umožňuje silnou kontrolu nad strukturou URL.
Co by měl soubor robots.txt obsahovat
1. Definici sitemap
Google a další roboti umí číst direktivu Sitemap
a následně zpracovat uvedený soubor.
Sitemap: https://www.example.com/sitemap_index.xml
- Pokud používáte plugin typu Yoast SEO nebo RankMath, generuje se sitemap automaticky.
- Doporučuje se uvádět úplné URL (včetně https://).
- Pro rozsáhlé weby může být vhodné uvést více sitemap (např.
/sitemap-products.xml
,/sitemap-categories.xml
atd.).
2. Blokace nepodstatných sekcí webu
Týká se technických adresářů, stránkování, vyhledávání a AJAX funkcí. Níže rozebereme podrobněji.
Co by se nemělo indexovat a proč
Administrativní rozhraní
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
WordPress ukládá veškeré administrativní funkce do /wp-admin/
. Neexistuje důvod, proč by se měly procházet nebo indexovat. Výjimku tvoří admin-ajax.php
, který používají některé pluginy a motivy (např. WooCommerce, AJAX filtrování atd.).
Interní vyhledávání
Disallow: /?s=
Disallow: /search
Interní vyhledávací dotazy generují potenciálně stovky až tisíce variant URL s různými parametry. Tyto stránky obvykle neobsahují jedinečný obsah, mohou způsobit:
- duplicity,
- zbytečné čerpání crawl budgetu,
- znepřehlednění indexu.
Vyhledávání by mělo být blokováno robots.txt
nebo označeno noindex
.
Autor, archiv a tag stránky
Např.:
Disallow: /author/
Disallow: /tag/
Disallow: /category/uncategorized/
/author/
– často neobsahují žádný unikátní obsah, navíc pokud existuje pouze jeden autor, jde o zbytečnou duplicitu./tag/
– pokud nemáte důsledně strukturované tagy, jedná se o šum./category/uncategorized/
– výchozí kategorie WordPressu, která by se měla přejmenovat nebo zablokovat.
Tyto stránky je vhodné buď blokovat pomocí robots.txt
, nebo označit pomocí noindex, follow
.
Parametrizované a stránkované URL
Disallow: /*?*
Disallow: */page/
- U WooCommerce a dalších e-commerce řešení mohou parametry jako
?orderby=
,?filter_price=
,?color=
,?size=
generovat stovky variant jedné stránky. - Stránkování (
/page/2/
) lze řešit různě – buď se zachováním indexace hlavní stránky a nastavením kanonických URL, nebo blokací těchto stránek.
REST API a AJAX endpointy
Disallow: /wp-json/
Disallow: /graphql/
Moderní WordPress šablony často používají REST API. I když tyto endpointy běžně neobsahují HTML, některé crawly je prochází. Pokud nemáte důvod je zpřístupnit (např. veřejné API dokumentace), doporučuje se blokace.
Technické adresáře
Disallow: /cgi-bin/
Disallow: /temp/
Disallow: /backup/
Disallow: /*.sql$
Disallow: /*.zip$
Adresáře a soubory technického rázu by neměly být přístupné pro roboty – mohou obsahovat citlivá data nebo zpomalit robota zpracováváním irelevantního obsahu.
Co by se naopak nemělo blokovat
CSS a JavaScript
Někteří správcové webu omylem blokují například:
Disallow: /wp-includes/
Disallow: /wp-content/
To je však zásadní chyba. Googlebot potřebuje mít přístup ke všem CSS a JS, které jsou nezbytné pro správné zobrazení stránky. Pokud mu v tom zabráníte, může dojít k penalizaci (Google vyhodnotí stránku jako špatně optimalizovanou).
Správné řešení: Nezakazujte /wp-content/
a /wp-includes/
, pokud v něm nejsou explicitně nechtěné prvky. Většina obsahu v /wp-content/uploads/
(obrázky) by měla být indexována.
Specifika pro WordPress
WordPress je velmi populární CMS, ale právě proto trpí řadou SEO problémů, které robots.txt
může pomoci řešit. Mezi specifické problematické oblasti patří:
/wp-admin/
,/wp-includes/
– technické adresáře/feed/
,/trackback/
,/comments/feed/
– často nechtěný obsah?replytocom=
– alternativní způsob zobrazení komentáře pomocí URL parametru, který může vést k duplicitám/?s=
– interní vyhledávání
Doporučená základní konfigurace:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search
Disallow: /author/
Disallow: /category/uncategorized/
Disallow: /tag/
Disallow: /feed/
Disallow: /trackback/
Disallow: /comments/feed/
Sitemap: https://www.example.com/sitemap_index.xml
Kontrola a testování
Při úpravách robots.txt
nezapomeň ověřit, že:
- Je soubor skutečně dostupný na
https://www.domena.cz/robots.txt
. - Odpovídá správně s HTTP stavem
200 OK
. - Používá správnou direktivu
Sitemap:
. - Není v rozporu s jinými pravidly (např.
noindex
ve stránce). - Lze validovat pomocí:
- Google Search Console – Nástroj pro testování
robots.txt
- Online validátory (např. https://technicalseo.com/tools/robots-txt/)
- Google Search Console – Nástroj pro testování
Pokročilé případy
Více sekcí pro různé roboty
User-agent: Googlebot
Disallow: /private-google/
User-agent: Bingbot
Disallow: /private-bing/
User-agent: *
Disallow: /common/
Google a Bing mohou dostat rozdílná pravidla, pokud máte specifické požadavky na chování jejich crawlerů.
Blokování URL s parametry, ale s výjimkami
Disallow: /*?*
Allow: /*?orderby=
Tímto způsobem můžete zablokovat obecně všechny URL s parametry, ale zároveň povolit konkrétní – např. řazení produktů.
Shrnutí checklistu
- Soubor je dostupný na správném místě
- Obsahuje správně uvedenou
Sitemap:
direktivu - Neomezuje přístup ke statickým CSS/JS souborům
- Omezuje přístup k vyhledávání a parametrickým URL
- Zakazuje přístup k technickým adresářům a souborům
- Neobsahuje
Disallow: /
omylem - Pravidla jsou jednoznačná a bez konfliktů
- Validace v Search Console proběhla bez chyb