Cómo usar la API de indexación

Resumen

Puedes usar la API de indexación para solicitar que se actualicen o quiten páginas del índice de Google. Las solicitudes deben especificar la ubicación de una página web. También puedes obtener el estado de las notificaciones que enviaste a Google. Actualmente, solo se puede usar la API de indexación para rastrear páginas con datos estructurados de publicaciones de empleos o transmisión en vivo.

Cuando envíes una solicitud a la API de indexación, define la ubicación de una página web independiente para notificar a Google que puede rastrear o quitar esta página de su índice.

En los siguientes ejemplos, se muestran las acciones que puedes realizar con la API de indexación:

Cómo actualizar una URL
POST https://indexing.googleapis.com/v3/urlNotifications:publish
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_UPDATED"
}
Cómo quitar una URL
POST https://indexing.googleapis.com/v3/urlNotifications:publish
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_DELETED"
}
Cómo obtener el estado de la notificación
GET https://indexing.googleapis.com/v3/urlNotifications/metadata

Parámetros

En la siguiente tabla, se describen los campos necesarios para todos los métodos (actualizar y quitar una URL):

Campos
url

Obligatorio

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

type

Obligatorio

Es el tipo de notificación que enviaste.

Lineamientos

Los siguientes lineamientos se aplican para actualizar y quitar una solicitud de URL.

  • Todas las llamadas a https://indexing.googleapis.com/v3/UrlNotifications:publish DEBEN usar "application/json" como encabezado Content-Type.
  • Solo puedes enviar una URL en el cuerpo de una solicitud de actualización o combinar hasta 100 solicitudes en un lote, según se describe en Cómo enviar solicitudes de indexación en lotes.
  • El cuerpo de la solicitud en estos ejemplos es el valor de la variable content que se usa en los ejemplos de token de acceso.

Cómo actualizar una URL

A fin de notificar a Google sobre una nueva URL para rastrear o comunicarle que se actualizó el contenido de una URL que se había enviado anteriormente, sigue los pasos que aparecen a continuación:

  1. Envía una solicitud POST al siguiente extremo:
    POST https://indexing.googleapis.com/v3/urlNotifications:publish
  2. En el cuerpo de la solicitud, especifica la ubicación de la página con la siguiente sintaxis:
    {
      "url": "content_location",
      "type": "URL_UPDATED"
    }
  3. Google responde a llamadas a la API de indexación correctas con HTTP 200. Una respuesta HTTP 200 significa que Google podría intentar rastrear de nuevo esta URL pronto. El cuerpo de la respuesta contiene un objeto UrlNotificationMetadata, cuyos campos corresponden a los que muestra una solicitud de estado de notificación.
  4. Si no recibes una respuesta HTTP 200, consulta los errores específicos de la API de indexación.
  5. Si cambia el contenido de la página, envía otra notificación de actualización, la cual debería pedirle a Google que vuelva a rastrear la página.
  6. Es posible que necesites más cuota de la predeterminada. Para ver tu cuota actual y solicitar más, consulta Cuota.

Cómo quitar una URL

Después de borrar una página de los servidores, notifica a Google para que podamos quitarla de nuestro índice y no intentemos rastrear la URL nuevamente. Antes de solicitar la eliminación, debes quitar la página del servidor y la URL debe mostrar un código de estado 404 o 410.

Para solicitar la eliminación de nuestro índice, sigue los pasos que se indican a continuación:

  1. Envía una solicitud POST al siguiente extremo:
    POST https://indexing.googleapis.com/v3/urlNotifications:publish
  2. Especifica la URL que quieras quitar en el cuerpo de la solicitud con la siguiente sintaxis:
    {
      "url": "content_location",
      "type": "URL_DELETED"
    }

    Por ejemplo:

    {
      "url": "https://careers.google.com/jobs/google/technical-writer",
      "type": "URL_DELETED"
    }
  3. Google responde a llamadas a la API de indexación correctas con HTTP 200. Una respuesta HTTP 200 significa que Google podría quitar esta URL del índice. El cuerpo de la respuesta contiene un objeto UrlNotificationMetadata, cuyos campos corresponden a los que muestra una solicitud de estado de notificación.
  4. Si no recibes una respuesta HTTP 200, consulta los errores específicos de la API de indexación.
  5. Es posible que necesites más cuota de la predeterminada. Para ver tu cuota actual y solicitar más, consulta Cuota.

Cómo obtener el estado de la notificación

Puedes usar la API de indexación para comprobar la última vez que Google recibió cada tipo de notificación para una URL determinada. La solicitud GET no te indica cuándo Google indexa o quita una URL; solo muestra si enviaste correctamente una solicitud.

Para obtener el estado de una notificación, sigue los pasos que se indican a continuación:

  1. Envía una solicitud GET al siguiente extremo. Las URL que especifiques deben estar codificadas como URL. Por ejemplo, reemplaza : (dos puntos) por %3A y / (barras) por %2F.
    GET 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 de indexación envía un mensaje HTTP 200 como respuesta, con una carga útil que incluye detalles de la notificación. En el siguiente ejemplo, se muestra el cuerpo de una respuesta que contiene información acerca de una notificación de actualización y 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 de indexación.
  4. Es posible que necesites más cuota de la predeterminada. Para ver tu cuota actual y solicitar más, consulta Cuota.

Cómo enviar solicitudes de indexación en lotes

Para reducir la cantidad de conexiones HTTP que tiene que hacer tu cliente, puedes combinar hasta 100 llamadas a la API de indexación en una sola solicitud HTTP. Esto se hace en una solicitud de varias partes llamada lote.

Cuando envíes una solicitud de lote a la API de indexación, usa el siguiente extremo:

https://indexing.googleapis.com/batch

El cuerpo de una solicitud de lote contiene varias partes. Cada una es una solicitud HTTP completa con verbo, URL, encabezados y cuerpo propios. Cada parte de una solicitud de lote no puede tener un tamaño superior a 1 MB.

Para que puedas enviar solicitudes de lote más fácilmente, las bibliotecas cliente de la API de Google admiten la funcionalidad de lotes. Para obtener más información acerca de la organización en lotes con las bibliotecas cliente, consulta las siguientes páginas específicas para cada lenguaje:

Si usas los ejemplos de lotes en estas páginas, es posible que debas actualizar el código para reflejar los requisitos de implementación que se describen en Cómo obtener un token de acceso.

El siguiente cuerpo de mensaje de solicitud de lotes incluye una notificación de actualización y una notificación 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 de lote.

Enviar comentarios sobre…