Usar la API Indexing

Descripción general

Con la API Indexing, puedes solicitar a Google que actualice o retire 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 que estén insertados en un objeto VideoObject.

Cuando envíes una solicitud a la API Indexing, incluye la ubicación de la página web para indicar a Google que puede rastrearla o retirarla 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"
}
Retirar 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 retirar URLs:

Campos
url

Obligatorio

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

type

Obligatorio

El tipo de notificación que has enviado.

Directrices

Cuando envíes solicitudes para actualizar o retirar 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 más abajo, en el apartado Enviar solicitudes de indexación en lote.
  • 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 la llamada a la API Indexing se realiza 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. Quizá necesites más cuota que la predeterminada. Visita el artículo sobre Cuota y precios para saber cuál es tu cuota y cómo ampliarla.

Retirar 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 retire del índice y no intente rastrear ni indexar la página de nuevo. Antes de solicitar la retirada de una página, debes configurar la URL para que devuelva un código de estado 404 o 410 o añadir la metaetiqueta <meta name="robots" content="noindex" /> a la página.

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:
    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 retirar 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 la llamada a la API Indexing se realiza correctamente, Google responde con un código de estado HTTP 200. Si recibes una respuesta HTTP 200, es posible que Google retire 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. Quizá necesites más cuota que la predeterminada. Visita el artículo sobre Cuota 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 retira 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 retirada:
    {
      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. Quizá necesites más cuota que la predeterminada. Visita el artículo sobre Cuota 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, y cada una de ellas es una solicitud HTTP completa que incluye un verbo, una URL, encabezados y un 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. Consulta más información al respecto en las páginas 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 el apartado 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 en la que se indica que se ha actualizado una URL y otra que avisa de que se ha retirado:

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.