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 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"
}
Supprimer une 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"
}
Consulter l'état des notifications

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 :

  1. Envoyez une requête POST au point de terminaison suivant :
    Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
  2. 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"
    }
  3. Google envoie la réponse HTTP 200 aux appels de l'API d'indexation qui aboutissent. Une réponse HTTP 200 signifie que Google tentera de réexplorer cette URL prochainement. Le corps de la réponse contient un objet UrlNotificationMetadata, dont les champs correspondent à ceux renvoyés par une demande d'état de notification.
  4. Si vous ne recevez pas de réponse HTTP 200, consultez les erreurs propres à l'API d'indexation.
  5. Si le contenu de la page change, envoyez une autre notification de mise à jour, ce qui devrait inciter Google à la réexplorer.
  6. 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 :

  1. Envoyez une requête POST au point de terminaison suivant :
    Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
  2. 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"
    }
  3. Google envoie la réponse HTTP 200 aux appels de l'API d'indexation qui aboutissent. Une réponse HTTP 200 signifie que Google tentera de supprimer cette URL de l'index. Le corps de la réponse contient un objet UrlNotificationMetadata, dont les champs correspondent à ceux renvoyés par une demande d'état de notification.
  4. Si vous ne recevez pas de réponse HTTP 200, consultez les erreurs propres à l'API d'indexation.
  5. 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 :

  1. 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
    
  2. 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"
      }
    }
    
  3. Si vous ne recevez pas de réponse HTTP 200, consultez les erreurs propres à l'API d'indexation.
  4. 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.