Otwarcie Pon - Sob 09:00-18:00
Email info@westom.pl Zadzwoń +48 530 825 825
Otwarcie Pon - Sob 09:00-18:00
Email info@westom.pl Zadzwoń +48 530 825 825

Robots.txt, do czego służy i jak go używać

Robots.txt, czym jest dla robotów?

Plik robots.txt informuje roboty indeksujące o tym, co mogą, a czego nie powinny robić na stronie internetowej. Plik powinien znajdować się w katalogu głównym witryny wraz z plikiem index.HTML. Plik robots.txt jest plikiem testowym bez tagów HTML. Zawiera w sobie jakby instrukcje dla robotów indeksujących, regulujące zasady dostępu dla robotów wyszukiwarek do wszystkich podstron danej witryny.

Pliku używa się, aby:

  • Uruchomić automatyczne skanowanie mapy witryny XML.
  • Zablokować robotom indeksującym dostęp do niepublicznych części strony internetowe.
  • Uniemożliwić wyszukiwarkom dostęp do narzędzi i skryptów indeksu.
  • Uniemożliwić wyszukiwarkom zaindeksowanie powielonych treści na witrynie (wersja do druku czy lista produktów).

Stosując plik robots.txt trzeba pamiętać o kilku ważnych rzeczach:

  • Zawartość pliku robots.txt jest publicznie dostępna, plik nie jest sposobem na zabezpieczenie dostępu do zasobów.
  • Niektóre roboty indeksujące bardzo szybko pobierają strony w celu ich sprawdzenia, co może spowalniać serwer. W takiej sytuacji zaleca się zablokowanie user agent takich robotów lub ich adresów IP.
  • Roboty zbierające adresy mailowe oraz inne dane teleadresowe, mogą ignorować zapisy w pliku.
  • Strony, które zostały zablokowane w pliku robots.txt , nie będą pobierane ani indeksowane przez wyszukiwarkę Google, jedynie ich adresy URL mogą zostać zaindeksowane, jeśli zostaną znalezione na innych stronach internetowych.
  • Jeśli ważne jest, by wyszukiwarka zaindeksowała całą stronę, to plik robots.txt jest zupełnie niepotrzebny. Plik ten jest użyteczny jedynie w przypadku, kiedy chcemy ukryć jakąś część treści.
  • Wyszukiwarka Google i wszelkie inne szperacze w sieci, trzymają się instrukcji zawartej w pliku. Komendy zapisane w pliku mają na celu głównie ograniczyć dostęp robotom indeksującym.
  • Poddomeny i pliki https: wymagają własnego pliku robots.txt.

Zawartość pliku robots.txt

Skład pliku robots.txt jest prosty. Najpierw definiuje się nazwę robota (User-agent) np. Googlebot, a następnie określa się mu zakaz wstępu (disallow). Roboty są identyfikowane na podstawie klienta użytkownika. Po odnalezieniu pająka, wykonuje on po kolei działania zapisane w kolejnych wierszach dokumentu. Inne ograniczenia:

  • Wielkość liter jest ważna zarówno w katalogach, jak i plikach. Co innego oznacza dla wyszukiwarki: „ROBOT”, „robot” i „Robot”.
  • Znak „#” w pliku robots.txt służy do oznaczania komentarzy. Tekst, który będzie znajdował się po znaku „#” zostanie całkowicie zignorowany (od znaku „#” aż do końca wiersza).
  • Każda grupa użytkowników i zablokowanych klientów powinna być oddzielona pustym wierszem. Odstęp nie powinien być pomiędzy elementami jednej grupy.

Przykład pliku :

User-agent : *
Disallow :

Przykładowe wpisy i ich znaczenie:

Przykład 1:

User-agent : * – znak „*” w sekcji User-agent oznacza „wszystkie roboty”
Disallow : Puste miejsce oznacza, że wszystko jest dozwolone (bo nie jest nic zabronione).

Przykład 2:

User-agent : * –
Disallow : /cgi-bin/
Disallow : /tmp/
Disallow : /private/

Wszystkie roboty mają dostęp do trzech katalogów, oprócz trzech wymienionych.

Przykład 3:

User-agent : Badbot
Disallow : /

Robot Badbot nie może katalogować nic z innego serwera. Znak „/” oznacza wszystkie katalogi. Wielkość liter w przypadku nazwy robota nie ma znaczenia.

Przykład 4:

User-agent : Badbot
Disallow : /

User-agent : *
Disallow : /private/

Robot o nazwie badbot nie może nic katalogować. Wszystkie pozostałe roboty mogą zobaczyć katalog /private/.

Przykład 5:

User-agent : BadBot
Disallow : /tmp/
Disallow : /private/
Disallow : /listing.HTML

User-agent : *
Disallow : /tmp/
Disallow : /private/

Robot Badbot ma zabroniony dostęp do dwóch katalogów oraz pliku listing.HTML. Wszystkie pozostałe roboty nie mogą się dostać do tmp i private.

Inne wyszukiwarki mają swoje roboty:

  • Yahoo! – Yahoobot
  • Bing – msnbot
  • Altavista – scooter
  • Baidu – baiduspider

Podczas tworzenia pliku robots.txt , ważne jest poznanie interesujących nas nazw robotów dla poszczególnych wyszukiwarek. Wykaz najpopularniejszych nazw robotów znajduje się na przykład na stronie: http://www.spiders.pl/baza-browse.php.

Inne funkcje:

  1. Opóźnione wyszukiwanie – tę funkcję obsługują trzy wyszukiwarki: Google, Bing oraz Ask. Funkcja każe robotowi czekać kilka sekund zanim przystąpi do skanowania strony. Ma to na celu odciążenie witryny. Np.

User-agent : Badbot
Disallow : 9

  1. Porównywanie wzorców – tę funkcję obsługują wyszukiwarki Google oraz Bing. Jest to jedna z ważniejszych opcji. Podstawowych porównań dokonuje się za pomocą znaku gwiazdki „*”. Np.

User-agent : Badbot
Disallow : /prywatne*/

Za pomocą znaku dolara “$” można porównać koniec łańcucha. Przykład dla zablokowania adresu URL, które kończą się rozszerzeniem .asp:

User-agent : Badbot
Disallow : /*.asp$

Blokada dostępu wyszukiwarkom do adresów URL zawierających parametry:

User-agent : *
Disallow : /*?*

  1. Dyrektywa Allow – funkcje rozpoznają tylko wyszukiwarki Google oraz Ask. Jest to odwrotność dla dyrektywy Disallow. Pozwala zdefiniować katalogi i strony, które maja zostać przeskanowane. Dyrektywa ta może częściowo unieważnić instrukcję Disallow. Przykład umożliwiający robotowi dostęp do kategorii „roboty”:

User-agent : Badbot
Disallow : /

Allow: /roboty/

  1. Dyrektywa noindex – działa na takiej samej zasadzie, jak atrybut noindex ze znacznika meta robots. Dyrektywa mówi wyszukiwarkom, że mają usunąć dokument ze swojego indeksu. Komenda Disallow zapobiega tylko skanowaniu, ale nie indeksowaniu. Dlatego ta dyrektywa jest tak bardzo użyteczna. Daje pewność, że dokument nie pojawi się w wynikach wyszukiwania.

 

  1. Mapa witryny – dzięki temu można poinformować wyszukiwarki o tym, gdzie odnajdą plik z mapą. Wystarczy tylko krótka komenda:

Sitemap: gdzie_jest_mapa

W miejsce „gdzie_jest_mapa” należy wstawić kompletny adres URL do mapy witryny. Instrukcja ta może zostać umieszczona w dowolnym miejscu w pliku.

Rel = „nofollow”

Atrybut rel = „nofollow” ma za zadanie poinformować wyszukiwarkę, że nie mogą korzystać z określonych linków znajdującej się na danej stronie internetowej. Początkowo zadanie atrybutu nofollow polegało na zabronieniu indeksowania wszystkich linków wychodzących ze strony, na przykład:

<meta name=”robots” content=”nofollow” />

Zanim atrybut nofollow znalazł zastosowanie w blokowaniu tylko niektórych linków, to zabronienie korzystania robotom z tych linków było niezwykle trudne. Trzeba było na przykład przekierować link do adresu URL zablokowanego w pliku robots.txt. Z tego powodu powstał nofollow atrybutu rel. Pozwala to lepiej kontrolować wyszukiwarki. Nie trzeba już blokować wszystkich linków, a można zablokować tylko te, na których nam akurat zależy, by były niewidoczne dla wyszukiwarek.

Na przykład:

<a href=”signin.php” rel=”nofollow”>sign in</a> Różne wyszukiwarki mogą w inny sposób traktować atrybut nofollow. Google nie przekazuje rankingu PageRank ani tekstu kotwicy, za pośrednictwem linków oznaczonych atrybutem nofollow. Atrybut sprawia, że linki docelowe są pomijane w ogólnych mapach sieci. Zastosowanie atrybutu nofollow:·

Podejrzana zawartość – jeśli mamy wątpliwości do jakiejś treści, na przykład do stron internetowych, do których znajdują się linki na naszej witrynie (na przykład komentarze), to takie linki nie powinny zostać zaindeksowane.· Płatne linki – atrybut nofollow może zniwelować wpływ płatnych linków na wyniki wyszukiwania, czy wywieranie złego wrażenia na użytkownikach. Pozycja strony internetowej w rankingu wyszukiwania zależy przecież częściowo na wynikach analizy witryn, które zawierają do nie linki. · Pierwszeństwo wyszukiwania – roboty indeksujące nie mogą zarejestrować się ani zalogować do stron, które tego wymagają. Dlatego wyszukiwarka nie musi indeksować linków „zarejestruj się” i „zaloguj się”. Atrybut nofollow w tym przypadku sprawi, że wyszukiwarka może indeksować inne linki w tym czasie.

Meta robots

Znacznik meta robots składa się z trzech części:

  • Cache – pamięć podręczna, pokazuje wyszukiwarce, czy może zachować kopię strony internetowej w publicznym indeksie pamięci podręcznej dostępnej internautom za pomocą linku „kopia”.
  • Index – indeks, pokazuje wyszukiwarce, czy może skanować i indeksować zawartość witryny.
  • Follow – śledzenie, podobnie jak index, pokazuje wyszukiwarce czy może skanować i indeksować zawartość witryny.

<meta name=”robots” content=”WARTOSC” />

W miejsce WARTOSC można wstawić jeden z poniższych argumentów:

  1. all – wszystko zostanie zaindeksowane.
  2. index, follow – wszystko zostanie zaindeksowane (jak w pkt. 1).
  3. index – strona zostanie zindeksowana
  4. follow – zostaną zaindeksowane linki, w celu późniejszego odwiedzenia przez roboty.
  5. index, nofollow – strona zostane zaindeksowana, lecz linki na niej już nie.
  6. noindex, follow – zaindeksowane zostaną tylko linki.
  7. noindex – strona nie zostanie zindeksowana.
  8. nofollow – nie zostaną zaindeksowane.
  9. noindex, nofollow – roboty nie będą indeksować nic.
  10. none – roboty nie będą indeksować nic (jak w pkt. 9).

Rel = „canonical”

Atrybut rel canonical słuzy identyfikacji zduplikowanej treści i radzenia sobie z nią.

<link rel=”canonical” href=”http://www.mojastrona.org/blog” />

Powyższy przykład pokazuje wyszukiwarce, że strona powinna być traktowana jako kopia strony pod adresem: http://www.mojastrona.org/blog, a wszystkie linki i oceny należą się drugiej stronie. Atrybut canonical działa na zasadzie podobnej do przekierowania 301. Pokazuje wyszukiwarkom, że wiele stron powinno być rozpoznane jako jedna, bez konieczności przekierowania wszystkich użytkowników do nowego adresu. Jednak jest parę różnic między atrybutem canonical, a przekierowaniem 301. Atrybut canonical przeznaczony jest tylko dla wyszukiwarek, a przekierowanie 301 ma za zadanie skierować ruch sieciowy (w postaci robotów i ludzi) do wyznaczonej lokalizacji. Przekierowanie 301 daje silniejszy sygnał i jest dyrektywą, do której wyszukiwarki muszą się podporządkować. Atrybut canonical jest tylko sugestią.

Aby poradzić sobie z problemem powielonej treści, najlepiej jest po prostu wyeliminować duplikaty. Atrybut canonical nie zawsze może zadziałać. Kiedy inne rozwiązania nie są dostępne, to w takim przypadku znacznik canonical jest najlepszym rozwiązaniem.

Znacznik canonical można umieścić wewnątrz nagłówka http witryny. Na przykład:

HTTP/1.1 200 OK

Content-Type: application/pdf

Link: <http://www.przyklad.com/dokument.html>; rel=”canonical”

Content-Length: 785710

(…pozostałe nagłówki HTTP… )

Są jeszcze inne metody, dzięki którym można manipulować treścią i decydować, co zobaczą wyszukiwarki, a co użytkownicy. Oto one:

  • Zablokowanie dostępu do stron, na podstawie deklaracji tożsamości klienta – w tym przypadku warto sprawdzić, skąd pochodzi robot, zanim udzieli się mu dostępu do witryny. Wyszukiwarki działają na takiej samej zasadzie. Używają pewnych protokołów, aby zweryfikować klienta użytkownika w sieci. W tym celu wykonują odwrotną translacje adresów DNS oraz prostą translację adresów IP. Poniżej przykład, jak mógłby wyglądać przykładowy plik Z Google:

> host 66.866.22.9

  1. 66.866.22.9.in-addr.arpa domain name pointer crawl-66.866.22.9-1.badbot.com.

> host crawl-66.866.22.9-1.badbot.com

crawl-66.866.22.9-1.badbot.com has address 66.866.22.9.1

  • Blokada dostępu do witryny robotom poprzez ograniczenia adresu IP – spora część wyszukiwarek skanuje i indeksuje tylko ograniczoną ilość adresów IP. To sprawia, że znacznie łatwiej jest namierzyć roboty i je zablokować. Blokując roboty, trzeba to robić bardzo ostrożnie. Najważniejsze, by nie ograniczyć pająkom dostępu do ruchu sieciowego czy linków, które w innych okolicznościach mogą przynieść korzyści.
  • Znacznik iframe – znacznik ten może być niezwykle użyteczny w przypadku, kiedy na stronie internetowej jest stała zawartość, ale nie chcemy by wyszukiwarki ją widziały. Za pomocą znacznika iframe można zagnieździć na stronie zawartość z wybranego adresu URL. Aby wyszukiwarki nie odnalazły treści na stronie, należy zablokować pająkom dostęp do elementu iframe w pliku robots.txt. Znacznik iframe jest dość często stosowany. Za jego pomocą można uniknąć problemów z powieloną treścią, obniżyć ilość linków na stronie czy zmniejszyć wielkość strony, którą muszą przetworzyć roboty indeksujące.
  • Formularze – za pomocą formularzy można ukryć treść przed wyszukiwarkami. Roboty przecież nie będą wypełniać niczego na stronie internetowej. Zatem jeśli dostęp do treści następuje dopiero po wypełnieniu formularza i nie ma do tej treści żadnych linków zewnętrznych, to taka treść będzie poza zasięgiem wyszukiwarek. Problem może pojawić się w przypadku, kiedy użytkownicy udostępnią linki do treści. Dlatego nie zawsze jest to dobry sposób zabezpieczenia się przed robotami indeksującymi. Najlepiej wprowadzić jeszcze inne rozwiązania, jak na przykład znacznik meta robots czy plik robots.txt.
  • Login, hasło i kod CAPTCHA – wszystkie treści, które są dostępne dla użytkowników po dokonaniu rejestracji i logowania, są niewidoczne dla wyszukiwarek. Podobnie jest z kodem CAPTCHA. Kod jest ciągiem znaków, które trzeba wpisać w podane pole, na ogół przepisać z obrazka. Wyszukiwarki nie potrafią czytać napisów na obrazku i nie będą miały dostępu do treści.
  • Tekst ukryty w obrazkach – podobnie jak w przypadku kodu CAPTCHA. Wyszukiwarki nie potrafią zinterpretować treści na grafice, więc czasami ukrywa się część treści w tej formie. Nie jest to idealne rozwiązanie, szczególnie, że grafika może nie być dobrze czytelna na urządzeniach mobilnych.
  • Tekst ukryty w apletach Javy – tak jak w przypadku grafiki, wyszukiwarka nie poradzi sobie z rozszyfrowaniem treści ukrytej w Javie. Trzeba się jednak zastanowić, czy ukrycie tekstu w Javie tylko po to, by nie widziały go wyszukiwarki, ma jakikolwiek sens.
  • Usunięcie adresu URL z indeksu wyszukiwarki – po zaindeksowaniu strony adres URL można skasować poprzez weryfikację witryny i użycie narzędzi wyszukiwarek.