Robots.txt — kompletny przewodnik 2026 (z przykładami i AI bots)
Robots.txt to plik tekstowy w root domeny, który steruje dostępem crawlerów do Twojej strony. W 2026 to nie tylko narzędzie SEO — to też pierwsza linia obrony przed scrapingiem AI (GPTBot, ClaudeBot). Niewłaściwa konfiguracja = strona znika z Google albo trenuje konkurencyjny model AI.
TL;DR — Robots.txt
| Co | Detale |
|---|---|
| Lokalizacja | https://example.com/robots.txt (zawsze root) |
| Format | Plain text, UTF-8, max 500 KB |
| Główna składnia | User-agent: + Disallow: + Allow: |
| AI bots 2026 | GPTBot, ClaudeBot, Google-Extended, CCBot, PerplexityBot |
| Sitemap directive | Sitemap: https://example.com/sitemap.xml |
| Pułapka #1 | Disallow: / na produkcji = strona znika |
| Pułapka #2 | Robots.txt nie blokuje indeksacji (tylko crawling) |
Czym jest robots.txt?
Robots.txt to plik instrukcji dla crawlerów (bots) — programów, które przeszukują internet w celach indeksacji, scraping, treningu AI etc.
Plik znajduje się ZAWSZE w root domeny:
https://example.com/robots.txt
Nie w subdomenie, nie w folderze. Crawler najpierw czyta robots.txt, potem decyduje co crawlować.
Podstawowa składnia
User-agent: [nazwa bota lub *]
Disallow: [path do zablokowania]
Allow: [path do dopuszczenia mimo wcześniejszego Disallow]
Przykład 1: Allow all (default)
User-agent: *
Disallow:
Pusty Disallow = wszystko dozwolone. Albo brak robots.txt = to samo.
Przykład 2: Block all
User-agent: *
Disallow: /
❌ NIGDY na produkcji. Cała strona zniknie z Google w 2-4 tygodnie.
Przykład 3: Block admin areas
User-agent: *
Disallow: /admin/
Disallow: /wp-admin/
Disallow: /private/
Disallow: /search?
Standardowa konfiguracja: blokuj panele admin i wewnętrzne searche.
Przykład 4: Block specific bot
User-agent: BadBot
Disallow: /
User-agent: *
Allow: /
Bot „BadBot" zablokowany, wszyscy inni dopuszczeni. Pamiętaj że zła wola ignoruje robots.txt.
AI Bots 2026 — kompletna lista
W 2026 era AI search wymaga decyzji: czy AI ma czytać Twoje treści?
OpenAI (ChatGPT)
User-agent: GPTBot
Disallow: /
Blokuje:
- Trening ChatGPT na Twoim contencie
- ChatGPT Plus z włączonym browsingiem (czasem)
NIE blokuje:
- ChatGPT search retrieval (cytowanie po Bing index)
- OAI-SearchBot (nowy retrieval bot)
Pełna blokada OpenAI:
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
User-agent: OAI-SearchBot
Disallow: /
Anthropic (Claude)
User-agent: ClaudeBot
Disallow: /
User-agent: anthropic-ai
Disallow: /
User-agent: Claude-Web
Disallow: /
Google AI
User-agent: Google-Extended
Disallow: /
Ważne: Google-Extended kontroluje TYLKO trening Bard/Gemini. NIE kontroluje Googlebota (klasyczny search). Możesz mieć Google-Extended: Disallow + Googlebot: Allow — zwykle jest w SERP, ale nie trenuje Gemini.
Common Crawl (training data)
User-agent: CCBot
Disallow: /
Common Crawl to dataset, na którym trenuje większość modeli (GPT, Claude, LLaMa, etc.). Blokowanie CCBot = mniej widoczności w przyszłych modelach.
Perplexity
User-agent: PerplexityBot
Disallow: /
Pełna blokada AI (zachowując Google search)
User-agent: GPTBot
Disallow: /
User-agent: ChatGPT-User
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: anthropic-ai
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: PerplexityBot
Disallow: /
User-agent: *
Allow: /
Strategiczne pytanie 2026: blokować AI czy nie?
Blokować, jeśli:
- Twój content to twój moat (np. autorskie badania)
- Konkurujesz z AI (Twój produkt = subscription do treści)
- Boisz się utraty ruchu na rzecz zero-click AI
NIE blokować, jeśli:
- Chcesz cytacji w AI Overviews / ChatGPT (główny kierunek 2026)
- Twój biznes opiera się na świadomości brandu
- Twój content to lead-magnet, nie produkt sam w sobie
Trend 2026: większość firm NIE blokuje, bo cytacja w AI > strach przed kradzieżą. Wyjątki: NYTimes, Reuters, mniejsze paywall publishers.
Sitemap directive
W robots.txt można zadeklarować sitemap:
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-products.xml
Sitemap: https://example.com/sitemap-blog.xml
Bot odkrywa sitemap automatycznie. Można też submitować w GSC, ale directive w robots.txt to szybsza ścieżka dla wszystkich botów (nie tylko Google).
Crawl-delay (rzadko stosowane)
User-agent: *
Crawl-delay: 10
Mówi botom: poczekaj 10 sekund między requestami. Google ignoruje crawl-delay (używa swoich algorytmów). Bing, Yandex, Baidu respektują.
Stosuj tylko, jeśli serwer dusi się pod crawlowaniem.
Allow + Disallow konflikty
Co, jeśli mamy:
Disallow: /products/
Allow: /products/featured/
Crawler wybiera bardziej specyficzną regułę. /products/featured/some-product jest dozwolony (Allow specyficzniejszy), /products/regular-product zablokowany.
Najczęstsze błędy
Błąd 1: Plik nie w root
❌ https://example.com/seo/robots.txt (nie root)
✅ https://example.com/robots.txt
Błąd 2: Disallow path bez slash
❌ Disallow: admin
✅ Disallow: /admin/
Bez slash crawler nie wie czy to katalog czy substring.
Błąd 3: Wildcards bez wsparcia
Disallow: /*?utm
Większość botów (w tym Google) wspiera * jako wildcard, ale nie wszystkie. Test w GSC.
Błąd 4: Robots.txt return 5xx
Jeśli robots.txt zwraca 5xx (server error), bots traktują to jako „nie wiemy, więc nie crawlujemy". Strona znika z Google.
Zawsze sprawdzaj curl -I https://example.com/robots.txt — powinno być 200.
Błąd 5: Robots.txt return 4xx
404 na robots.txt = bot zakłada „brak ograniczeń" (allow all). Nie jest tak źle jak 5xx, ale lepiej mieć plik (nawet pusty).
Błąd 6: Konflikt z meta robots
<!-- Na stronie /private -->
<meta name="robots" content="noindex" />
# robots.txt
Disallow: /private
Konflikt: robots.txt blokuje crawl, więc Google nigdy nie odczyta meta noindex! Strona może pojawiać się w indeksie (URL-only) bez treści.
Fix: jeśli chcesz noindex, nie blokuj w robots.txt — pozwól crawlowi, niech zobaczy meta noindex.
Błąd 7: Blokowanie CSS/JS
User-agent: *
Disallow: /css/
Disallow: /js/
Google potrzebuje CSS/JS żeby renderować stronę. Blokada = Google widzi unstyled HTML, traktuje jako thin/broken content. Nigdy nie blokuj zasobów potrzebnych do renderowania.
Robots.txt dla różnych CMS
WordPress
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /xmlrpc.php
Disallow: /trackback/
Disallow: /comments/feed/
Disallow: /?s=
Disallow: /search?
Sitemap: https://example.com/sitemap_index.xml
Shopify
Shopify nie pozwala edytować robots.txt natywnie (do 2026 — sprawdź aktualne API). Workaround: Shopify Theme settings → SEO → robots.txt.liquid customization.
Next.js
W Next.js generuj robots.txt przez /app/robots.ts (App Router) lub /pages/robots.txt:
import { MetadataRoute } from 'next'
export default function robots(): MetadataRoute.Robots {
return {
rules: {
userAgent: '*',
allow: '/',
disallow: '/api/',
},
sitemap: 'https://example.com/sitemap.xml',
}
}
Weryfikacja
- Otwórz w przeglądarce:
https://example.com/robots.txt— powinno wyświetlać plik - GSC → Settings → Crawling → robots.txt — Google pokaże ostatnio odczytaną wersję
- GSC URL Inspection dla konkretnej strony — sekcja „Crawl" powie, czy bot jest blokowany
- Test online: Google Search Console robots.txt Tester (legacy ale działa)
Podsumowanie
Robots.txt 2026:
- Plik w root + 200 status code
- Allow all dla Googlebota (jeśli chcesz indeksacji)
- AI bots policy — decyzja strategiczna (blokować czy nie)
- Sitemap directive dla szybszego discovery
- Nie blokuj CSS/JS/zasobów renderowania
- Konflikt robots.txt vs meta noindex = używaj jednego, nie obu
To prosty plik, ale jego błędna konfiguracja może zniszczyć całe SEO w 2 tygodnie. Zawsze testuj zmiany w robots.txt w staging przed produkcją.
Audyt SEO technicznego — sprawdzimy obecny robots.txt + zalecenia AI bots policy dla Twojej branży.