Como usar a API Indexing
Visão geral
Use a API Indexing para solicitar ao Google que atualize ou remova páginas do índice do Google.
As solicitações precisam especificar o local de uma página da Web. É possível também ver o status das notificações que você enviou ao Google. No momento, a API Indexing só pode ser usada para rastrear páginas com
JobPosting
ou
BroadcastEvent
incorporado a um
VideoObject
.
Ao enviar uma solicitação à API Indexing, defina o local de uma página da Web autônoma para notificar o Google de que é possível rastrear ou remover essa página do índice.
Os exemplos a seguir mostram o que você pode fazer com a API Indexing:
Atualizar um 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" }Remover um 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" }Receber status da notificação Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata endpoint |
Parâmetros
A tabela a seguir descreve os campos necessários para todos os métodos (atualizar e remover um URL):
Campos | |
---|---|
url |
Obrigatório É o local totalmente qualificado do item que você quer atualizar ou remover. |
type |
Obrigatório É o tipo da notificação que você enviou. |
Diretrizes
As diretrizes a seguir se aplicam às solicitações de atualização e remoção de URL.
- Todas as chamadas para https://indexing.googleapis.com/v3/UrlNotifications:publish PRECISAM usar "application/json" como o cabeçalho
Content-Type
. - Você pode enviar somente um URL no corpo de uma solicitação de atualização ou combinar até cem solicitações em um lote, conforme descrito em Enviar solicitações de indexação em lote.
- O corpo da solicitação nesses exemplos é o valor da variável
content
usada nos exemplos de token de acesso.
Atualizar um URL
Para notificar o Google sobre um novo URL a ser rastreado ou sobre a atualização de um URL previamente enviado, siga as etapas abaixo:
- Envie uma solicitação
POST
para o seguinte endpoint:Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
- No corpo da solicitação, especifique o local da página usando esta sintaxe:
{ "url": "content_location", "type": "URL_UPDATED" }
- O Google responde a chamadas bem-sucedidas da API Indexing com uma
HTTP 200
. Uma respostaHTTP 200
significa que poderá haver uma nova tentativa do Google de rastrear esse URL em breve. O corpo da resposta contém um objetoUrlNotificationMetadata
, com campos que correspondem àqueles retornados por uma solicitação de status da notificação. - Se você não receber uma resposta
HTTP 200
, consulte os erros específicos da API Indexing. - Se o conteúdo da página mudar, envie outra notificação de atualização para acionar um novo rastreamento da página pelo Google.
- Pode ser necessário mais cota do que o padrão. Para visualizar sua cota atual e solicitar mais cota, consulte Cota.
Remover um URL
Depois de excluir uma página de seus servidores ou adicionar a tag <meta name="robots" content="noindex" />
na
seção <head>
de uma determinada página, notifique o Google para que possamos removê-la do
nosso índice e para que não haja uma nova tentativa de rastreá-la. Antes de solicitar a remoção,
o URL precisa retornar um código de status 404 ou 410 ou a página ter a tag <meta name="robots" content="noindex" />
meta
.
Para solicitar a remoção do nosso índice, siga as etapas abaixo:
- Envie uma solicitação
POST
para o seguinte endpoint:Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
- Especifique o URL que você quer remover no corpo da solicitação usando esta sintaxe:
{ "url": "content_location", "type": "URL_DELETED" }
Exemplo:
{ "url": "https://careers.google.com/jobs/google/technical-writer", "type": "URL_DELETED" }
- O Google responde a chamadas bem-sucedidas da API Indexing com uma
HTTP 200
. Uma respostaHTTP 200
significa que pode haver remoção desse URL do índice pelo Google. O corpo da resposta contém um objetoUrlNotificationMetadata
, com campos que correspondem àqueles retornados por uma solicitação de status da notificação. - Se você não receber uma resposta
HTTP 200
, consulte os erros específicos da API Indexing. - Pode ser necessário mais cota do que o padrão. Para visualizar sua cota atual e solicitar mais cota, consulte Cota.
Receber status da notificação
Você pode usar a API Indexing para verificar a última vez que o Google recebeu cada tipo de notificação relacionada a determinado URL. A solicitação GET
não informa quando o Google indexa ou remove um URL. Ela só comunica se a solicitação foi enviada.
Para ver o status de uma notificação, siga as etapas abaixo:
- Envie uma solicitação
GET
para o endpoint a seguir. Os URLs especificados precisam ter codificação de URL. Por exemplo, substitua:
(dois pontos) por%3A
e/
(barras) por%2F
.Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata?url=url-encoded_url
Exemplo:
GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=https%3A%2F%2Fcareers.google.com%2Fjobs%2Fgoogle%2Ftechnical-writer
- A API Indexing responde com uma mensagem
HTTP 200
com um payload que contém detalhes sobre a notificação. O exemplo a seguir mostra o corpo de uma resposta que contém informações sobre uma notificação de atualização e exclusão:{ 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" } }
- Se você não receber uma resposta
HTTP 200
, consulte os erros específicos da API Indexing. - Pode ser necessário mais cota do que o padrão. Para visualizar sua cota atual e solicitar mais cota, consulte Cota.
Enviar solicitações de indexação em lote
Para reduzir o número de conexões HTTP que o cliente precisa fazer, você pode combinar até cem chamadas para a API Indexing em uma única solicitação HTTP. Use uma solicitação de várias partes, chamada lote, para fazer isso.
Para enviar uma solicitação em lote à API Indexing, use o seguinte endpoint:
https://indexing.googleapis.com/batch
O corpo de uma solicitação em lote contém várias partes. Cada parte é uma solicitação HTTP completa, com seu próprio verbo, URL, cabeçalhos e corpo. Cada parte dentro de uma solicitação em lote não pode ter mais de 1 MB.
Para facilitar o envio de solicitações em lote, as bibliotecas de cliente de APIs do Google são compatíveis com a funcionalidade de lotes. Para ver mais informações sobre lotes com as bibliotecas de cliente, consulte as seguintes páginas específicas das linguagens:
Se você usar os exemplos de lotes nessas páginas, talvez seja necessário atualizar seu código para refletir os requisitos de implementação descritos em Receber um token de acesso.
O exemplo a seguir de corpo de mensagem de solicitação em lote inclui uma notificação de atualização e uma de remoção:
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 saber mais, veja como enviar solicitações em lote.