Usar la API Indexing

Introducción

Con la API Indexing, puedes solicitar a Google que actualice o quite páginas del índice de Google. 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.

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:

Actualizar URLs

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"
}
Quitar URLs

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"
}
Consultar el estado de notificaciones

Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata endpoint

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.

Directrices

Cuando envíes solicitudes para actualizar o quitar URLs, debes seguir estas directrices.

  • En todas las llamadas a https://indexing.googleapis.com/v3/UrlNotifications:publish, el valor del 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.
  • 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.

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 POST al siguiente punto de conexión:
    Send a HTTP POST request to 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. Es posible que debas utilizar una cuota superior a la predeterminada. Visita el artículo sobre cuotas y precios para saber cuál es tu cuota y cómo ampliarla.

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 que se quite una página, debes configurar la URL para que devuelva un código de estado 404 o 410 o añadir la etiqueta meta <meta name="robots" content="noindex" /> a la página.

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

  1. Envía una solicitud POST al siguiente punto de conexión:
    Send a HTTP POST request to 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. Es posible que debas utilizar una cuota superior a la predeterminada. Visita el artículo sobre cuotas y precios para saber cuál es tu cuota y cómo ampliarla.

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 URL que especifiques deben usar la codificación URL. Por ejemplo, debes sustituir los dos puntos (:) por %3A y las barras (/) por %2F.
    Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata?url=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. Es posible que debas utilizar una cuota superior a la predeterminada. Visita el artículo sobre cuotas y precios para saber cuál es tu cuota y cómo ampliarla.

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 en lote, las bibliotecas de cliente de las API de Google admiten funciones de procesamiento por 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.