SEO

Plik robots.txt

Daniel Wlaźlak
Ilustracja do artykułu
(Ilustracja do artykułu : Pressmaster)

Plik robots.txt to kluczowy element zarządzania widocznością witryny w wyszukiwarkach internetowych. Pełni rolę komunikacyjną między stroną internetową a robotami indeksującymi, informując je, które zasoby witryny mogą być przeszukiwane i indeksowane. Jego prawidłowa konfiguracja wpływa na efektywność indeksowania treści oraz optymalizację obciążenia serwera. Poniższy artykuł szczegółowo omawia funkcję, składnię oraz zastosowania pliku robots.txt, podkreślając jego znaczenie w kontekście SEO (Search Engine Optimization).

Czym jest plik robots.txt?

Plik robots.txt to podstawowy plik tekstowy, który umożliwia właścicielom stron internetowych kontrolę nad tym, które zasoby na ich stronie mogą być przeszukiwane i indeksowane przez roboty wyszukiwarek. Pełni on kluczową funkcję w komunikacji między witryną a botami wyszukiwarek, pozwalając na zarządzanie ruchem, który trafia na stronę w wyniku działań indeksujących. Poprzez określenie reguł dostępu do określonych zasobów, plik ten pomaga właścicielom witryn optymalizować zasoby serwera i uniknąć niepożądanej indeksacji stron.

Jest to część szerzej stosowanego standardu o nazwie Robot Exclusion Protocol (REP), który definiuje zasady, jakie boty powinny respektować, podczas skanowania witryny.

Gdzie należy umieścić plik robots.txt?

Aby plik robots.txt mógł zostać prawidłowo odczytany przez boty, musi być umieszczony w katalogu głównym strony. Przykładowa ścieżka do pliku powinna wyglądać następująco: https://przyklad.pl/robots.txt. Umieszczenie pliku w innym miejscu lub podkatalogu spowoduje, że roboty wyszukiwarek go nie odnajdą, co może skutkować niekontrolowanym indeksowaniem witryny.

W przypadku większych witryn, które korzystają z subdomen, każda subdomena powinna mieć oddzielny plik robots.txt. Na przykład, dla subdomeny blog.przyklad.pl, plik robots.txt powinien znajdować się pod adresem: https://blog.przyklad.pl/robots.txt.

Podstawowe zasady tworzenia pliku robots.txt

Plik robots.txt składa się z zestawu reguł, które są interpretowane przez roboty wyszukiwarek. Główne polecenia używane w pliku to:

  • User-agent: Określa, do którego robota wyszukiwarki odnosi się dana reguła. Można wskazać konkretnego bota (np. Googlebot) lub użyć gwiazdki (*), która obejmuje wszystkie roboty.
  • Disallow: Pozwala na blokowanie dostępu do określonych sekcji witryny. Po tej komendzie następuje ścieżka do zasobów, których nie chcemy udostępniać robotom.
  • Allow: Używane, gdy chcemy pozwolić na dostęp do określonej części zasobów, mimo że ogólna reguła zabrania dostępu do wyższego poziomu katalogu.

Oto przykładowa reguła, która blokuje robotom dostęp do katalogu /prywatne/ na całej witrynie:

User-agent: *
Disallow: /prywatne/

Warto pamiętać, że plik robots.txt nie wspiera złożonych wyrażeń regularnych. Umożliwia jednak użycie symboli wieloznacznych takich jak gwiazdka (*), która może zastąpić dowolny ciąg znaków, oraz znak dolara ($), który określa koniec URL.

Oto przykład bardziej zaawansowanej reguły, która blokuje dostęp do wszystkich plików w katalogu /pliki/, z wyjątkiem plików PDF:

User-agent: *
Disallow: /pliki/
Allow: /pliki/*.pdf$

Znaczenie pliku robots.txt dla SEO

Plik robots.txt odgrywa ważną rolę w optymalizacji witryny pod kątem wyszukiwarek (SEO). Dzięki niemu możemy zarządzać, które zasoby będą indeksowane, co wpływa na widoczność strony w wynikach wyszukiwania oraz wydajność serwera.  Oto kilka przykładów, jak prawidłowa konfiguracja tego pliku wspiera SEO:

  • Zablokowanie zasobów o niskiej wartości – Plik robots.txt pozwala wykluczyć z indeksacji strony, które nie mają znaczenia dla użytkowników ani wyszukiwarek, np. strony komentarzy użytkowników na które nie mamy wpływu.
  • Zapobieganie duplikacji treści – W przypadku stron z wersjami drukowalnymi lub stron z powielonymi treściami, odpowiednie blokowanie dostępu pozwala uniknąć problemów z duplikacją treści, co pozytywnie wpływa na SEO.
  • Optymalizacja zasobów serwera – Dzięki ograniczeniu dostępu do nieistotnych zasobów, plik robots.txt zmniejsza ilość żądań od robotów indeksujących, co pomaga zmniejszyć obciążenie serwera, zwłaszcza w przypadku dużych witryn.

Robots.txt nie jest remedium na wszystkie problemy SEO. W takich przypadkach jak wyżej w robots.txt dodaje się wpisy dla bezpieczeństwa "na szybko", ale  strategicznie najlepiej aby nie linkować do takich zasobów, albo przynajmniej linkować z atrybutem rel="nofollow" lub najlepiej zaasoby takie zwracać bezlinkowo (metody AJAX, CSR).

Przykładowo, w optymalizacji crawl budget znacznie lepsza jest odpowiednia strukura strony czy odpowiednio skonstruowane linki kanoniczne niż dodanie wpisy do robots.txt. Robots.txt najczęściej zamaskuje problemy zwiazane z crawl budgetem lub problemy związane z duplikacją adresów a nie je rozwiąże. W wielu miejscach też bardziej opłaca się - i też tak rekomenduje Google - dodanie linka kanonicznego lub meta noindex. 

Dodanie lokalizacji mapy strony (Sitemap) do robots.txt

Jedną z funkcji pliku robots.txt jest możliwość wskazania lokalizacji mapy strony, co jest przydatne dla robotów wyszukiwarek. Mapa strony (Sitemap) zawiera listę wszystkich stron i zasobów, które mają być indeksowane, co przyspiesza proces ich odnalezienia i zaindeksowania przez wyszukiwarki. Aby dodać lokalizację mapy strony do pliku robots.txt, należy użyć poniższej składni:

Sitemap: https://przyklad.pl/sitemap.xml

Umieszczenie takiej informacji w pliku robots.txt ułatwia robotom dostęp do kompletnej mapy strony, co sprzyja bardziej efektywnemu procesowi indeksowania witryny. Należy pamiętać, że do pliku robots.txt mają dostęp wszyscy - w tym Twoja konkrencja - jeśli chcesz ukryć mapę strony, nie dodawaj jej do robots.txt, stwórz jej unikalny adres i dodaj bezpośrednio w GSC lub Narzędziach Bing.

Przykładowy plik robots.txt

Poniżej znajduje się przykład pliku robots.txt, który demonstruje zastosowanie kilku reguł. Zablokowany został dostęp do zasobów w katalogu /zasoby/, poza plikami graficznymi w formacie PNG. Dodatkowo, całkowicie zablokowano robotowi Bingbot dostęp do strony, a na końcu wskazano lokalizację pliku Sitemap.

User-agent: *
Disallow: /zasoby/
Allow: /zasoby/*.png$

User-agent: Bingbot
Disallow: /

Sitemap: https://przyklad.pl/sitemap.xml

W powyższym przykładzie zapewniono, że boty wyszukiwarek nie będą indeksować zasobów katalogu /zasoby/, z wyjątkiem obrazów PNG. Ponadto robot wyszukiwarki Bing został całkowicie zablokowany przed dostępem do witryny, a lokalizacja mapy strony została wskazana, co ułatwia indeksowanie pozostałych stron.

Lista przydatnych wpisów do robots.txt

1. Blokowanie różnych typów agentów

Użycie specyficznych nazw botów, aby blokować lub zezwalać na dostęp tylko określonym botom.


User-agent: BadBot
Disallow: /

User-agent: Googlebot
Disallow: /private/

2. Blokowanie określonych parametrów URL

Można zablokować indeksowanie stron z określonymi parametrami w adresach URL (przydatne np. dla stron z dużą ilością duplikatów).


User-agent: *
Disallow: /*?sort=
Disallow: /*&filter=

3. Specyficzne reguły dla różnych wersji mobilnych stron

Zastosowanie różnych zasad dla botów mobilnych.


User-agent: Googlebot-Mobile
Allow: /

User-agent: *
Disallow: /mobile/

4. Blokowanie dostępu do dynamicznych plików i treści

Zablokowanie dynamicznie generowanych plików, takich jak wyniki wyszukiwania, koszyki zakupowe, czy sortowane listy.


User-agent: *
Disallow: /search-results/
Disallow: /cart/
Disallow: /*?order=

5. Zezwolenie na dostęp do zasobów nieindeksowalnych

Pozwolenie na dostęp do niektórych zasobów, takich jak pliki JavaScript i CSS, które są istotne dla renderowania strony.


User-agent: *
Allow: /wp-includes/js/
Allow: /wp-includes/css/

6. Blokowanie botów tylko dla pewnych godzin

W teorii można byłoby próbować blokować boty w określonych godzinach, choć wymaga to konfiguracji serwera (nie za pomocą robots.txt), aby dynamicznie generował odpowiednią zawartość pliku robots.txt.

7. Zablokowanie indeksowania stron w wielu językach z tym samym contentem

Jeżeli masz identyczny content dostępny w różnych językach lub regionach, możesz blokować indeksowanie tych samych treści dla różnych języków.


User-agent: *
Disallow: /en/
Disallow: /de/

8. Zezwolenie na indeksowanie obrazów, blokowanie innych zasobów

Można stworzyć reguły, które pozwolą na indeksowanie obrazów, ale zablokują inne pliki multimedialne.


User-agent: *
Disallow: /media/
Allow: /media/images/

9. Blokowanie specyficznych botów, które omijają inne reguły

Boty spamowe lub te, które nie przestrzegają standardów, mogą być blokowane bezpośrednio.


User-agent: AhrefsBot
Disallow: /

User-agent: SemrushBot
Disallow: /

10. Zezwolenie na indeksowanie, ale blokowanie dostępu do plików

W niektórych przypadkach można pozwolić botom na indeksowanie stron, ale zabronić im dostępu do zasobów takich jak pliki PDF.


User-agent: *
Allow: /
Disallow: /*.pdf$

Lista wyrażeń regularnych w robots.txt

Poniżej znajdziesz listę wyrażeń regularnych, które pozwolą Ci zbudować najbardziej skomplikowane blokowanie w robots.txt

1. Symbol gwiazdki (*):

Gwiazdka oznacza dowolną liczbę znaków. Jest przydatna, aby dopasować różne warianty URL.


User-agent: *
Disallow: /private/*

Przykład ten blokuje dostęp do wszystkich URL zaczynających się od /private/ bez względu na to, co jest dalej.

2. Znak dolara ($):

Znak dolara oznacza koniec URL. Używany jest do dopasowania końca adresu URL.


User-agent: *
Disallow: /*.pdf$

W tym przypadku blokuje się wszystkie pliki PDF, których URL kończy się na .pdf.

3. Użycie wyrażenia /*:

Ta konstrukcja oznacza, że reguła zostanie zastosowana do wszystkich podstron w katalogu.


User-agent: *
Disallow: /category/*

Blokuje dostęp do wszystkich stron w katalogu /category/.

4. Parametry zapytań (? i &)

W robots.txt można blokować określone parametry w URL, które są często używane w linkach dynamicznych.


User-agent: *
Disallow: /*?sort=
Disallow: /*&filter=

Ten przykład blokuje wszystkie strony zawierające parametry sort= i filter= w URL, co jest przydatne, gdy strona posiada dużo duplikatów z różnymi parametrami.

5. Użycie znaku ukośnika (/) jako separatora:

Ukośnik jest standardowym separatorem katalogów. Można go użyć, aby precyzyjnie kontrolować katalogi.


User-agent: *
Disallow: /images/

Blokuje dostęp do katalogu /images/ oraz wszystkich jego podkatalogów.

6. Znaki specjalne i ich kombinacje:

W wyrażeniach regularnych w robots.txt, można używać kombinacji powyższych symboli do zaawansowanej kontroli nad dostępem.


User-agent: *
Disallow: /content/*&type=image$

Blokuje dostęp do wszystkich stron, których adres zawiera type=image na końcu, zaczynających się od /content/.

Skuteczność robots.txt

Robots.txt jest skuteczny tylko w przypadku "cywilizowanych" podmiotów, które respektują jego reguły lub w odpowiedniej optymalizacji SEO.

Robots.txt nie jest skutecznym narzędziem np. w ochronie przed kradzieżą treści, ponieważ jego główną funkcją jest udzielanie wskazówek dla robotów wyszukiwarek o tym, które części strony mogą być indeksowane. Plik ten działa jedynie jako dyrektywa, czyli propozycja, a nie wiążąca blokada. Oznacza to, że dobrze zaprogramowane boty, takie jak te używane przez Google czy Bing, respektują zasady zawarte w pliku robots.txt, ale nieuczciwe boty, spamerzy i złodzieje treści mogą go z łatwością zignorować i kontynuować pobieranie danych ze strony. W praktyce, wielu cyberprzestępców po prostu omija robots.txt, traktując go jako nieistotne ograniczenie, co czyni ten plik niewystarczającą ochroną przed kopiowaniem treści.

Aby zapewnić bardziej skuteczną ochronę przed kradzieżą treści, crawlowaniem treści warto rozważyć zastosowanie zaawansowanych narzędzi, takich jak WAF (Web Application Firewall). WAF to zapory aplikacyjne, które działają na poziomie serwera, analizując ruch przychodzący i blokując podejrzane działania, w tym niepożądane próby dostępu do danych czy kradzieży treści. Dzięki temu WAF jest w stanie skutecznie zatrzymać złośliwe boty i zabezpieczyć stronę przed atakami, które robots.txt nie jest w stanie powstrzymać. Integracja WAF z witryną to znacznie bardziej solidne rozwiązanie niż poleganie jedynie na pliku robots.txt, szczególnie w kontekście ochrony treści przed nieautoryzowanym kopiowaniem.

Plik robots.txt to niezwykle ważne narzędzie umożliwiające kontrolę nad tym, jak witryna jest przeszukiwana i indeksowana przez roboty wyszukiwarek. Odpowiednia konfiguracja tego pliku pomaga unikać problemów z nadmiernym obciążeniem serwera, niechcianą indeksacją oraz duplikacją treści. Dzięki dodaniu mapy strony do pliku robots.txt możemy również przyspieszyć indeksowanie witryny, co wpływa pozytywnie na jej widoczność w wynikach wyszukiwania.


Czy ten artykuł był Ci pomocny? Jesteśmy doświadczoną agencją SEO, skontakuj się z nami, jeśli potrzebujesz pomocy ze swoją stroną.

Prowadziłem i rozwijałem działy SEO w bardzo dużych wydawnictwach. Specjalizuję się w tworzeniu kompleksowych rozwiązań zasięgowych.

Spotkajmy się też w moich social media :
Zobacz moje wszystkie artykuły
Zaufali nam:
ElbudBis
Instytu cyfrowego obywatelstwa
Kinesso
Fundacja Orange
Rodzice.pl

Współpracuj z nami!

Naszą mocą jest technologia i doświadczony zespół

Przez lata zdobywaliśmy doświadczenie u największych wydawców w Polsce, a teraz zadbamy o rozwój Twojej firmy od strategii wzrostu po wdrożenia na stronach dzięki naszemu własnemu software house'owi. Zaufaj nam, aby osiągać dobre wyniki.

Porozmawiajmy o Twoich celach i potrzebach!

Przejrzyj najnowsze artykuły i wpisy na naszym blogu