Utiliser l'API d'indexation
Présentation
L'API d'indexation vous permet de signaler à Google que des pages de son index doivent être mises à jour ou supprimées.
Les requêtes doivent spécifier l'emplacement des pages Web concernées. L'API d'indexation vous permet également de consulter l'état des notifications que vous avez envoyées à Google. Actuellement, elle ne peut être utilisée que pour explorer des pages contenant des données structurées de type JobPosting
ou BroadcastEvent
dans un élément VideoObject
.
Lorsque vous envoyez une requête à l'API d'indexation, définissez l'emplacement d'une page Web autonome pour informer Google que celle-ci peut être explorée ou supprimée de son index.
Les exemples suivants illustrent les actions que vous pouvez effectuer avec l'API d'indexation :
Mettre à jour une URLSend 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" } 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" } Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata endpoint |
Paramètres
Le tableau suivant décrit les champs nécessaires à toutes les méthodes (mise à jour et suppression d'une URL) :
Champs | |
---|---|
url |
Obligatoire URL complète de l'élément que vous souhaitez mettre à jour ou supprimer. |
type |
Obligatoire Type de notification que vous avez envoyé. |
Consignes
Les consignes suivantes s'appliquent aux requêtes de mise à jour et de suppression d'une URL.
- Tous les appels à https://indexing.googleapis.com/v3/UrlNotifications:publish DOIVENT utiliser" "application/json" comme en-tête
Content-Type
. - Vous pouvez soit envoyer une seule URL dans le corps d'une requête de mise à jour, soit combiner jusqu'à 100 requêtes dans un lot, comme décrit dans la section Envoyer des requêtes d'indexation par lot.
- Le corps de la requête dans ces exemples correspond à la valeur de la variable
content
utilisée dans les exemples de jetons d'accès.
Mettre à jour une URL
Pour informer Google qu'une nouvelle URL doit être explorée ou que le contenu d'une URL déjà explorée a été mis à jour, procédez comme suit :
- Envoyez une requête
POST
au point de terminaison suivant :Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
- Dans le corps de la requête, spécifiez l'emplacement de la page à l'aide de la syntaxe suivante :
{ "url": "content_location", "type": "URL_UPDATED" }
- Google envoie la réponse
HTTP 200
aux appels de l'API d'indexation qui aboutissent. Une réponseHTTP 200
signifie que Google tentera de réexplorer cette URL prochainement. Le corps de la réponse contient un objetUrlNotificationMetadata
, dont les champs correspondent à ceux renvoyés par une demande d'état de notification. - Si vous ne recevez pas de réponse
HTTP 200
, consultez les erreurs propres à l'API d'indexation. - Si le contenu de la page change, envoyez une autre notification de mise à jour, ce qui devrait inciter Google à la réexplorer.
- Vous aurez peut-être besoin de plus de quota que celui par défaut. Pour consulter votre quota actuel et en demander plus, consultez la section Quota.
Supprimer une URL
Une fois que vous avez supprimé une page de vos serveurs ou que vous avez ajouté la balise <meta name="robots" content="noindex" />
dans la section <head>
d'une page donnée, contactez Google pour que nous puissions supprimer la page de notre index et que nous ne puissions plus l'explorer ni l'indexer. Avant de demander la suppression, l'URL doit renvoyer un code d'état 404 ou 410, ou la page doit contenir une balise meta
<meta name="robots" content="noindex" />
.
Pour demander la suppression d'une page de notre index, procédez comme suit :
- Envoyez une requête
POST
au point de terminaison suivant :Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
- Spécifiez l'URL que vous souhaitez supprimer dans le corps de la requête à l'aide de la syntaxe suivante :
{ "url": "content_location", "type": "URL_DELETED" }
Exemple :
{ "url": "https://careers.google.com/jobs/google/technical-writer", "type": "URL_DELETED" }
- Google envoie la réponse
HTTP 200
aux appels de l'API d'indexation qui aboutissent. Une réponseHTTP 200
signifie que Google tentera de supprimer cette URL de l'index. Le corps de la réponse contient un objetUrlNotificationMetadata
, dont les champs correspondent à ceux renvoyés par une demande d'état de notification. - Si vous ne recevez pas de réponse
HTTP 200
, consultez les erreurs propres à l'API d'indexation. - Vous aurez peut-être besoin de plus de quota que celui par défaut. Pour consulter votre quota actuel et en demander plus, consultez la section Quota.
Consulter l'état des notifications
Vous pouvez utiliser l'API d'indexation pour vérifier la dernière fois que Google a reçu chaque type de notification pour une URL donnée. La requête GET
n'indique pas quand Google indexera ou supprimera l'URL, mais confirme si votre requête initiale a abouti.
Pour obtenir l'état d'une notification, procédez comme suit :
- Envoyez une requête
GET
au point de terminaison ci-dessous. Les URL que vous spécifiez doivent être codées en URL. Par exemple, remplacez:
(deux-points) par%3A
et/
(barres obliques) par%2F
.Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata?url=url-encoded_url
Exemple :
GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=https%3A%2F%2Fcareers.google.com%2Fjobs%2Fgoogle%2Ftechnical-writer
- L'API d'indexation répond avec le message
HTTP 200
, avec une charge utile contenant des détails sur la notification. L'exemple suivant illustre le corps d'une réponse contenant des informations sur une notification de mise à jour et de suppression :{ 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 vous ne recevez pas de réponse
HTTP 200
, consultez les erreurs propres à l'API d'indexation. - Vous aurez peut-être besoin de plus de quota que celui par défaut. Pour consulter votre quota actuel et en demander plus, consultez la section Quota.
Envoyer des requêtes d'indexation par lot
Pour réduire le nombre de connexions HTTP que votre client doit établir, vous pouvez combiner jusqu'à 100 appels à l'API d'indexation dans une seule requête HTTP. Pour ce faire, il suffit de recourir à une requête en plusieurs parties, également appelée "requête de traitement par lot".
Lors de l'envoi d'une requête de traitement par lot à l'API d'indexation, utilisez le point de terminaison suivant :
https://indexing.googleapis.com/batch
Le corps d'une requête de traitement par lot contient plusieurs parties. Chacune d'elles est en elle-même une requête HTTP complète, avec sa syntaxe, son URL, son en-tête et son corps spécifiques. Chaque partie d'une requête de traitement par lot ne peut pas dépasser 1 Mo.
Les bibliothèques clientes des API Google permettent l'envoi de requêtes de traitement par lots. Pour en savoir plus sur cette fonctionnalité, reportez-vous aux pages suivantes en fonction du langage de programmation qui vous intéresse :
Si vous utilisez les exemples de traitement par lot indiqués sur ces pages, vous devrez peut-être mettre à jour le code afin de refléter les exigences de mise en œuvre décrites dans la section Obtenir un jeton d'accès.
L'exemple suivant de corps de message d'une requête de traitement par lot comprend une notification de mise à jour et une notification de suppression :
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==
Pour plus d'informations, consultez la section concernant l'envoi de requêtes par lot.