Dokumentacja
Napraw robots.txt
Napraw robots.txt
robots.txt to plik pod https://example.com/robots.txt, który mówi robotom, które części strony mogą odwiedzać. Dwie linie wystarczą, żeby zamknąć całą stronę:
User-agent: *
Disallow: /
Google przestaje wtedy odwiedzać strony. Powoli tracą opisy i pozycje, a nowe podstrony w ogóle nie trafiają do wyszukiwarki. Tak jak zapomniany noindex, zwykle pochodzi to ze strony testowej, której robots.txt trafił na produkcję razem z nią. Lista kontrolna strony oznacza to jako Popraw i wysyła ostrzeżenie, gdy robots.txt zaczyna blokować całą stronę.
Czego szuka lista kontrolna
| robots.txt | Wynik |
|---|---|
Disallow: / pod User-agent: * i brak grupy Googlebot |
Popraw: cała strona jest zamknięta |
Disallow: / pod User-agent: Googlebot |
Popraw: zamknięta dla Google |
Disallow: / i Allow: / w tej samej grupie |
OK: katalog główny jest znów otwarty |
Disallow: bez niczego dalej |
OK: to pozwala na wszystko |
Disallow: /wp-admin/, Disallow: /cart i inne ścieżki |
OK: zamknięte są tylko te ścieżki |
brak robots.txt (404) |
OK: roboty mogą odwiedzać wszystko |
Google stosuje najbardziej szczegółową grupę: gdy istnieje grupa User-agent: Googlebot, ignoruje grupę *. Reguły dla innych botów (roboty AI, narzędzia SEO) nie wpływają na tę pozycję.
Sprawdź sam
Zamiast example.com wpisz swoją stronę:
curl -sL https://example.com/robots.txt
Spójrz na grupę dla User-agent: * (i Googlebot, jeśli istnieje). Jeśli żadna nie ma samodzielnego Disallow: /, gotowe. Jeśli polecenie wypisze stronę HTML zamiast kilku linii tekstu, strona nie ma prawdziwego robots.txt, co też jest w porządku.
Jak to naprawić
Bezpieczny robots.txt dla większości stron jest krótki:
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xml
Zostaw linie, które zamykają konkretne prywatne ścieżki, i usuń tylko Disallow: /. Poniżej znajdź, skąd pochodzi Twój robots.txt.
WordPress
WordPress domyślnie nie ma pliku robots.txt: generuje go, gdy ktoś o niego poprosi. Jeśli w folderze głównym strony istnieje prawdziwy plik robots.txt, ma on pierwszeństwo i wersji WordPressa nikt nie widzi.
- Otwórz Settings → Reading i upewnij się, że Search engine visibility (Discourage search engines from indexing this site) jest odznaczone. Na działającej stronie nie powinno być nigdy zaznaczone.
- Yoast SEO: Yoast SEO → Tools → File editor pokazuje
robots.txti pozwala go edytować (jeśli serwer pozwala Yoastowi zapisać plik). - Rank Math: Rank Math SEO → General Settings → Edit robots.txt (widoczne w trybie Advanced). Jeśli istnieje fizyczny plik, Rank Math o tym informuje i trzeba edytować sam plik.
- Jeśli jest fizyczny plik i żadna wtyczka go nie edytuje, zmień go przez FTP lub menedżer plików hostingu (zobacz zakładkę cPanel).
Potem wyczyść pamięć podręczną strony: niektóre wtyczki cache i hostingi zapisują też robots.txt.
cPanel
- Otwórz Files → File Manager i przejdź do folderu głównego strony (zwykle
public_html). - Kliknij prawym przyciskiem
robots.txti wybierz Edit. - Usuń linię
Disallow: /(albo zamień ją naDisallow:) i kliknij Save Changes.
Plesk (Files) i DirectAdmin (File Manager) działają tak samo. Jeśli w folderze nie ma robots.txt, plik generuje CMS: zobacz zakładkę WordPress.
nginx
Zwykle robots.txt to zwykły plik w katalogu głównym strony (dyrektywa root bloku server). Edytuj go tam. Niektóre konfiguracje zwracają go bezpośrednio z nginx, więc poszukaj też tego:
sudo grep -rn 'robots.txt' /etc/nginx/
Taki blok zwraca zamknięty robots.txt bez względu na to, co jest w pliku:
location = /robots.txt {
return 200 "User-agent: *\nDisallow: /\n";
}
Usuń go (albo zmień tekst), potem sprawdź i przeładuj:
sudo nginx -t && sudo systemctl reload nginx
Apache i LiteSpeed
Edytuj plik robots.txt w DocumentRoot strony. Jeśli wygląda dobrze, a serwer zwraca coś innego, poszukaj w konfiguracji przepisania (rewrite) lub aliasu:
sudo grep -rn -i 'robots' /etc/apache2/ /var/www/
(Na Rocky, Alma i CentOS /etc/httpd/ zamiast /etc/apache2/.) Jeśli zmieniłeś wirtualny host, zastosuj zmianę:
sudo apachectl configtest && sudo systemctl reload apache2
Node.js i Next.js
W Next.js App Router robots.txt to statyczny plik app/robots.txt albo jest generowany przez app/robots.js:
export default function robots() {
return {
rules: { userAgent: '*', allow: '/' },
sitemap: 'https://example.com/sitemap.xml',
};
}
Poszukaj tam disallow: '/', często za warunkiem na środowisko. W innych aplikacjach Node robots.txt to zwykle plik w public/.
Laravel
Nowy projekt Laravel ma public/robots.txt z otwartą regułą. Edytuj plik tam. Jeśli zamiast niego robots.txt obsługuje trasa (poszukaj robots w routes/web.php), sprawdź, co zwraca na produkcji, i czy w .env na serwerze produkcyjnym jest APP_ENV=production.
Shopify
Shopify sam generuje rozsądny robots.txt. Zmienia się tylko wtedy, gdy motyw ma szablon robots.txt.liquid: Online Store → Themes → … → Edit code → Templates. Jeśli istnieje i dodaje Disallow: /, usuń tę regułę albo usuń szablon, żeby wrócić do domyślnej wersji Shopify.
Wix
Wix sam generuje robots.txt. Jeśli ktoś go edytował, otwórz w panelu ustawienia SEO, przejdź do Robots.txt Editor i usuń regułę Disallow: / albo przywróć plik domyślny.
Webflow
Otwórz Site settings → SEO i w polu robots.txt usuń Disallow: /. Zapisz i opublikuj stronę (Publish): zmiana trafia na produkcję dopiero przy kolejnej publikacji.
Squarespace
Squarespace sam generuje robots.txt i nie da się go edytować. Jego domyślna wersja nie blokuje całej strony. Jeśli lista kontrolna mimo to to zgłasza, sprawdź, czy strona jest publiczna (nie prywatna ani chroniona hasłem).
robots.txt nie służy do ukrywania stron
Disallow zatrzymuje odwiedzanie, nie indeksowanie: zablokowana strona, do której prowadzą linki z innych miejsc, może i tak pojawić się w Google, tylko bez opisu. Żeby strona nie trafiła do wyników, pozwól ją odwiedzać i dodaj noindex; żeby środowisko testowe było prywatne, użyj hasła. Nie blokuj strony w robots.txt i jednocześnie nie dodawaj noindex: Google nie odczyta noindex na stronie, której nie może odwiedzić.
Potwierdź poprawkę
Uruchom ponownie polecenie curl z sekcji Sprawdź sam, potem otwórz cel w PulseKeeper i kliknij Sprawdź teraz na zakładce Lista kontrolna. Pozycja zmieni się na OK w ciągu kilku minut, a nie dopiero przy kolejnym codziennym sprawdzeniu. W Google Search Console Settings → robots.txt pokazuje wersję, którą Google ostatnio pobrał, i pozwala poprosić o ponowne pobranie.