robots.txt: co blokować, a czego nie
Moduł 3: Techniczne podstawy strony · Czas czytania: 13 minut
Cel lekcji: Po tej lekcji będą Państwo umieli czytać i pisać plik robots.txt, samodzielnie ustalić, czy Googlebot może odwiedzić dany adres, wyjaśnić, co się dzieje, gdy pliku brakuje lub jest on nieosiągalny, oraz będą Państwo wiedzieć, dlaczego robots.txt nie jest zabezpieczeniem ani noindex.
Kluczowe pojęcia: robots.txt (RFC 9309), robot indeksujący (crawler), grupa, User-agent, Disallow, Allow, najdłuższe dopasowanie, równa długość (wygrywa Allow), * i $, Sitemap:, kod statusu robots.txt (4xx, 5xx), 500 KiB, 24 godziny w pamięci podręcznej, brak zabezpieczenia, brak noindex, roboty AI (Google-Extended, GPTBot)
Tabliczka przy drzwiach wejściowych
Plik robots.txt to zwykły plik tekstowy w katalogu głównym Państwa strony, zawsze pod tym samym adresem: https://www.example.com/robots.txt. Porządny robot indeksujący (lekcja 1.2) najpierw pobiera ten plik i odczytuje, których części strony nie może odwiedzać. To tabliczka przy drzwiach, a nie zamek: Googlebot i Bingbot się do niej stosują, ale złośliwy robot po prostu przeczyta tabliczkę i wejdzie dalej.
Od 2022 roku protokół jest oficjalnym standardem internetowym: RFC 9309. Google dodatkowo dokładnie opisuje, jak Googlebot odczytuje ten plik. W tej lekcji korzystamy z obu źródeł.
Kilka stałych zasad:
- Plik znajduje się w katalogu głównym hosta. Plik robots.txt w
/blog/robots.txtnie jest odczytywany. - Obowiązuje wyłącznie dla tego hosta, tego protokołu i tego portu.
https://www.example.com/robots.txtnie obowiązuje dlahttps://shop.example.com/; ten host potrzebuje własnego pliku. - Jest to zwykły tekst w kodowaniu UTF-8.
Jak zbudowany jest plik
User-agent: *
Disallow: /winkelmand/
Disallow: /zoeken
Allow: /zoeken/tips
User-agent: Googlebot
Disallow: /concepten/
Sitemap: https://www.example.com/sitemap.xmlPlik składa się z grup. Grupa zaczyna się od jednego lub kilku wierszy User-agent:, po których następują reguły Disallow: (nie odwiedzać) i Allow: (można odwiedzać). Ścieżka po Disallow: to początek adresu: Disallow: /zoeken blokuje /zoeken, /zoeken?q=rozen, a także /zoekenmachine, ponieważ wszystkie zaczynają się od /zoeken.
Wiersz Sitemap: nie należy do żadnej grupy i wskazuje, gdzie znajduje się Państwa mapa witryny (lekcja 3.4). Google wymaga pełnego adresu z https:// i nazwą hosta.
Reguła Disallow: bez ścieżki niczego nie blokuje. Disallow: / blokuje wszystko.
Która grupa obowiązuje?
Robot wybiera jedną grupę: tę z najbardziej szczegółową nazwą, która do niego pasuje. Googlebot stosuje więc grupę User-agent: Googlebot, jeśli istnieje, i wtedy całkowicie pomija grupę *. W powyższym przykładzie Googlebot może zatem wejść do /winkelmand/: ta reguła znajduje się tylko w grupie *. To jeden z najczęstszych błędów: kto tworzy osobną grupę dla Googlebota, musi powtórzyć w niej wszystkie reguły, które mają obowiązywać także Google.
W nazwie wielkość liter nie ma znaczenia (googlebot = Googlebot). Jeśli dla tego samego robota istnieją dwie grupy, Google łączy je w jedną.
Która reguła wygrywa?
W obrębie grupy adres może pasować do kilku reguł. Wtedy obowiązuje:
- Wygrywa najdłuższa pasująca reguła (najbardziej szczegółowa ścieżka).
- Jeśli
AllowiDisallowsą dokładnie tej samej długości, wygrywaAllow. Google nazywa to "regułą najmniej restrykcyjną".
Dwa znaki mają specjalne znaczenie:
| Znak | Znaczenie | Przykład | Dotyczy | Nie dotyczy |
|---|---|---|---|---|
* | zero lub więcej dowolnych znaków | Disallow: /*?sessie= | /rozen?sessie=12 | /rozen?kleur=rood |
$ | koniec adresu | Disallow: /*.pdf$ | /folder.pdf | /folder.pdf?v=2 |
Przykład obliczenia z grupą * z powyższego pliku, dla robota Bingbot (który nie ma własnej grupy):
| Adres | Pasujące reguły | Wynik |
|---|---|---|
/winkelmand/ | Disallow: /winkelmand/ | niedozwolone |
/zoeken/tips | Disallow: /zoeken (7 znaków) i Allow: /zoeken/tips (12) | dozwolone: wygrywa najdłuższa |
/zoeken?q=rozen | Disallow: /zoeken | niedozwolone |
/bruidsboeketten | brak | dozwolone |
/robots.txt | (zawsze) | dozwolone: sam plik robots.txt jest zawsze dostępny |
Gdy pliku nie ma lub serwer zawodzi
To, co zrobi Google, zależy od kodu statusu, którym serwer odpowiada na /robots.txt:
| Odpowiedź | Co robi Google |
|---|---|
| 200 (znaleziono) | Odczytuje reguły |
| Przekierowanie (301, 302) | Podąża za co najmniej pięcioma krokami; potem Google traktuje to jak 404 |
| 4xx, np. 404 lub 403 (z wyjątkiem 429) | Tak, jakby nie było pliku robots.txt: wszystko jest dozwolone |
| 5xx lub brak połączenia | Przez pierwsze 12 godzin Google nie indeksuje strony i ponawia próby; potem przez maksymalnie 30 dni używa ostatniej poprawnej wersji z pamięci podręcznej. Jeśli błąd utrzymuje się dalej, a strona poza tym działa, Google zachowuje się tak, jakby nie było pliku robots.txt |
Brak pliku robots.txt nie jest więc problemem: wtedy wszystko jest dozwolone. Plik robots.txt, który zwraca błąd serwera, jest natomiast problemem: Google tymczasowo przestaje indeksować stronę. RFC 9309 jest tu jeszcze surowszy: przy nieosiągalnym pliku robot musi przyjąć, że wszystko jest zabronione.
Ponadto:
- Google odczytuje maksymalnie 500 KiB; wszystko, co jest dalej, zostaje pominięte.
- Google przechowuje robots.txt w pamięci podręcznej zwykle do 24 godzin. Zmiana nie działa więc od razu. W Search Console w sekcji Ustawienia znajdą Państwo raport robots.txt: która wersja została ostatnio pobrana przez Google, wraz z błędami i ostrzeżeniami, oraz przycisk do ponownego pobrania.
- Google rozpoznaje tylko
User-agent,Allow,DisallowiSitemap. Reguły takie jakCrawl-delayczyNoindexGooglebot pomija.
Czego robots.txt nie robi
To nie jest zabezpieczenie
Każdy może przeczytać Państwa plik robots.txt, także osoba o złych zamiarach. Reguła Disallow: /beheer-oud/ wręcz wskazuje, gdzie znajduje się coś interesującego. RFC 9309 mówi to wprost: reguły nie są formą kontroli dostępu. Rzeczywistą ochronę zapewnia hasło lub odmowa dostępu po stronie serwera, na przykład za pomocą .htaccess (zob. Więcej informacji).
To nie jest noindex
To najważniejsza nauka z tej lekcji. robots.txt reguluje indeksowanie przez roboty (crawlowanie), a nie dodawanie do indeksu (lekcja 1.3). Google pisze dosłownie, że robots.txt nie jest sposobem na usunięcie strony z Google. Jeśli inne witryny linkują do zablokowanego adresu, może on mimo to pojawić się w wynikach wyszukiwania, tylko bez opisu.
Jeśli chcą Państwo, aby strona nie pojawiała się w wynikach wyszukiwania, prosimy użyć noindex (w <meta name="robots"> lub w nagłówku X-Robots-Tag) albo zabezpieczyć stronę hasłem. I prosimy uważać na klasyczną pułapkę: jeśli stronę z noindex dodatkowo zablokują Państwo w robots.txt regułą Disallow, Google nie będzie mógł jej odwiedzić, a więc nigdy nie odczyta noindex.
Nie należy blokować elementów potrzebnych Google
Prosimy nie blokować katalogów z arkuszami stylów, skryptami ani obrazami, których strona potrzebuje do prawidłowego wyświetlania. Google ogląda stronę tak jak przeglądarka; bez tych plików gorzej ją rozumie.
Roboty AI
Coraz więcej firm zbiera strony internetowe na potrzeby sztucznej inteligencji. Do niektórych z nich można zwrócić się w robots.txt:
Google-Extendednie jest osobnym robotem, lecz nazwą w robots.txt, za pomocą której określają Państwo, czy Google może wykorzystywać Państwa treści do trenowania modeli Gemini i do groundingu. Google pisze, że nie ma to wpływu na obecność ani pozycję w wyszukiwarce Google.GPTBotfirmy OpenAI zbiera strony, które mogą być wykorzystane do trenowania modeli.OAI-SearchBotsłuży funkcji wyszukiwania ChatGPT: jeśli go Państwo zablokują, strona nie pojawi się w odpowiedziach wyszukiwania ChatGPT.
User-agent: GPTBot
Disallow: /To, czy Państwo tego chcą, jest kwestią wyboru, a nie technicznej konieczności. Jeśli przez pomyłkę zablokują Państwo robota wyszukiwarki (Googlebot, Bingbot, OAI-SearchBot), strona będzie tam gorzej widoczna.
W praktyce: gdzie znajduje się Państwa robots.txt?
- AI Builder od WebOké przy publikacji sam tworzy plik robots.txt z
User-agent: *,Allow: /i wierszemSitemap:. Jeśli ustawią Państwo stronę jako nieindeksowaną lub jest to bezpłatne demo, w pliku znajdzie sięDisallow: /. - WordPress tworzy wirtualny plik robots.txt z odwołaniem do mapy witryny. Jeśli umieszczą Państwo w katalogu strony własny plik
robots.txt, ma on pierwszeństwo. - Własna strona na pakiecie hostingowym: plik
robots.txtumieszczają Państwo w katalogu strony (w DirectAdminpublic_html) przez Menedżer Plików lub FTP.
U innych dostawców działa to podobnie: plik musi być zawsze dostępny pod adresem /robots.txt Państwa hosta.
Podsumowanie
- robots.txt znajduje się pod
/robots.txtkażdego hosta i informuje porządne roboty, czego nie mogą odwiedzać. - Robot stosuje jedną grupę (z najbardziej szczegółową nazwą, w przeciwnym razie
*). W obrębie grupy wygrywa najdłuższa reguła; przy równej długości wygrywaAllow. - 404 oznacza "wszystko dozwolone", błąd serwera sprawia, że Google tymczasowo przestaje indeksować stronę. Google odczytuje 500 KiB i przechowuje plik w pamięci podręcznej do 24 godzin.
- robots.txt nie jest zabezpieczeniem ani noindex. Strony z
noindexnie należy blokować w robots.txt. - Roboty AI, takie jak
GPTBot, oraz nazwęGoogle-Extendedmożna skonfigurować osobno, bez skutków dla wyszukiwarki Google.
Quiz
Zadanie
Zadanie A3.3: Analiza Państwa pliku robots.txt. Prosimy wpisać swoją domenę oraz trzy adresy z własnej strony (na przykład stronę główną, stronę produktu i koszyk lub stronę wyszukiwania), a przy każdym adresie swoje przewidywanie: czy Googlebot może go indeksować, tak czy nie? Program pobiera Państwa robots.txt, sprawdza kod statusu, rozmiar, grupy i wiersz Sitemap:, a następnie dla każdego adresu oblicza, co według reguł z tej lekcji wolno Googlebotowi. Czy Państwa przewidywanie się zgadza? Nie mają Państwo własnej strony? Prosimy użyć www.wikipedia.org.
Więcej informacji
Kroki opisane w tych artykułach dotyczą paneli WebOké; u innych dostawców działa to podobnie.
- Instrukcja DirectAdmin 11.1: Otwieranie Menedżera Plików: foldery w Państwa pakiecie
- Blokowanie plików przez .htaccess, np. plugin-googlemap2-proxy.php
- Instrukcja DirectAdmin 11.4: Pokazywanie i edycja ukrytych plików, takich jak .htaccess
- Google Search Central, Jak Google interpretuje specyfikację robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt
- Google Search Central, Wprowadzenie do pliku robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/intro
- RFC 9309, Robots Exclusion Protocol: https://www.rfc-editor.org/rfc/rfc9309.html
- Google, Przegląd robotów (Google-Extended): https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers
- OpenAI, Przegląd robotów (GPTBot, OAI-SearchBot): https://developers.openai.com/api/docs/bots
