Przejdź do treści

Nagłówek i treść

Roboty

<head>
	<meta name="Robots" content="dyrektywy" />
</head>
gdzie jako "dyrektywy" należy wpisać:
  • "index" - strona, na której wstawiono polecenie, będzie indeksowana przez roboty sieciowe (indeksery) - domyślnie
  • "noindex" - strona, na której wstawiono polecenie, nie będzie indeksowana
  • "follow" - przechodzenie do stron, do których odnoszą się odsyłacze, znajdujące się w dokumencie - domyślnie
  • "nofollow" - robot nie przechodzi do stron stron wskazywanych przez odsyłacze wstawione na stronie, ale może je zaindeksować, jeżeli istnieją inne linki umieszczone na stronach bez tego zakazu
  • "index, nofollow" - indeksuje stronę, nie przechodzi do stron wskazywanych przez odsyłacze
  • "noindex, follow" - nie indeksuje strony, na której wstawiono polecenie, przechodzi do stron wskazywanych przez odsyłacze
  • "all" = "index, follow" - indeksuje wszystko (domyślnie)
  • "none" = "noindex, nofollow" - nie indeksuje nic

Polecenie określa sposób zachowania się robotów-indekserów, czyli specjalnych programów zbierających informacje o stronach w Internecie, wykorzystywane później przez wyszukiwarki. Stosuj noindex tylko wtedy, gdy nie chcesz, aby Twoja strona była odnaleziona przez wyszukiwarki (bo np. treści na niej zawarte są ściśle tajne :-). Niestety całkowitej pewności nie będzie nigdy, ponieważ nie wszystkie roboty interpretują to polecenie.

Pamiętaj, że domyślnym zachowaniem robotów wyszukiwarek sieciowych jest indeksowanie wszystkich dokumentów. To oznacza, że dyrektywa "index, follow" może być pominięta, a zamiast wpisywać "noindex, follow" czy "index, nofollow" zwykle wystarczy wpisać odpowiednio: "noindex" i "nofollow". W przypadku zupełnego braku znacznika <meta name="Robots" content="..." /> robot zaindeksuje wszystkie strony serwisu, dlatego dodaje się go zwykle tylko, kiedy chcemy zablokować dostęp robotowi do wybranych stron.

Zwróć uwagę, że wartość "nofollow" blokuje jedynie podążanie za odnośnikami, a to oznacza, że może nie zapobiec indeksowaniu stron, do których prowadzą linki umieszczone w dokumencie. Jeżeli na innych stronach - możliwe, że w zupełnie innym serwisie - znajdą się linki do tych stron, zostaną one normalnie zaindeksowane. Aby temu zapobiec, należy wstawić dyrektywę "noindex" na stronach, które nie powinny być zaindeksowane.

Specyfikacja HTML 4.01 wskazuje tylko następujące wartości tego elementu: all, index, nofollow, noindex. Choć inne specyfikacje jasno wskazują na dodatkowe wartości, to jeśli chcesz mieć największą pewność, że dyrektywy zostaną uwzględnione, zamiast "none" możesz użyć "noindex, nofollow".

Niestandardowe dyrektywy robotów

Roboty mogą interpretować dodatkowe, niestandardowe dyrektywy (wszystkie poniższe są rozpoznawane przez robota wyszukiwarki Google):

  • "noarchive" - blokada archiwizowania kopii strony w pamięci podręcznej wyszukiwarki
  • "nosnippet" - blokada wyświetlania opisu strony w wynikach wyszukiwania
  • "noodp" - opis strony nie zostanie pobrany z katalogu Open Directory Project

Dyrektywa "noarchive" blokuje archiwizowanie dokumentu. Wyszukiwarki sieciowe często zapisują kopię indeksowanych stron w swojej pamięci podręcznej. Użytkownicy korzystający z wyszukiwarki mogą otworzyć taką kopię strony np. kiedy oryginalna witryna jest chwilowo niedostępna. Aby otworzyć stronę z pamięci podręcznej wyszukiwarki Google, należy na liście wyników wyszukiwania kliknąć link "Kopia".

Aby połączyć dyrektywy standardowe z niestandardowymi, nie należy wpisywać kilku osobnych znaczników <meta name="Robots" />, ale podać pełną listę po przecinku, np.:

<meta name="Robots" content="nofollow, noarchive" />

Googlebot

Wyszukiwarka Google wprowadziła specjalny znacznik, który pozwala wydać dyrektywy tylko dla robota Googlebot. Na przykład aby zablokować robotowi Google dostęp do strony, ale jednocześnie pozwolić na to robotom innych wyszukiwarek, można wpisać:

<meta name="Googlebot" content="noindex, nofollow" />

Blokada indeksowania wybranych odsyłaczy

Element <meta name="Robots" content="nofollow" /> powoduje, że roboty sieciowe nie będą podążać za żadnymi linkami umieszczonymi w dokumencie. Czasami jednak chcielibyśmy zablokować uwzględnianie tylko wybranych odsyłaczy. Taka sytuacja najczęściej ma miejsce, kiedy wstawiamy na swojej stronie system komentarzy. Spammerzy lub spamboty (automaty spamujące) często wpisują komentarze bez żadnej konkretnej treści, ale za to przeładowane linkami do stron, które chcą zareklamować. Aby uczynić takie linki nieistotnymi dla robota wyszukiwarki Google, należy dopisać do wszystkich odsyłaczy np. z komentarzy dodatkowy atrybut:

<a href="http://adres strony" rel="nofollow">...</a>

Takie linki zostaną zignorowane przez robota wyszukiwarki Google, zatem być może zniechęci to spammera do umieszczania ich na naszej stronie, a nawet jeśli nie, to przynajmniej nie damy mu satysfakcji i nie przyczynimy się do nieuczciwego wypromowania kolejnej bezużytecznej strony :-)

Plik robots.txt

Znacznik <meta name="Robots" /> jest przydatny w celu określania dostępu przez roboty do pojedynczych dokumentów HTML. Okazuje się jednak mało praktyczny, jeśli chcielibyśmy zablokować dostęp np. do wszystkich dokumentów z określonego katalogu serwisu albo wręcz hurtowo do wszystkich plików witryny. Znacznik ten okazuje się wręcz zupełnie nieprzydatny, jeśli zależy nam na zablokowaniu indeksowania np. zdjęć z naszego serwisu (większość wyszukiwarek posiada osobne formularze do wyszukiwania plików graficznych).

Istnieje jednak możliwość określenia globalnego dostępu do wszystkich plików serwisu - nosi on nazwę: Standard Wykluczania Robotów (ang. A Standard for Robot Exclusion - Robots Exclusion Protocol). W głównym katalogu konta WWW - czyli tam, gdzie znajduje się dokument strony głównej serwisu (index.html) - należy umieścić specjalny plik pod nazwą robots.txt. W pliku tym umieszcza się tzw. rekordy - każdy zawiera grupę linijek w postaci:

Pole: wartość

Wielkość liter w nazwach pól nie ma znaczenia, natomiast zwykle ma znaczenie w wartościach pola. Oprócz typowych linijek możliwe jest również umieszczanie komentarzy, czyli tekstu, który nie zostanie wzięty pod uwagę przez roboty. Komentarz rozpoczyna się znakiem "#", a kończy na końcu linijki.

User-Agent

W jednym pliku robots.txt może się znajdować dowolna liczba rekordów rozdzielonych pustymi linijkami - każdy musi się rozpoczynać linią User-Agent, wskazującą do których robotów odnoszą się dalsze linijki danego rekordu:

# Ten rekord odnosi się tylko do robota "Googlebot":
User-agent: Googlebot

Pojedynczy rekord może zawierać więcej niż jedną linię User-Agent:

# Ten rekord odnosi się tylko do robotów "Googlebot" i "MSNBot":
User-agent: Googlebot
User-agent: MSNBot

Specyfikacja HTML 4.01 wyraźnie zabrania umieszczania kilku linii User-Agent jednej pod drugą, jednak standard (nieopracowany przez W3C) mówi na ten temat zupełnie co innego. Googlebot interpretuje wielokrotne linijki tego typu.

Wielkość liter w nazwach robotów nie ma znaczenia. Lista istniejących robotów wyszukiwarek sieciowych znajduje się na stronach:

Zamiast nazwy robota można wpisać również znak gwiazdki ("*"), co wskazuje każdego istniejącego robota. Kiedy robot danej wyszukiwarki odwiedza witrynę, najpierw sprawdza czy istnieje plik robots.txt. Jeśli tak, szuka w nim rekordu (grupy linii), który pasuje do jego nazwy. Jeśli taki znajdzie, odczytuje linie z wybranego rekordu i pomija wszystkie inne. Jeżeli nie znajdzie, szuka rekordu z linią User-Agent: *. Jeżeli takiego nie znajdzie, indeksuje bez ograniczeń wszystkie dokumenty serwisu. Zwracam uwagę, że jeśli robot znajdzie przeznaczony specjalnie dla niego rekord, to w ogóle nie zajmuje się rekordem User-Agent: *.

Disallow

W rekordach poniżej User-Agent musi się znajdować jedna lub więcej linii Disallow, wskazujących ścieżki do plików, do których robot nie ma dostępu. Każda ścieżka musi rozpoczynać się od znaku ukośnika ("/") i powstaje poprzez wycięcie pierwszego członu adresu URL. Na przykład aby zablokować dostęp do pliku http://www.example.org/index.html, należy wpisać:

User-Agent: *
Disallow: /index.html

Pusta wartość Disallow oznacza brak ograniczeń w indeksowaniu dokumentów:

User-Agent: *
# Wszystkie dokumenty serwisu będą normalnie indeksowane:
Disallow:

Aby zablokować dostęp do wszystkich plików z jakiegoś katalogu i ewentualnie wszystkich jego podkatalogów, wystarczy wpisać samą nazwę tego katalogu, która koniecznie musi kończyć się znakiem ukośnika ("/"):

User-Agent: *
# Żaden plik z katalogu "prywatne" nie zostanie zaindeksowany:
Disallow: /prywatne/

Aby zablokować dostęp do wszystkich plików całego serwisu, jako ścieżkę należy podać sam ukośnik:

# Ten serwis w ogóle nie będzie indeksowany przez roboty:
User-Agent: *
Disallow: /

Allow

Standard Wykluczania Robotów został rozszerzony o dodatkową dyrektywę - Allow, której działanie jest przeciwne do Disallow, czyli wskazuje ścieżki, które robot może indeksować:

# Tylko strona główna tego serwisu zostanie zaindeksowana:
User-Agent: *
Disallow: /
Allow: /index.html

Dyrektywa Allow może nie być interpretowana przez niektóre roboty wyszukiwarek (jest rozpoznawana przez robota Google)

Wzorce dopasowania

Co zrobić, jeśli chcemy zablokować indeksowanie wszystkich zdjęć serwisu, ale jednocześnie zezwolić na indeksowanie samych dokumentów HTML? Najlepiej byłoby umieścić wszystkie zdjęcia w osobnym katalogu:

User-Agent: *
Disallow: /zdjecia/

Czasem jednak jest to niemożliwe. W takim przypadku pomocne są tzn. wzorce dopasowania, czyli znaki specjalne, które pozwalają dopasować ścieżki na podstawie ogólnych warunków. Googlebot rozpoznaje następujące znaki specjalne w ścieżkach dyrektyw Disallow oraz Allow:

  • * - Zastępuję dowolny ciąg znaków (również pusty)
  • $ - Jeżeli zostanie postawiony na końcu ścieżki, oznacza dopasowanie do końca nazwy, dzięki temu nadaje się szczególnie do określania ścieżek do plików określonego typu, czyli o wybranym rozszerzeniu nazwy
User-Agent: Googlebot
# Nie indeksuj plików graficznych:
Disallow: /*.jpg$
Disallow: /*.jpeg$
Disallow: /*.gif$
Disallow: /*.png$
# Nie indeksuj dokumentów z identyfikatorami sesji:
Allow: /*?$
Disallow: /*?

Różnica pomiędzy /*.gif$ a /*.gif jest taka, że w drugim przypadku zablokowane zostaną również pliki: /nazwa.gift, /nazwa.gif/nazwa.html, co raczej nie było naszym zamiarem.

Wzorce dopasowania są rozszerzeniem standardu i mogą być nieobsługiwane przez wiele robotów sieciowych (są interpretowane przez robota Google), dlatego zaleca się nie umieszczać ich w rekordzie User-Agent: *.

Swój plik robots.txt możesz przetestować w specjalnym generatorze.

Strona kanoniczna

W niemal każdym serwisie internetowym zdarza się, że ta sama treść jest prezentowana na kilka sposobów, tzn. pod różnymi adresami URL:

  • specjalna wersja serwisu przystosowana dla urządzeń mobilnych (smartfony, tablety itp.)
  • osobne wersje artykułów przeznaczone do wydruku
  • dokumenty zawierające tę samą listę pozycji (produktów, wyników wyszukiwania, artykułów itp.), a jedynie posortowanych w inny sposób - np. artykuly.php?sortuj=data i artykuly.php?sortuj=alfabet
  • obszary witryny wymagające zalogowania użytkownika, kiedy w adresie jest przekazywany identyfikator sesji - np. index.php?PHPSESSID=0123456789abcdef0123456789abcdef lub index.php?sid=0123456789abcdef0123456789abcdef
  • linki prowadzące do tej samej strony mają różną postać:
    • jeśli domyślnym numerem strony artykułu będzie 1, to adres artykul.php?strona=1 może być równoważny artykul.php
    • podobnie kolejność parametrów adresu URL, podawanych po pytajniku i rozdzielonych znakami "&", zwykle nie ma znaczenia, tzn. adres artykul.php?id=1&strona=1 zwykle jest równoważny artykul.php?strona=1&id=1
    • nazwę pliku "index.htm", "index.html" czy "index.php" zwykle można pominąć podając adres strony, dlatego http://www.example.com/index.html jest równoważny http://www.example.com/

Teoretycznie nie powinno to przeszkadzać czytelnikom naszej witryny, jednak może stać się problemem w przypadku wyszukiwarek internetowych - takich jak np. Google. Roboty wyszukiwarek starają się eliminować duplikujące się treści ze swojej bazy zaindeksowanych stron. Oznacza to, że jeśli ta sama lub bardzo podobna treść występuje w Twoim serwisie pod kilkoma różnymi adresami URL, w wynikach wyszukiwania pojawi się tylko jedna jej wersja. Która? To zależy, którą robot indeksujący uzna za podstawową. Niestety to tyko automat dlatego może się mylić, uznając za wersję podstawową adres URL z wieloma niepotrzebnymi parametrami po pytajniku lub wersję artykułu przeznaczoną do wydruku. Może to potencjalnie obniżyć pozycję Twojej witryny w wynikach wyszukiwania oraz wywołać pewną dezorientację czytelnika, który trafił z wyszukiwarki do Twojego serwisu na niewłaściwą wersję dokumentu.

Istnieje jednak możliwość jasnego wskazania robotowi wyszukiwarki, która wersja strony jest tą podstawową - stroną kanoniczną. Aby to zrobić, na każdej wersji takiej strony, która różni się adresem URL od wersji podstawowej, należy podać bezpośredni adres prowadzący do wersji kanonicznej:

<head>
	<link rel="Canonical" href="adres strony podstawowej" />
</head>
gdzie jako "adres strony podstawowej" można podać zarówno adres bezwzględny (rozpoczynający się od http://) jak i względną ścieżkę dostępu do strony, która ma być prezentowana w wynikach wyszukiwania.

Warto zwrócić uwagę, że nie należy w ten sposób oznaczać dokumentów, które nie stanowią jedynie innej wersji strony kanonicznej (podstawowej), ponieważ wywoła to tylko ich niepotrzebną eliminację z wyników wyszukiwania. Trzeba również mieć świadomość, że znacznik ten stanowi jedynie sugestię dla robota wyszukiwarki i może nie być wzięty pod uwagę, jeśli robot z innego powodu uzna, że w danej sytuacji takie oznaczenie strony kanonicznej nie będzie pożądane dla użytkownika korzystającego z wyszukiwarki.

Zobacz także

Komentarze

Zobacz więcej komentarzy