Usar la API Indexing

Puedes usar la API Indexing para indicar a Google que actualice o quite del índice de Google las páginas de ofertas de empleo o de eventos de emisiones en directo. En las solicitudes debes indicar la ubicación de las páginas en cuestión. También puedes consultar el estado de las notificaciones que has enviado a Google. De momento, esta API solo permite rastrear páginas que incluyan datos estructurados JobPosting o BroadcastEvent insertados en un objeto VideoObject.

Directrices

Estas son las directrices que debes seguir al usar la API Indexing.

  • Nuestras políticas de spam se aplican al contenido enviado con la API Indexing.
  • En todas las llamadas a https://indexing.googleapis.com/v3/UrlNotifications:publish, el encabezado Content-Type debe ser "application/json".
  • En el cuerpo de una solicitud de actualización solo puedes incluir una URL, pero tienes la opción de enviar hasta 100 solicitudes a la vez, tal como se describe en el apartado Enviar solicitudes de indexación en lote, incluido más abajo. No eludas nuestros límites de envío, por ejemplo, utilizando varias cuentas.
  • En los ejemplos, el cuerpo de la solicitud es el valor de la variable content que se usa en los ejemplos de token de acceso.

Qué puedes hacer con la API

Cuando envíes una solicitud a la API Indexing, incluye la ubicación de una página web para indicar a Google que puede rastrearla o quitarla de su índice.

En los siguientes ejemplos se muestra lo que puedes hacer con la API Indexing:

Ejemplos
Actualizar URLs

Envía la siguiente solicitud HTTP POST al endpoint https://indexing.googleapis.com/v3/urlNotifications:publish. Por ejemplo:

{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_UPDATED"
}
Quitar URLs

Envía la siguiente solicitud HTTP POST al endpoint https://indexing.googleapis.com/v3/urlNotifications:publish. Por ejemplo:

{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_DELETED"
}
Consultar el estado de notificaciones

Envía una solicitud HTTP GET al endpoint https://indexing.googleapis.com/v3/urlNotifications/metadata.

Parámetros

En la siguiente tabla se muestran los campos que hay que incluir en todos los métodos para actualizar o quitar URLs:

Campos
url

Obligatorio

La ubicación completa del elemento que quieres actualizar o quitar.

type

Obligatorio

El tipo de notificación que has enviado.

Actualizar URLs

Para informar a Google de que puede rastrear una URL nueva o de que se ha actualizado el contenido de una URL ya rastreada, sigue estos pasos:

  1. Envía una solicitud HTTP POST al siguiente endpoint:
    https://indexing.googleapis.com/v3/urlNotifications:publish
  2. En el cuerpo de la solicitud, indica dónde se encuentra la página con esta sintaxis:
    {
      "url": "CONTENT_LOCATION",
      "type": "URL_UPDATED"
    }
  3. Si las llamadas a la API Indexing se realizan correctamente, Google responde con un código de estado HTTP 200. Si recibes una respuesta HTTP 200, es posible que Google intente volver a rastrear la URL pronto. En el cuerpo de la respuesta se incluye un objeto UrlNotificationMetadata cuyos campos se corresponden con los que se devuelven en una solicitud de estado de notificación.
  4. Si no recibes una respuesta HTTP 200, consulta los errores específicos de la API Indexing.
  5. Si el contenido de la página cambia, envía otra notificación de actualización; de este modo, Google volverá a rastrear la página.
  6. La API Indexing proporciona una cuota predeterminada para las pruebas. Para usar la API, solicita la aprobación y la cuota.

Quitar URLs

Si eliminas una página de tus servidores o añades la etiqueta <meta name="robots" content="noindex" /> en la sección <head> de una página concreta, comunícaselo a Google para que la quite del índice y no intente rastrear ni indexar la página de nuevo. Antes de solicitar la retirada, la URL debe devolver un código de estado 404 o 410, o bien la página debe contener la etiqueta <meta name="robots" content="noindex" /> meta.

Para solicitar que se retire una página de nuestro índice, sigue estos pasos:

  1. Envía una solicitud POST al siguiente punto de conexión:
    https://indexing.googleapis.com/v3/urlNotifications:publish
  2. En el cuerpo de la solicitud, indica la URL que quieres quitar con esta sintaxis:
    {
      "url": "CONTENT_LOCATION",
      "type": "URL_DELETED"
    }

    Por ejemplo:

    {
      "url": "https://careers.google.com/jobs/google/technical-writer",
      "type": "URL_DELETED"
    }
  3. Si las llamadas a la API Indexing se realizan correctamente, Google responde con un código de estado HTTP 200. Si recibes una respuesta HTTP 200, es posible que Google quite la URL del índice. En el cuerpo de la respuesta se incluye un objeto UrlNotificationMetadata cuyos campos se corresponden con los que se devuelven en una solicitud de estado de notificación.
  4. Si no recibes una respuesta HTTP 200, consulta los errores específicos de la API Indexing.
  5. La API Indexing proporciona una cuota predeterminada para las pruebas. Para usar la API, solicita la aprobación y la cuota.

Consultar el estado de notificaciones

Con la API Indexing, puedes consultar cuándo fue la última vez que Google recibió cada tipo de notificación sobre URL concretas. Ten en cuenta que la solicitud GET no indica cuándo se indexa o se quita una URL, sino que solo muestra si una solicitud se ha enviado correctamente.

Para consultar el estado de una notificación, sigue estos pasos:

  1. Envía una solicitud GET al punto de conexión que se indica a continuación. Las URLs que especifiques deben usar la codificación URL. Por ejemplo, debes sustituir los dos puntos (:) por %3A y las barras (/) por %2F.
    https://indexing.googleapis.com/v3/urlNotifications/metadata?url=ENCODED_URL

    Por ejemplo:

    GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=https%3A%2F%2Fcareers.google.com%2Fjobs%2Fgoogle%2Ftechnical-writer
  2. La API Indexing responde con un mensaje HTTP 200 que incluye una carga útil con datos sobre la notificación. En el ejemplo siguiente, se muestra el cuerpo de una respuesta que incluye datos sobre una notificación de actualización y otra de eliminación:
    {
      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. Si no recibes una respuesta HTTP 200, consulta los errores específicos de la API Indexing.
  4. La API Indexing proporciona una cuota predeterminada para las pruebas. Para usar la API, solicita la aprobación y la cuota.

Enviar solicitudes de indexación en lote

Para reducir la cantidad de conexiones HTTP que debe hacer tu cliente, puedes incluir hasta 100 llamadas a la API Indexing en una sola solicitud HTTP. Puedes hacerlo con una solicitud de varias partes, a la que llamamos lote.

Al enviar una solicitud en lote a la API Indexing, utiliza el siguiente punto de conexión:

https://indexing.googleapis.com/batch

En el cuerpo de las solicitudes en lote hay varias partes. Cada parte es una solicitud HTTP completa, con su propio verbo, URL, encabezados y cuerpo. Cada parte puede tener un tamaño de hasta 1 MB.

Para que sea más fácil enviar solicitudes por lotes, las bibliotecas de cliente de las APIs de Google admiten lotes. Para obtener más información al respecto, consulta las páginas específicas de cada lenguaje de programación:

Si utilizas los ejemplos que se incluyen en las páginas anteriores, es posible que tengas que actualizar el código para que refleje los requisitos de implementación que se describen en Obtener un token de acceso.

A continuación se muestra el cuerpo de un mensaje de solicitud en lote de ejemplo donde se incluyen una notificación de actualización y otra de eliminación:

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==

Para obtener más información, consulta cómo enviar solicitudes en lote.