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:
- Envía una solicitud
POST
al siguiente punto de conexión:Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
- En el cuerpo de la solicitud, indica dónde se encuentra la página con esta sintaxis:
{ "url": "content_location", "type": "URL_UPDATED" }
- Si las llamadas a la API Indexing se realizan correctamente, Google responde con un código de estado
HTTP 200
. Si recibes una respuestaHTTP 200
, es posible que Google intente volver a rastrear la URL pronto. En el cuerpo de la respuesta se incluye un objetoUrlNotificationMetadata
cuyos campos se corresponden con los que se devuelven en una solicitud de estado de notificación. - Si no recibes una respuesta
HTTP 200
, consulta los errores específicos de la API Indexing. - 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.
- 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:
- Envía una solicitud
POST
al siguiente punto de conexión:Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
- 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" }
- Si las llamadas a la API Indexing se realizan correctamente, Google responde con un código de estado
HTTP 200
. Si recibes una respuestaHTTP 200
, es posible que Google quite la URL del índice. En el cuerpo de la respuesta se incluye un objetoUrlNotificationMetadata
cuyos campos se corresponden con los que se devuelven en una solicitud de estado de notificación. - Si no recibes una respuesta
HTTP 200
, consulta los errores específicos de la API Indexing. - 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:
- 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
- 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" } }
- Si no recibes una respuesta
HTTP 200
, consulta los errores específicos de la API Indexing. - 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.