Specyfikacje metatagu robots, atrybutu data-nosnippet i nagłówka HTTP X-Robots-Tag

Streszczenie

W tym dokumencie szczegółowo opisujemy, jak za pomocą ustawień na poziomie strony i tekstu dostosować sposób wyświetlania treści w wynikach wyszukiwania Google. Aby określić ustawienia na poziomie strony, umieść odpowiedni metatag na stronach HTML lub w nagłówku HTTP. Aby określić ustawienia na poziomie tekstu, umieść atrybut data- nosnippet w elementach HTML w obrębie danej strony.

Korzystanie z metatagu robots

Metatag robots pozwala na zastosowanie precyzyjnego i zależnego od strony podejścia do kontrolowania sposobu, w jaki dana strona ma być indeksowana i wyświetlana użytkownikom w wynikach wyszukiwania Google. Umieść metatag robots w sekcji <head> danej strony w ten sposób:

<!DOCTYPE html>
<html><head>
<meta name="robots" content="noindex" />
(…)
</head>
<body>(…)</body>
</html>

W powyższym przykładzie metatag robots informuje wyszukiwarki, by nie wyświetlały strony w wynikach wyszukiwania. Wartość atrybutu name (robots) wskazuje, że dyrektywa odnosi się do wszystkich robotów. Aby skierować ją do konkretnego robota, zastąp wartość robots w atrybucie name jego nazwą. Konkretne roboty są też określane jako klienty użytkownika (robot korzysta ze swojego klienta użytkownika, gdy przesyła żądanie udostępnienia strony). Nazwa klienta użytkownika standardowego robota indeksującego Google to Googlebot. Aby uniemożliwić indeksowanie strony tylko Googlebotowi, zmień tag w ten sposób:

<meta name="googlebot" content="noindex" />

Ten tag informuje teraz Google, że strony nie należy wyświetlać w wynikach wyszukiwania. Wielkość liter w atrybutach namecontent nie jest rozróżniana.

Wyszukiwarki mogą mieć wiele robotów do różnych celów i zastosowań. Zobacz pełną listę robotów Google. Aby na przykład wyświetlać stronę w wynikach wyszukiwania Google w internecie, ale nie w Google News, użyj tego metatagu:

<meta name="googlebot-news" content="noindex" />

Aby pojedynczo wymienić kilka robotów, użyj wielu metatagów robots:

<meta name="googlebot" content="noindex">
<meta name="googlebot-news" content="nosnippet">

Korzystanie z nagłówka HTTP X-Robots-Tag

X-Robots-Tag może być elementem nagłówka HTTP odpowiedzi na żądanie określonego adresu URL. W nagłówku X-Robots-Tag działają wszystkie dyrektywy z metatagu robots. Przykładowa odpowiedź HTTP z elementem X-Robots-Tag informującym roboty, by nie indeksowały strony, wygląda tak:

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
(…)
X-Robots-Tag: noindex
(…)

W odpowiedzi HTTP możesz połączyć wiele nagłówków X-Robots-Tag lub podać listę dyrektyw rozdzielonych przecinkami. Przykładowa odpowiedź HTTP, która zawiera połączone nagłówki noarchive X-Robots-Tagunavailable_after X-Robots-Tag:

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
(…)
X-Robots-Tag: noarchive
X-Robots-Tag: unavailable_after: 25 Jun 2010 15:00:00 PST
(…)

X-Robots-Tag może przed dyrektywami zawierać opcjonalnie nazwę klienta użytkownika. Na przykład ten zestaw nagłówków HTTP X-Robots-Tag warunkowo zezwala różnym wyszukiwarkom na wyświetlanie strony w wynikach wyszukiwania:

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
(…)
X-Robots-Tag: googlebot: nofollow
X-Robots-Tag: otherbot: noindex, nofollow
(…)

Dyrektywy bez nazwy klienta użytkownika obowiązują wszystkie roboty. W nagłówkach HTTP, nazwach klienta użytkownika i określonych wartościach nie jest rozróżniana wielkość liter.

Prawidłowe dyrektywy indeksowania i wyświetlania

Poniższe dyrektywy umożliwiają kontrolowanie indeksowania oraz wyświetlania stron za pomocą metatagu robots i X-Robots-Tag. Każda wartość odpowiada konkretnej dyrektywie. W poniższej tabeli znajdziesz nazwy i opisy wszystkich dyrektyw, których przestrzega Google. Kilka dyrektyw można połączyć w listy rozdzielane przecinkami. W tych dyrektywach nie jest rozróżniana wielkość liter. W wynikach wyszukiwania krótki opis to fragment tekstu, który ma wykazać trafności dokumentu względem zapytania użytkownika.

Dyrektywy

all
Brak ograniczeń indeksowania i wyświetlania. Ta dyrektywa to wartość domyślna i wyraźne jej podawanie nie ma żadnego efektu.
noindex
Uniemożliwia wyświetlanie strony w wynikach wyszukiwania.
nofollow
Uniemożliwia korzystanie z linków na stronie.
none
Odpowiednik: noindex, nofollow.
noarchive
Uniemożliwia wyświetlanie w wynikach wyszukiwania linku do kopii w pamięci podręcznej.
nosnippet
Uniemożliwia wyświetlanie w wynikach wyszukiwania krótkiego opisu strony lub podglądu filmu. Miniatura obrazu statycznego (jeśli jest dostępna) może być nadal widoczna, jeśli zwiększa to wygodę użytkowników. Dotyczy to wszystkich form wyników wyszukiwania (w Google: wyszukiwarki, Grafiki Google, kart Discover).
max-snippet:[number]

Określa, że w przypadku danego wyniku wyszukiwania liczba znaków we fragmencie tekstu powinna wynosić maksymalnie [number]. (Należy pamiętać, że adres URL może wyświetlać się w obrębie strony wyników wyszukiwania jako kilka wyników). Nie wpływa to na podgląd obrazu lub filmu. Dotyczy to wszystkich form wyników wyszukiwania (np. Wyszukiwarki Google, Grafiki Google, kart Discover, Asystenta). Limit ten nie obowiązuje jednak wtedy, gdy wydawca indywidualnie udzielił zgody na wykorzystanie treści. Jeśli na przykład wydawca dostarcza treści w formie uporządkowanych danych na stronie lub ma umowę licencyjną z Google, to ustawienie nie zakłóca bardziej szczegółowych dozwolonych zastosowań. Ta dyrektywa jest ignorowana, jeśli nie określono żadnego możliwego do analizowania [number].

Wartości specjalne:

  • 0: nie ma być wyświetlany żaden krótki opis. Odpowiednik: nosnippet.
  • -1: nie ma limitu długości krótkiego opisu.
  • Przykład:

    <meta name="robots" content="max-snippet:20">
    max-image-preview:[setting]

    W przypadku tej strony należy ustawić maksymalny rozmiar podglądu obrazu w wynikach wyszukiwania.

    Akceptowane wartości setting:

  • none: nie ma być wyświetlany żaden podgląd obrazu.
  • standard: może być wyświetlany domyślny podgląd obrazu.
  • large: może być wyświetlany większy podgląd obrazu, nawet tak szeroki jak widoczny obszar.
  • Dotyczy to wszystkich form wyników wyszukiwania (np. Wyszukiwarki Google, Grafiki Google, kart Discover, Asystenta). Limit ten nie obowiązuje jednak wtedy, gdy wydawca indywidualnie udzielił zgody na wykorzystanie treści. Jeśli na przykład wydawca dostarcza treści w formie uporządkowanych danych na stronie lub ma umowę licencyjną z Google, to ustawienie nie zakłóca bardziej szczegółowych dozwolonych zastosowań.

    Przykład:

    <meta name="robots" content="max-image-preview:standard">
    max-video-preview:[number]

    Wyświetlane w wynikach wyszukiwania fragmenty filmów z tej strony powinny trwać maksymalnie [number] s.

    Inne obsługiwane wartości:

  • 0: można użyć najwyżej obrazu statycznego (zgodnie z ustawieniem max-image-preview).
  • -1: nie ma limitu.
  • Dotyczy to wszystkich form wyników wyszukiwania (np. w Google: wyszukiwarki, Grafiki Google, kart Discover, Asystenta). Ta dyrektywa jest ignorowana, jeśli nie określono żadnego możliwego do analizowania [number].

    Przykład:

    <meta name="robots" content="max-video-preview:-1">
    notranslate
    Uniemożliwia proponowanie tłumaczenia strony w wynikach wyszukiwania.
    noimageindex
    Uniemożliwia indeksowanie obrazów na tej stronie.
    unavailable_after: [RFC-850 date/time]

    Uniemożliwia wyświetlanie tej strony w wynikach wyszukiwania po określonej dacie i godzinie. Datę i godzinę należy podać w formacie RFC 850. Ta dyrektywa jest ignorowana, jeśli nie określono prawidłowego [date/time]. Domyślnie treści nie mają daty ważności.

    Przykład:

    <meta name="robots" content="unavailable_after: Sunday, 01-Sep-24 01:00:00 PDT">

    Stosowanie połączonych dyrektyw indeksowania i wyświetlania

    Jeśli w metatagu robots chcesz utworzyć instrukcję z wieloma dyrektywami, rozdziel je przecinkami. Tak wygląda przykładowy metatag robots informujący roboty indeksujące, by nie indeksowały strony ani nie korzystały z żadnych zawartych na niej linków:

    <meta name="robots" content="noindex, nofollow">
    

    W poniższym przykładzie ograniczono liczbę znaków we fragmencie tekstu do 20 i umożliwiono wyświetlanie dużego podgląd obrazu:

    <meta name="robots" content="max-snippet:20, max-image-preview:large">
    

    Gdy wymienisz kilka robotów z różnymi dyrektywami, wyszukiwarka przestrzega sumy dyrektyw negatywnych. np.:

    <meta name="robots" content="nofollow">
    <meta name="googlebot" content="noindex">
    

    Po zindeksowaniu strony z tymi metatagami Google zinterpretuje ją jako dyrektywę noindex, nofollow.

    Korzystanie z atrybutu data-nosnippet elementów HTML

    Możesz wskazać fragmenty tekstu ze strony HTML, które mają nie być używane w krótkich opisach. Można to zrobić na poziomie elementu HTML z atrybutem HTML data-nosnippet w elementach span, divsection. data-nosnippet jest uważany za atrybut logiczny i jest poprawny z wartością lub bez niej. Aby umożliwić odczyt maszynowy, należy używać prawidłowego kodu HTML, a wszystkie tagi muszą być odpowiednio zamknięte.

    Przykłady:

    <p>This text can be shown in a snippet
     <span data-nosnippet>and this part would not be shown</span>.</p>
    
    <div data-nosnippet>not in snippet</div>
    <div data-nosnippet="true">also not in snippet</div>
    
    <div data-nosnippet>some text</html>
    <!-- unclosed "div" will include all content afterwards -->
    
    <mytag data-nosnippet>some text</mytag>
    <!-- NOT VALID: not a span, div, or section -->
    

    Z reguły Google renderuje strony, by je zindeksować, chociaż nie jest to pewne. Dlatego wyodrębnienie data-nosnippet może nastąpić zarówno przed renderowaniem, jak i po nim. Aby uniknąć niepewności związanej z renderowaniem, nie należy dodawać ani usuwać atrybutu data-nosnippet istniejących węzłów za pomocą JavaScriptu. Podczas dodawania elementów DOM za pomocą JavaScriptu należy w razie potrzeby dołączyć atrybut data-nosnippet przy początkowym dodawaniu elementu do DOM strony. Jeśli używasz elementów niestandardowych, spakuj je lub wyrenderuj za pomocą elementów div, span lub section, jeśli chcesz użyć data- nosnippet.

    Korzystanie z uporządkowanych danych

    Metatagi robotów określają ilość treści, które Google automatycznie wyodrębnia ze stron internetowych, by wyświetlić je w wynikach wyszukiwania. Wielu wydawców korzysta też z uporządkowanych danych schema.org, by udostępnić określone informacje na potrzeby prezentacji wyszukiwania. Ograniczenia metatagu robots nie wpływają na korzystanie z uporządkowanych danych. Aby zarządzać wykorzystaniem uporządkowanych danych na stronach internetowych, wystarczy zmodyfikować same typy i wartości tych danych, dodając lub usuwając informacje tak, by udostępnić tylko wybrane dane. Należy też pamiętać, że uporządkowane dane są użyteczne dla wyników wyszukiwania tylko wtedy, gdy są wskazane w elemencie data-nosnippet.

    Praktyczne wdrożenie X-Robots-Tag

    Możesz dodać X-Robots-Tag do odpowiedzi HTTP strony za pomocą plików konfiguracji oprogramowania serwerowego Twojej witryny. Na przykład na serwerach opartych na Apache można używać plików .htaccess i httpd.conf. Zaletą stosowania nagłówka X-Robots-Tag w odpowiedziach HTTP jest to, że możesz określić dyrektywy indeksowania obowiązujące globalnie w całej witrynie. Obsługa wyrażeń regularnych pozwala na znaczną elastyczność.

    Aby na przykład dodać noindex, nofollow X-Robots-Tag do odpowiedzi HTTP dla plików PDF w całej witrynie, umieść ten fragment w pliku .htaccess w katalogu głównym, pliku httpd.conf w Apache lub pliku konfiguracji witryny w NGINX.

    Apache:

    <Files ~ "\.pdf$">
      Header set X-Robots-Tag "noindex, nofollow"
    </Files>
    

    NGINX:

    location ~* \.pdf$ {
      add_header X-Robots-Tag "noindex, nofollow";
    }
    

    Nagłówka X-Robots-Tag możesz używać w przypadku plików innych niż HTML (takich jak obrazy), przy których nie można zastosować metatagów robots. Tak wygląda przykładowy nagłówek z dyrektywą noindexX-Robots-Tag obejmującą pliki graficzne (PNG, JPEG, JPG, GIF) w całej witrynie:

    Apache:

    <Files ~ "\.(png|jpe?g|gif)$">
      Header set X-Robots-Tag "noindex"
    </Files>
    

    NGINX:

    location ~* \.(png|jpe?g|gif)$ {
      add_header X-Robots-Tag "noindex";
    }
    

    Łączenie skanowania z dyrektywami indeksowania i wyświetlania

    Metatagi robots i nagłówki HTTP X-Robots-Tag są odczytywane podczas skanowania strony pod danym adresem URL. Jeśli w pliku robots.txt zabronisz skanowania strony, roboty nie wykryją dyrektyw indeksowania i wyświetlania, więc nie będą ich przestrzegać. Aby wyszukiwarki stosowały się do dyrektyw indeksowania i wyświetlania, adresy URL stron zawierających te dyrektywy muszą być dostępne do skanowania.