Korzystanie z interfejsu Indexing API

Omówienie

Za pomocą interfejsu Indexing API możesz poprosić Google o zaktualizowanie stron w indeksie Google lub usunięcie ich. Żądania muszą określać lokalizację strony internetowej. Możesz również otrzymywać informacje o stanie powiadomień wysłanych do Google. Obecnie interfejsu Indexing API można używać tylko do indeksowania stron z danymi JobPosting lub BroadcastEvent umieszczonymi w obiekcie VideoObject.

Wysyłając żądanie do interfejsu Indexing API, określ lokalizację samodzielnej strony internetowej, by powiadomić Google, że może ją zindeksować lub usunąć ze swojego indeksu.

Te przykłady ukazują działania, które możesz wykonać za pomocą interfejsu Indexing API:

Aktualizacja adresu URL
Send the following HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish endpoint
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_UPDATED"
}
Usunięcie adresu URL
Send the following HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish endpoint
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_DELETED"
}
Uzyskanie informacji o stanie powiadomienia
Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata endpoint

Parametry

Ta tabela opisuje pola niezbędne w przypadku wszystkich metod (aktualizacja i usunięcie adresu URL):

Pola
url

Wymagane

W pełni kwalifikowana lokalizacja elementu, który chcesz zaktualizować lub usunąć.

type

Wymagane

Typ przesłanego powiadomienia.

Wytyczne

Te wskazówki dotyczą żądań aktualizacji i usuwania adresów URL.

  • Wszystkie wywołania https://indexing.googleapis.com/v3/UrlNotifications:publish MUSZĄ używać nagłówka Content-Type „application/json”.
  • Możesz przesłać 1 URL w treści żądania aktualizacji lub połączyć do 100 żądań zgodnie z opisem w sekcji Wysyłanie zbiorczych żądań indeksowania.
  • Treść żądania w tych przykładach to wartość zmiennej content używanej w przykładach tokenów dostępu.

Aktualizacja adresu URL

Aby powiadomić Google o nowym adresie URL do zindeksowania lub o zaktualizowaniu treści zamieszczonych pod przesłanym wcześniej adresem URL, wykonaj te czynności:

  1. Prześlij żądanie POST do tego punktu końcowego:
    Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
  2. W treści żądania określ lokalizację strony, używając tej składni:
    {
      "url": "content_location",
      "type": "URL_UPDATED"
    }
  3. Odpowiadając na prawidłowe wywołania interfejsu Indexing API, Google przesyła element HTTP 200. Odpowiedź HTTP 200 oznacza, że Google może wkrótce spróbować ponownie zindeksować ten URL. Treść odpowiedzi zawiera obiekt UrlNotificationMetadata, którego pola odpowiadają polom zwróconym przez żądanie stanu powiadomienia.
  4. Jeśli nie otrzymasz odpowiedzi HTTP 200, zapoznaj się z informacjami o błędach interfejsu Indexing API.
  5. Jeśli zawartość strony zmieni się, prześlij kolejne powiadomienia o aktualizacji. Powinno to spowodować podjęcie przez Google próby ponownego zindeksowania strony.
  6. Możesz potrzebować większego limitu niż domyślny. Aby wyświetlić bieżący limit i poprosić o dodatkowy, przejdź do sekcji Limit.

Usunięcie adresu URL

Gdy usuniesz stronę ze swoich serwerów lub dodasz tag <meta name="robots" content="noindex" /> w sekcji <head> danej strony, powiadom nas o tym, abyśmy mogli usunąć tę stronę z naszego indeksu. Dzięki temu unikniemy prób ponownego jej skanowania i indeksowania. Zanim prześlesz żądanie usunięcia strony, URL musi zwracać kod stanu 404 lub 410 albo strona musi zawierać tag meta <meta name="robots" content="noindex" />.

Aby przesłać żądanie usunięcia strony z naszego indeksu, wykonaj te czynności:

  1. Prześlij żądanie POST do tego punktu końcowego:
    Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
  2. W treści żądania wskaż URL, który chcesz usunąć, używając tej składni:
    {
      "url": "content_location",
      "type": "URL_DELETED"
    }

    Przykład:

    {
      "url": "https://careers.google.com/jobs/google/technical-writer",
      "type": "URL_DELETED"
    }
  3. Odpowiadając na prawidłowe wywołania interfejsu Indexing API, Google przesyła element HTTP 200. Odpowiedź HTTP 200 oznacza, że Google może wkrótce usunąć ten URL z indeksu. Treść odpowiedzi zawiera obiekt UrlNotificationMetadata, którego pola odpowiadają polom zwróconym przez żądanie stanu powiadomienia.
  4. Jeśli nie otrzymasz odpowiedzi HTTP 200, zapoznaj się z informacjami o błędach interfejsu Indexing API.
  5. Możesz potrzebować większego limitu niż domyślny. Aby wyświetlić bieżący limit i poprosić o dodatkowy, przejdź do sekcji Limit.

Uzyskanie informacji o stanie powiadomienia

Za pomocą interfejsu Indexing API możesz sprawdzić, kiedy ostatnio odebraliśmy różnego rodzaju powiadomienia dotyczące danego adresu URL. Żądanie GET nie zawiera informacji o tym, kiedy Google zindeksuje lub usunie URL – zwraca tylko informację o tym, czy udało się przesłać żądanie.

Aby poznać stan powiadomienia, wykonaj te czynności:

  1. Prześlij żądanie GET do tego punktu końcowego. Wskazane adresy URL muszą być zakodowane. Możesz na przykład zastąpić : (dwukropek) elementem %3A, a symbol / (ukośnik prawy) – elementem %2F.
    Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata?url=url-encoded_url

    Przykład:

    GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=https%3A%2F%2Fcareers.google.com%2Fjobs%2Fgoogle%2Ftechnical-writer
    
  2. Interfejs Indexing API przesyła w odpowiedzi komunikat HTTP 200 z ładunkiem zawierającym szczegóły powiadomienia. Te przykłady pokazują treść odpowiedzi, która zawiera informacje na temat powiadomienia o aktualizacji lub usunięciu:
    {
      url: "http://foo.com",
      latest_update: {
        type: "URL_UPDATED",
        notify_time: "2017-07-31T19:30:54.524457662Z"
      },
      latest_remove: {
        type: "URL_DELETED",
        notify_time: "2017-08-31T19:30:54.524457662Z"
      }
    }
    
  3. Jeśli nie otrzymasz odpowiedzi HTTP 200, zapoznaj się z informacjami o błędach interfejsu Indexing API.
  4. Możesz potrzebować większego limitu niż domyślny. Aby wyświetlić bieżący limit i poprosić o dodatkowy, przejdź do sekcji Limit.

Wysyłanie zbiorczych żądań indeksowania

Aby zmniejszyć liczbę połączeń HTTP, które musi nawiązać klient, możesz połączyć do stu wywołań interfejsu Indexing API w jednym żądaniu HTTP. Służy do tego żądanie wieloczęściowe, nazywane żądaniem zbiorczym.

Wysyłając do interfejsu Indexing API żądanie zbiorcze, użyj punktu końcowego:

https://indexing.googleapis.com/batch

Treść zbiorczego żądania zawiera wiele części. Każda część to kompletne żądanie HTTP z własnym czasownikiem, adresem URL, nagłówkami i treścią. Żadna część żądania zbiorczego nie może przekraczać 1 MB.

Aby ułatwić wysyłanie żądań zbiorczych, biblioteki klienta interfejsu API Google obsługują funkcje grupowania. Więcej informacji o grupowaniu za pomocą bibliotek klienta znajdziesz na tych stronach poświęconych danym językom:

Jeśli używasz przykładów grupowania z tych stron, konieczne może być zaktualizowanie kodu, tak by uwzględniał wymagania implementacyjne opisane w artykule Uzyskiwanie tokenu dostępu.

Ten przykład treści komunikatu żądania zbiorczego obejmuje powiadomienie o aktualizacji i powiadomienie o usunięciu:

POST /batch HTTP/1.1
Host: indexing.googleapis.com
Content-Length: content_length
Content-Type: multipart/mixed; boundary="===============7330845974216740156=="
Authorization: Bearer oauth2_token

--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+2>

POST /v3/urlNotifications:publish [1]
Content-Type: application/json
accept: application/json
content-length: 58

{ "url": "http://example.com/jobs/42", "type": "URL_UPDATED" }
--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+1>

POST /v3/urlNotifications:publish [2]
Content-Type: application/json
accept: application/json
content-length: 75

{ "url": "http://example.com/widgets/1", "type": "URL_UPDATED" }
--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+3>

POST /v3/urlNotifications:publish [3]
Content-Type: application/json
accept: application/json
content-length: 58

{ "url": "http://example.com/jobs/43", "type": "URL_DELETED" }
--===============7330845974216740156==

Więcej informacji znajdziesz w artykule Wysyłanie żądań zbiorczych.