Données structurées du champ de recherche de liens sitelink (WebSite)

Un champ de recherche de liens sitelink permet aux utilisateurs de faire rapidement des recherches sur votre site ou dans votre application directement depuis la page de résultats de recherche. Il offre des suggestions en temps réel ainsi que d'autres fonctionnalités.

La recherche Google peut afficher automatiquement un champ de recherche limité à votre site Web lorsque ce dernier apparaît dans les résultats de recherche, sans que vous n'ayez à effectuer quoi que ce soit. Ce champ de recherche est alimenté par la recherche Google. Cependant, vous pouvez fournir explicitement des informations en ajoutant des données structurées WebSite, ce qui peut aider Google à mieux comprendre votre site.

Si la recherche Google a déjà affiché un champ de recherche de liens sitelinks pour votre site, vous pouvez en contrôler certains aspects en ajoutant des données structurées WebSite.

Mettre en œuvre le champ de recherche de liens sitelink

Pour que votre site puisse s'afficher avec un champ de recherche dans les résultats de recherche Google, procédez comme suit :

  1. Installez un moteur de recherche opérationnel sur votre site Web ou votre application Android.

    Les requêtes de recherche de liens sitelink renvoient l'utilisateur vers la page de résultats de recherche de votre site ou de votre application. Vous avez donc besoin d'un moteur de recherche opérationnel pour activer cette fonctionnalité.

    • Sites Web : configurez un moteur de recherche sur votre site Web. Cette fonctionnalité transmet la requête de l'utilisateur à votre cible à l'aide de la syntaxe spécifiée dans les données structurées. Votre moteur de recherche doit prendre en charge les requêtes encodées en UTF-8.
    • Applications : consultez l'article de présentation de la recherche sur le site des développeurs Android pour découvrir comment mettre en œuvre un moteur de recherche pour votre application. L'application Android doit être compatible avec les intents ACTION_VIEW à partir des résultats de recherche. De plus, l'URI de données correspondant doit être spécifié dans la propriété potentialAction.target du balisage.
  2. Mettez en œuvre l'élément de données structurées WebSite sur la page d'accueil de votre site. Cette fonctionnalité nécessite que l'application soit associée à un site Web, même s'il ne comporte qu'une seule page. Voici quelques consignes supplémentaires :
    • Ajoutez ce balisage uniquement à la page d'accueil, pas à d'autres pages.
    • Si vous implémentez déjà des données structurées WebSite pour la fonctionnalité de nom du site, veillez à imbriquer les propriétés de nom du site dans le même nœud. En d'autres termes, évitez si possible de créer un autre bloc de données structurées WebSite sur votre page d'accueil.
    • Spécifiez toujours une propriété SearchAction pour le site Web, et éventuellement une autre si vous proposez une fonctionnalité de recherche dans votre application. Vous devez définir une propriété SearchAction pour le site Web même si l'application est votre cible de recherche préférée. Ainsi, lorsque l'utilisateur n'effectue pas sa recherche depuis un téléphone Android ou s'il n'a pas installé votre application Android, le résultat de la recherche renverra vers votre site Web.
    • En fonction du format que vous utilisez, découvrez où insérer des données structurées sur la page.
  3. Suivez les consignes.
  4. Validez votre code à l'aide de l'outil de test des résultats enrichis.
  5. Vérifiez la mise en œuvre du moteur de recherche. Pour ce faire, copiez l'URL WebSite.potentialAction.target à partir des données structurées, remplacez {search_term_string} par une requête de test, puis accédez à cette URL dans un navigateur Web. Par exemple, si votre site Web est example.com et que vous souhaitez tester la requête "kittens", vous devez accéder à la page https://www.example.com/search/?q=kittens.
  6. Définissez une URL canonique de prédilection pour la page d'accueil de votre domaine à l'aide de l'élément link rel="canonical" dans toutes les variantes de la page d'accueil. Cette pratique aide la recherche Google à choisir l'URL appropriée pour votre balisage. Votre serveur doit prendre en charge l'encodage des caractères UTF-8.
  7. Pour les applications, activez les filtres d'intent appropriés afin de permettre l'utilisation de l'URL que vous spécifiez dans la cible du balisage. Pour obtenir un exemple de création de filtres d'intent pour les URL de la recherche Google, consultez la section sur l'indexation des applications Firebase pour Android.
  8. Déployez quelques pages où figurent vos données structurées et utilisez l'outil d'inspection d'URL pour découvrir comment Google voit la page. Assurez-vous que Google peut accéder à votre page et qu'elle n'est pas bloquée par un fichier robots.txt, la balise noindex ni par des identifiants de connexion. Si tout semble être en ordre, vous pouvez demander à Google d'explorer de nouveau vos URL.
  9. Pour informer Google des modifications futures de vos pages, nous vous recommandons de nous envoyer un sitemap. Vous pouvez automatiser cette opération à l'aide de l'API Sitemap de la Search Console.

Exemple

Voici un exemple de résultat de recherche pour "Pinterest" sur Google, qui renvoie un champ de recherche de liens sitelink pour le site Web Pinterest :

Champ de recherche de liens sitelink utilisé

Voici un exemple de balisage mettant en œuvre un champ de recherche de liens sitelink qui utilise le moteur de recherche personnalisé du site Web :

JSON-LD

Voici un exemple au format JSON-LD :


<html>
  <head>
    <title>The title of the page</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "url": "https://www.example.com/",
      "potentialAction": {
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://query.example.com/search?q={search_term_string}"
        },
        "query-input": "required name=search_term_string"
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>
Microdonnées

Voici un exemple sous forme de microdonnées :


<div itemscope itemtype="https://schema.org/WebSite">
  <meta itemprop="url" content="https://www.example.com/"/>
  <form itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction">
    <meta itemprop="target" content="https://query.example.com/search?q={search_term_string}"/>
    <input itemprop="query-input" type="text" name="search_term_string" required/>
    <input type="submit"/>
  </form>
</div>
  

Voici un exemple de site et d'application au format JSON-LD :

<html>
  <head>
    <title>The title of the page</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebSite",
      "url": "https://www.example.com/",
      "potentialAction": [{
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://query.example.com/search?q={search_term_string}"
        },
        "query-input": "required name=search_term_string"
      },{
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "android-app://com.example/https/query.example.com/search/?q={search_term_string}"
        },
        "query-input": "required name=search_term_string"
      }]
    }
    </script>
  </head>
  <body>
  </body>
</html>

Consignes

Pour que votre site puisse s'afficher en tant que résultat enrichi, suivez ces consignes.

Un champ de recherche de liens sitelink peut être ajouté à votre site via la recherche Google même s'il n'inclut pas les données structurées décrites ici. Toutefois, pour empêcher l'affichage de ce champ, vous pouvez ajouter la balise meta suivante à la page d'accueil :

<meta name="google" content="nositelinkssearchbox">

Définitions des types de données structurées

Pour que votre contenu puisse être affiché avec un champ de recherche de liens sitelink, vous devez inclure les propriétés obligatoires.

Type modifié WebSite

La recherche Google utilise un type de données structurées WebSite modifié à la fois pour les champs de recherche de sites Web et d'applications. La définition complète de l'élément WebSite est fournie sur schema.org, bien que la recherche Google dévie légèrement de la norme. Les propriétés prises en charge par Google sont les suivantes :

Propriétés obligatoires
potentialAction

Tableau composé d'un ou deux objets SearchAction.

Cet objet décrit l'URI auquel envoyer la requête, ainsi que la syntaxe de la requête envoyée. Vous devez mettre en œuvre une page Web ou un gestionnaire d'intent en mesure de recevoir la requête et d'effectuer une recherche appropriée sur la chaîne soumise. Si l'utilisateur ne se trouve pas sur une application Android (ou s'il est sur une application Android, mais qu'il n'a pas spécifié de cible d'intent Android), le champ de recherche envoie la version de site Web de la requête à l'emplacement spécifié. S'il est sur un appareil Android et qu'il a spécifié un URI d'intent Android, cet intent est envoyé.

Vous devez créer une propriété SearchAction de site Web afin de permettre les recherches sur ordinateur. Si vous proposez également la fonctionnalité de recherche dans votre application, vous pouvez spécifier un objet SearchAction. Chaque objet SearchAction doit contenir les propriétés imbriquées suivantes :

Exemple pour un site Web

L'exemple suivant envoie une requête GET à https://query.example.com/search?q=user%20search%20string.


"potentialAction": [{
  "@type": "SearchAction",
  "target": {
    "@type": "EntryPoint",
    "urlTemplate": "https://query.example.com/search?q={search_term_string}"
  }
  "query-input": "required name=search_term_string"
}]

Exemple pour une application

L'exemple suivant envoie un intent Android à android-app://com.example/https/query.example.com/search/?q=user_search_string.


"potentialAction": [{
  "@type": "SearchAction",
  "target": {
    "@type": "EntryPoint",
    "urlTemplate": "android-app://com.example/https/query.example.com/search/?q={search_term_string}"
  }
  "query-input": "required name=search_term_string"
}]
potentialAction.query-input

Text

Utilisez la chaîne littérale required name = search-term, ou l'espace réservé que vous avez utilisé dans target. Assurez-vous que les deux valeurs d'espace réservé correspondent. Par exemple, les deux valeurs d'espace réservé dans les propriétés target et query-input utilisent la chaîne search-term :


"potentialAction": [{
  "@type": "SearchAction",
  "target": {
    "@type": "EntryPoint",
    "urlTemplate": "https://query.example.com/search?q={search-term}"
  }
  "query-input": "required name=search-term"
}]
potentialAction.target

EntryPoint

Un objet EntryPoint avec une propriété urlTemplate.

L'élément urlTemplate doit être une chaîne au format suivant : search_handler_uri{search_term_string}

Exemple :

https://query.example.com/search?q={search_term_string}
search_handler_uri Pour les sites Web, il s'agit de l'URL du gestionnaire qui reçoit et gère la requête de recherche. Pour les applications, il s'agit de l'URI du gestionnaire d'intent de votre moteur de recherche qui gère les requêtes.
search_term_string

Chaîne d'espace réservé qui est remplacée par la requête de recherche de l'utilisateur lorsque celui-ci clique sur le bouton "Rechercher" dans le champ de recherche. Assurez-vous que la chaîne d'espace réservé que vous utilisez ici correspond également à la valeur de l'élément name pour la propriété query-input.

url

URL

Spécifie l'URL du site faisant l'objet de la recherche. Définissez la page d'accueil canonique de votre site. Par exemple : https://www.example.org

Suivre les résultats enrichis avec la Search Console

La Search Console est un outil qui vous permet de suivre les performances de vos pages dans la recherche Google. Il n'est pas nécessaire de vous inscrire à la Search Console pour figurer dans les résultats de recherche Google. Cependant, en vous inscrivant, vous comprendrez mieux la façon dont Google interprète votre site et serez plus à même de l'améliorer. Nous vous recommandons de consulter la Search Console dans les cas suivants :

  1. Après avoir déployé des données structurées pour la première fois
  2. Après avoir publié de nouveaux modèles ou après avoir mis à jour votre code
  3. Lors des analyses régulières du trafic

Après avoir déployé des données structurées pour la première fois

Une fois que Google a indexé vos pages, recherchez les problèmes à l'aide du rapport sur l'état des résultats enrichis. Idéalement, il y aura une augmentation du nombre d'articles valides et pas d'augmentation du nombre d'articles non valides. Si vous détectez des problèmes au niveau des données structurées :

  1. Corrigez les éléments non valides.
  2. Inspectez une URL active pour vérifier si le problème persiste.
  3. Demandez la validation à l'aide du rapport d'état.

Après avoir publié de nouveaux modèles ou après avoir mis à jour votre code

Lorsque vous apportez des modifications importantes à votre site Web, surveillez l'augmentation des éléments non valides dans les données structurées.
  • Si vous constatez une augmentation du nombre d'éléments non valides, vous avez peut-être déployé un nouveau modèle qui ne fonctionne pas, ou votre site interagit différemment et de façon incorrecte avec le modèle déjà disponible.
  • Si vous constatez une diminution du nombre d'éléments valides (sans augmentation du nombre d'éléments non valides), vous n'intégrez peut-être plus de données structurées dans vos pages. Utilisez l'outil d'inspection d'URL pour identifier la cause du problème.

Lors des analyses régulières du trafic

Analysez votre trafic de recherche Google à l'aide du rapport sur les performances. Les données indiquent la fréquence à laquelle votre page s'affiche en tant que résultat enrichi dans la recherche Google, ainsi que la fréquence à laquelle les internautes cliquent dessus et la position moyenne à laquelle vous apparaissez dans les résultats de recherche. Vous pouvez également extraire automatiquement ces résultats avec l'API Search Console.

Dépannage

Si vous ne parvenez pas à mettre en œuvre ou à déboguer des données structurées, voici quelques ressources susceptibles de vous aider.