Établissement local

Lorsque les internautes recherchent des établissements dans la recherche Google ou dans Google Maps, une carte Knowledge Graph contenant des détails sur l'entreprise correspondant à la requête peut apparaître. Lorsqu'ils soumettent une requête pour un type d'établissement spécifique ("meilleurs restaurants à New York", par exemple), ils peuvent par ailleurs voir un carrousel correspondant à leur recherche. Les données structurées LocalBusiness vous permettent d'indiquer à Google vos horaires d'ouverture, les différents services que vous proposez, les avis sur votre établissement, etc. Pour aider les internautes à effectuer une réservation ou à passer une commande directement dans les résultats de recherche, vous pouvez activer les réservations, les paiements et d'autres actions via l'API Maps Booking.

Comment ajouter des données structurées

Ces données structurées représentent un format normalisé permettant de fournir des informations sur une page et de classer son contenu. En savoir plus sur le fonctionnement des données structurées

Voici, dans les grandes lignes, comment créer, tester et publier des données structurées. Pour consulter un guide détaillé sur l'ajout de données structurées à une page Web, accédez à cet atelier de programmation.

  1. Ajoutez les propriétés obligatoires. Pour déterminer où placer les données structurées sur la page, regardez Données structurées JSON-LD : où les insérer sur la page.
  2. Suivez les consignes.
  3. Validez votre code à l'aide du test des résultats enrichis.
  4. 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.
  5. 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.

Exemples

Fiche d'établissement local simple

Voici un exemple de fiche d'établissement local simple au format JSON-LD.


<html>
  <head>
    <title>Dave's Steak House</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Restaurant",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "@id": "http://davessteakhouse.example.com",
      "name": "Dave's Steak House",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "148 W 51st St",
        "addressLocality": "New York",
        "addressRegion": "NY",
        "postalCode": "10019",
        "addressCountry": "US"
      },
      "review": {
        "@type": "Review",
        "reviewRating": {
          "@type": "Rating",
          "ratingValue": "4",
          "bestRating": "5"
        },
        "author": {
          "@type": "Person",
          "name": "Lillian Ruiz"
        }
      },
      "geo": {
        "@type": "GeoCoordinates",
        "latitude": 40.761293,
        "longitude": -73.982294
      },
      "url": "http://www.example.com/restaurant-locations/manhattan",
      "telephone": "+12122459600",
      "servesCuisine": "American",
      "priceRange": "$$$",
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": [
            "Monday",
            "Tuesday"
          ],
          "opens": "11:30",
          "closes": "22:00"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": [
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "opens": "11:30",
          "closes": "23:00"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": "Saturday",
          "opens": "16:00",
          "closes": "23:00"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": "Sunday",
          "opens": "16:00",
          "closes": "22:00"
        }
      ],
      "menu": "http://www.example.com/menu",
      "acceptsReservations": "True"
    }
    </script>
  </head>
  <body>
  </body>
</html>

Voici un exemple de carrousel de restaurants. Ce type de carrousel est actuellement limité à un petit groupe de prestataires. Si vous souhaitez participer, remplissez ce formulaire afin de témoigner de votre intérêt.

<html>
  <head>
    <title>Trattoria Luigi</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Restaurant",
      "name": "Trattoria Luigi",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
       "priceRange": "$$$",
       "servesCuisine": "Italian",
       "address": {
         "@type": "PostalAddress",
         "streetAddress": "148 W 51st St",
         "addressLocality": "New York",
         "addressRegion": "NY",
         "postalCode": "10019",
         "addressCountry": "US"
       }
    }
    </script>
  </head>
  <body>
  </body>
</html>

Horaires d'ouverture

Les exemples suivants présentent comment baliser différents types d'horaires d'ouverture.

Horaires standards

L'exclusion des propriétés validFrom et validThrough signifie que les horaires sont valides toute l'année. Cet exemple concerne un établissement ouvert de 9h à 21h du lundi au vendredi et de 10h à 23h le week-end.

"openingHoursSpecification": [
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": [
      "Monday",
      "Tuesday",
      "Wednesday",
      "Thursday",
      "Friday"
    ],
    "opens": "09:00",
    "closes": "21:00"
  },
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": [
      "Saturday",
      "Sunday"
    ],
    "opens": "10:00",
    "closes": "23:00"
  }
]
Horaires nocturnes

En cas d'horaires dépassant minuit, définissez les heures d'ouverture et de fermeture à l'aide d'une seule propriété OpeningHoursSpecification. Cet exemple définit des horaires d'ouverture allant de 18h le samedi à 3h le dimanche.

"openingHoursSpecification": {
  "@type": "OpeningHoursSpecification",
  "dayOfWeek": "Saturday",
  "opens": "18:00",
  "closes": "03:00"
}
Horaire 24h/24

Pour indiquer qu'un établissement est ouvert 24h/24, spécifiez "00:00" pour la propriété open et "23:59" pour la propriété closes. Pour indiquer qu'il est fermé toute la journée, définissez "00:00" à la fois pour les propriétés opens et closes. Cet exemple illustre une entreprise ouverte toute la journée le samedi et fermée toute la journée le dimanche.

"openingHoursSpecification": [
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": "Saturday",
    "opens": "00:00",
    "closes": "23:59"
  },
  {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": "Sunday",
    "opens": "00:00",
    "closes": "00:00"
  }
]
Horaires saisonniers

Utilisez les propriétés validFrom et validThrough pour définir des horaires saisonniers. Cet exemple présente une entreprise fermée pendant les vacances d'hiver.

"openingHoursSpecification": {
  "@type": "OpeningHoursSpecification",
  "opens": "00:00",
  "closes": "00:00",
  "validFrom": "2015-12-23",
  "validThrough": "2016-01-05"
}

Établissements comprenant plusieurs services

Pour un établissement avec plusieurs services ne partageant pas les mêmes caractéristiques, telles que les horaires d'ouverture ou le numéro de téléphone, vous pouvez baliser chaque service avec la propriété department. Définissez les caractéristiques qui diffèrent de l'établissement principal individuellement au sein de chaque élément représentant la propriété "department".

<html>
  <head>
    <title>Dave's Department Store</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Store",
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "@id": "http://davesdeptstore.example.com",
      "name": "Dave's Department Store",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "1600 Saratoga Ave",
        "addressLocality": "San Jose",
        "addressRegion": "CA",
        "postalCode": "95129",
        "addressCountry": "US"
      },
      "geo": {
        "@type": "GeoCoordinates",
        "latitude": 37.293058,
        "longitude": -121.988331
      },
      "url": "http://www.example.com/store-locator/sl/San-Jose-Westgate-Store/1427",
      "priceRange": "$$$",
      "telephone": "+14088717984",
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday"
          ],
          "opens": "08:00",
          "closes": "23:59"
        },
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": "Sunday",
          "opens": "08:00",
          "closes": "23:00"
        }
      ],
      "department": [
        {
          "@type": "Pharmacy",
          "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
          "name": "Dave's Pharmacy",
          "telephone": "+14088719385",
          "openingHoursSpecification": [
            {
              "@type": "OpeningHoursSpecification",
              "dayOfWeek": [
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday",
                "Friday"
              ],
              "opens": "09:00",
              "closes": "19:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "dayOfWeek": "Saturday",
              "opens": "09:00",
              "closes": "17:00"
            },
            {
              "@type": "OpeningHoursSpecification",
              "dayOfWeek": "Sunday",
              "opens": "11:00",
              "closes": "17:00"
            }
          ]
        }
      ]
    }
    </script>
  </head>
  <body>
  </body>
</html>

Consignes

Pour que votre site puisse apparaître dans les résultats enrichis liés aux établissements locaux, vous devez respecter les consignes suivantes.

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

Les tableaux suivants répertorient les propriétés et leur utilisation pour les établissements locaux et les types d'action correspondants, en fonction des définitions complètes disponibles sur schema.org/LocalBusiness.

Vous devez inclure les propriétés obligatoires pour que votre contenu puisse être affiché sous forme de résultat enrichi. Vous pouvez également inclure les propriétés recommandées pour ajouter d'autres informations à votre contenu et ainsi offrir une meilleure expérience utilisateur.

LocalBusiness

La définition complète de l'élément LocalBusiness est disponible sur schema.org/LocalBusiness. Définissez chaque établissement local sous le type LocalBusiness. Utilisez le sous-type LocalBusiness le plus spécifique possible (par exemple, Restaurant, DaySpa, HealthClub, etc).

Propriétés obligatoires
@id

URL

ID unique global de l'établissement sous la forme d'une URL. Cet identifiant doit être stable et immuable dans le temps. La recherche Google considère l'URL comme une chaîne opaque. Le lien ne doit donc pas nécessairement être fonctionnel. Si l'entreprise a plusieurs sites, assurez-vous que la valeur @id est unique pour chacun d'eux.

address

PostalAddress

Adresse physique de l'établissement. Incluez autant de propriétés que possible. Plus vous fournissez de propriétés, plus le résultat proposé aux utilisateurs sera de bonne qualité. Exemple :

"address": {
  "@type": "PostalAddress",
  "streetAddress": "148 W 51st St Suit 42 Unit 7",
  "addressLocality": "New York",
  "addressRegion": "NY",
  "postalCode": "10019",
  "addressCountry": "US"
}
name

Text

Nom de l'établissement.

Propriétés recommandées
aggregateRating

AggregateRating

Note moyenne de l'établissement local basée sur plusieurs évaluations ou avis. Respectez les consignes relatives aux extraits d'avis ainsi que la liste des propriétés de note globale obligatoires et recommandées.

department

LocalBusiness

Élément imbriqué correspondant à un service individuel. Vous pouvez spécifier n'importe quelle propriété de ce tableau pour définir un service.

Consignes supplémentaires :

  • Incluez le nom du magasin avec le nom du service sous la forme suivante : {store name} {department name}. Par exemple, gMart et gMart Pharmacy.
  • Si le nom du service est explicitement associé à une marque, indiquez un nom de service indépendant. Par exemple, Best Buy et Geek Squad.
geo

GeoCoordinates

Coordonnées géographiques de l'établissement.

geo.latitude

Number

Latitude de l'établissement. La précision doit être d'au moins 5 décimales.

geo.longitude

Number

Longitude de l'établissement. La précision doit être d'au moins 5 décimales.

menu

URL

Pour les restaurants et établissements similaires, URL complète du menu.

openingHoursSpecification

Tableau ou objet unique (les deux sont acceptés) pour OpeningHoursSpecification

Heures d'ouverture de l'établissement.

openingHoursSpecification.closes

Time

Heure de fermeture de l'établissement, au format hh:mm:ss.

openingHoursSpecification.dayOfWeek

Text

Un ou plusieurs des éléments suivants :

  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday
  • Saturday
  • Sunday
openingHoursSpecification.opens

Time

Heure d'ouverture de l'établissement, au format hh:mm:ss.

openingHoursSpecification.validFrom

Date

Date de début d'une fermeture saisonnière de l'établissement, au format AAAA-MM-JJ.

openingHoursSpecification.validThrough

Date

Date de fin d'une fermeture saisonnière de l'établissement, au format AAAA-MM-JJ.

priceRange

Text

Gamme de prix relative d'un établissement, généralement spécifiée par une plage de valeurs numériques (par exemple, "10-15 €") ou un nombre normalisé de symboles de devise (par exemple, "$$$").

review

Avis

Avis sur l'établissement local. Respectez les consignes relatives aux extraits d'avis ainsi que la liste des propriétés d'avis obligatoires et recommandées.

servesCuisine

servesCuisine

Type de cuisine servie au restaurant.

telephone

Text

Numéro de téléphone professionnel censé être le mode de contact principal des clients. Assurez-vous d'inclure le code du pays et l'indicatif régional dans ce numéro de téléphone.

url

URL

URL complète de l'établissement. Contrairement à la propriété @id, l'URL doit ici être un lien fonctionnel.

Si vous répertoriez plusieurs restaurants sur votre site et que vous souhaitez qu'ils soient éligibles à un carrousel hôte, ajoutez l'objet Carousel. Outre les propriétés standards, définissez les propriétés suivantes dans cet objet. Bien que les propriétés de carrousel ne soient pas obligatoires, vous devez ajouter les propriétés suivantes si vous souhaitez que votre liste de restaurants puisse s'afficher dans un carrousel hôte.

Propriétés obligatoires
image

Élément URL ou ImageObject répété

Une ou plusieurs images du restaurant.

Consignes supplémentaires relatives aux images :

  • Chaque page doit contenir au moins une image (que vous incluiez ou non un balisage). Google choisit la meilleure image à afficher dans les résultats de recherche en fonction du format et de la résolution.
  • Les URL des images doivent être explorables et indexables.
  • Les images doivent représenter le contenu balisé.
  • Le format des fichiers images doit être compatible avec Google Images.
  • Pour de meilleurs résultats, fournissez plusieurs images de haute résolution (minimum 50 000 pixels lorsque vous multipliez la largeur et la hauteur) avec les proportions suivantes : 16x9, 4x3 et 1x1.

Exemple :

"image": [
  "https://example.com/photos/1x1/photo.jpg",
  "https://example.com/photos/4x3/photo.jpg",
  "https://example.com/photos/16x9/photo.jpg"
]
name

Text

Nom du restaurant.

Propriétés recommandées
address

PostalAddress

Adresse physique de l'établissement. Incluez autant de propriétés que possible. Plus vous fournissez de propriétés, plus le résultat proposé aux utilisateurs sera de bonne qualité. Exemple :

"address": {
  "@type": "PostalAddress",
  "streetAddress": "148 W 51st St",
  "addressLocality": "New York",
  "addressRegion": "NY",
  "postalCode": "10019",
  "addressCountry": "US"
}
servesCuisine

servesCuisine

Type de cuisine servie au restaurant.

Dépannage

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