Cómo usar la API de Indexing

Descripción general

Puedes usar la API de Indexing 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 Indexing para rastrear páginas con JobPosting o BroadcastEvent incorporadas en un objeto VideoObject.

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

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

Actualizar una 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"
}
Quitar una 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"
}
Obtener el estado de una notificación

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

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 completamente calificada 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 de Content-Type.
  • Puedes enviar una sola 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 se indican a continuación:

  1. Envía una solicitud POST al siguiente extremo:
    Send a HTTP POST request to 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 Indexing correctas con HTTP 200. Una respuesta HTTP 200 significa que Google puede intentar volver a rastrear esta URL pronto. El cuerpo de la respuesta contiene un objeto UrlNotificationMetadata, cuyos campos corresponden a los que muestra una solicitud de estado de una notificación.
  4. Si no recibes una respuesta HTTP 200, consulta los Errores específicos de la API de Indexing.
  5. Si cambia el contenido de la página, envía otra notificación de actualización, la cual debería hacer que Google vuelva a rastrear la página.
  6. Es posible que necesites más cuota que 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 tus servidores o de agregar la etiqueta <meta name="robots" content="noindex" /> en la sección <head> de una página determinada, notifica a Google para que podamos quitarla de nuestro índice y no intentemos rastrearla ni indexarla nuevamente. Antes de solicitar la eliminación, la URL debe mostrar 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 la eliminación de nuestro índice, sigue los pasos que se indican a continuación:

  1. Envía una solicitud POST al siguiente extremo:
    Send a HTTP POST request to 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 Indexing correctas con HTTP 200. Una respuesta HTTP 200 significa que Google puede 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 una notificación.
  4. Si no recibes una respuesta HTTP 200, consulta los Errores específicos de la API de Indexing.
  5. Es posible que necesites más cuota que la predeterminada. Para ver tu cuota actual y solicitar más, consulta Cuota.

Cómo obtener el estado de una notificación

Puedes usar la API de Indexing 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 diagonales) 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 de Indexing 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 Indexing.
  4. Es posible que necesites más cuota que 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 debe hacer tu cliente, puedes combinar hasta 100 llamadas a la API de Indexing en una sola solicitud HTTP. Eso se hace en una solicitud de varias partes llamada "lote".

Cuando envíes una solicitud de lote a la API de Indexing, 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 organización en lotes que aparecen en esas páginas, es posible que debas modificar 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 lote 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.