Jak správně používat soubor robots.txt - Affinite.io CZ

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:

  1. Zamezit indexaci duplicitního nebo nevhodného obsahu.
  2. Omezit přístup ke strukturám, které nejsou pro veřejnost určeny.
  3. Optimalizovat tzv. crawl budget – tedy čas a prostředky, které robot na webu stráví.
  4. Zabránit procházení technických struktur, které nemají informační hodnotu.
  5. 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:

  1. Je soubor skutečně dostupný na https://www.domena.cz/robots.txt.
  2. Odpovídá správně s HTTP stavem 200 OK.
  3. Používá správnou direktivu Sitemap:.
  4. Není v rozporu s jinými pravidly (např. noindex ve stránce).
  5. Lze validovat pomocí:

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
Komplexní zabezpečení komentářů ve WordPressu
Komplexní zabezpečení komentářů ve WordPressu
03 Zář, 2025

Looking for something?