robots.txt to plik tekstowy umieszczony w katalogu głównym domeny (`/robots.txt`), który mówi crawlerom (Googlebot, Bingbot, GPTBot, ClaudeBot itd.), które ścieżki mają prawo crawlować, a których nie. Składnia: `User-agent: *`, potem `Disallow: /sciezka/` lub `Allow: /sciezka-dozwolona/`. Deklaruje się tam też sitemap (`Sitemap: https://przyklad.pl/sitemap.xml`). Uwaga na główną pułapkę: robots.txt blokuje crawl, nie indeksację. URL zablokowany w robots.txt, ale z linkami przychodzącymi, może i tak pojawić się w Google bez opisu.
Aby naprawdę zapobiec indeksacji, potrzebny jest `meta robots noindex` w HTML-u — czyli URL musi być crawlowalny. Konsekwencja praktyczna: nigdy nie blokuj w robots.txt strony, którą chcesz wyindeksować. Uzasadnione zastosowania Disallow: strefy admina (`/admin/`, `/wp-admin/`), facety e-commerce wybuchające crawl budget (`/?color=`, `/?size=`), wyszukiwarka wewnętrzna (`/?s=`), parametry trackingowe, checkout. Na stronie SEO programatyczne z 50 000 URL-i robots.txt służy do ochrony crawl budgetu Googlebota.
Pułapki, które utopiły całe strony: `Disallow: /` wypchnięte na prod przez przypadek (cała strona wyindeksowana), zablokowanie `/wp-content/` lub `/static/` (Google nie ładuje już CSS, uznaje stronę za zepsutą na mobile), mylenie Allow/Disallow z dyrektywami noindex. Po stronie GEO: zdecyduj, które boty IA wpuszczasz (`GPTBot`, `ClaudeBot`, `PerplexityBot`, `Google-Extended`) — blokada GPTBota wyłącza cię z ChatGPT search. Weryfikujemy spójność robots / sitemap / canonical podczas bezpłatnego audytu — to 5-minutowy check, który czasem ratuje stronę.
Błędy w robots.txt, które dobijają SEO
- `Disallow: /` wypchnięte na prod po testach — cała strona wyindeksowana, czasem na tygodnie.
- Blokowanie CSS/JS (`/static/`, `/_next/`) — Google nie renderuje już strony, mobile-friendly pada.
- Blokowanie URL-a w celu „wyindeksowania” — URL pozostaje zaindeksowany bez opisu (efekt odwrotny).
- Brak deklaracji sitemapa — Google dłużej odkrywa nowe strony.
