J'ai un site Web qui répertorie les visites de nombreux tour opérateurs. Chaque page de tournée indique les prix, le lieu, les évaluations et les critiques, et peut ne pas indiquer la date de la visite (certaines visites ont lieu tous les jours, certaines à la demande, d'autres à des dates spécifiques).
Il ne semble pas y avoir de schéma schema.org correct pour cela. Event ou SaleEvent semble être un bon choix, mais StartDate est un champ obligatoire. Ensuite, il y a Produit et Service qui pourrait être le bon choix.
Je me demande quel est le meilleur moyen de marquer ceci pour obtenir le meilleur classement par moteurs de recherche, recherche locale (par lieu de tournée) et extraits enrichis?
Voici comment vous feriez ceci:
Avoir un wrapper pour https://schema.org/ProfessionalService
pour la compagnie de guide touristique.
Étant donné que ProfessionalService
est un enfant de LocalBusiness
, vous pouvez hériter de tous les détails de propriété commerciaux pertinents ou simplement utiliser mainEntityOfPage
pour faire référence à la page Tour Company de votre site Web.
Ensuite, utilisez la propriété d’élément makesOffer
- le type attendu pour cela est un Offer
trouvé dans https://schema.org/Offer
.
Chaque offre contiendrait vos prix, votre emplacement, vos notes et vos commentaires. Voici la liste:
price
item du type d'élément Offer
. Le type attendu est soit text
soit number
.availableAtOrFrom
item du type d'élément Offer
. Le type d'élément attendu est Place
, ce qui signifie que vous pouvez utiliser n'importe lequel de ses enfants, tel que LocalBusiness
, voire même des petits-enfants, comme ProfessionalService
. *.review
item du type d'élément Review
. Tout de suite, la propriété reviewRating
item de Review
sera utilisée pour les commentaires. reviewRating
est de Rating
type d'élément, utilisez l'enfant aggregatedRating
pour un classement des avis.availabilityStarts
et availabilityEnds
vous couvrent pour celui-ci. Ils renvoient tous les deux la DateTime
- c’est là que la flixibilité du temps entre en jeu. DateTime
contient de nombreuses propriétés, , notamment availabilityStarts
et availabilityEnds
- qui peut être soit Demand
, soit Offer
. **Quelques autres notes:
https://schema.org/AggregateOffer
est un enfant de Offer
et peut être utilisé pour remplacer le type d'élément attendu de Offer
pour la propriété makesOffer
de ProfessionalService
. Cela peut être utile si vous avez différentes versions de circuits (par exemple, un forfait premium) ou si vous avez une page d'affichage de liste contenant toutes les visites d'une seule entreprise.Vous pouvez également inverser le problème en ayant un AggregatedOffer
uniquement pour l'emplacement et répertorier tous les ProfessionalService
et leurs Offer
si plusieurs agences de voyage travaillent au même endroit et à la même date, etc. .
En règle générale, faites attention à la colonne expected type
sur schema.org
pour déterminer le meilleur moyen de résoudre un problème.
Le LocalBusiness
+ enfants utilisé avec Offer
est un modèle de conception de données très courant et serait probablement l'un des plus utilisés dans la conception pratique de fragments enrichis.
Vous pouvez également utiliser additionalType
pour associer plusieurs types d'élément de schéma.
* Vous remarquez un thème de création? Bien. Cela peut être utilisé pour créer un schéma récursif, ce qui signifie que vous pouvez avoir une offre dans une offre. Faites attention aux types attendus pour voir si vous pouvez revenir en arrière vers le haut dans la hiérarchie et rechercher un type d'élément enfant approprié si vous êtes dans une impasse. ** Notez que cela peut également créer un schéma récursif, vous permettant ainsi d'avoir et d'offrir au sein d'une offre.