web-dev-qa-db-fra.com

Les microdonnées peuvent-elles être implémentées dans des balises méta?

Veuillez considérer le code suivant marqué avec des attributs pour fournir des microdonnées:

<!DOCTYPE html>
<html>
    <head>
        <title>Micro data test - Normal version</title>
    </head>
    <body>
        <div itemscope itemtype="http://schema.org/Product">
            <h1 itemprop="name">Product name</h1>
            <img alt="" itemprop="image" src="http://placehold.it/200x200" />
            <div itemprop="description">This is the product description.</div>
            <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
                <meta content="in_stock" itemprop="availability" />
                <span content="GBP" itemprop="priceCurrency">£</span><span itemprop="price">100.00</span>
            </div>
        </div>
    </body>
</html>

L'utilisation de Google outil de test de données structurées donne des résultats positifs.

Cela convient très bien dans l'exemple de test. Cependant, nous souhaitons implémenter des microdonnées sur une variété de sites dont la structure HTML varie considérablement. Pour implémenter les attributs de cette manière, il faudra que quelqu'un modifie manuellement le balisage HTML sur chacun des sites.

De préférence, nous aimerions pouvoir appeler une seule fonction qui regroupe toutes les microdonnées au même endroit. techniquement, cela est possible en utilisant les balises META de la manière suivante:

<!DOCTYPE html>
<html>
    <head>
        <title>Micro data test - Meta tag version</title>
    </head>
    <body>
        <meta itemscope itemtype="http://schema.org/Product" itemref="microName microImage microDescription microOffer" />
        <meta id="microName" itemprop="name" content="Product name" />
        <link id="microImage" itemprop="image" href="http://placehold.it/200x200" />
        <meta id="microDescription" itemprop="description" content="This is the product description." />
        <meta id="microOffer" itemprop="offers" itemscope itemtype="http://schema.org/Offer" itemref="microCurrency microPrice microAvail" />
        <meta id="microAvail" itemprop="availability" content="in_stock" />
        <meta id="microCurrency" itemprop="priceCurrency" content="GBP" />
        <meta id="microPrice" itemprop="price" content="100.00" />
        <div>
            <h1>Product name</h1>
            <img alt="" src="http://placehold.it/200x200" />
            <div>This is the product description.</div>
            <div>£100.00</div>
        </div>
    </body>
</html>

L'utilisation de Google outil de test de données structurées donne les mêmes résultats positifs que le premier test.

Pour référence (nous ne le ferions jamais sur un site réel) Google outil de test de données structurées renvoie une erreur si vous essayez de transmettre des microdonnées masquées par CSS.

Ainsi, le balisage normal et les balises méta produisent les mêmes résultats. Cependant, je suis préoccupé par les déclarations suivantes de Google et Schema.org:

https://support.google.com/webmasters/answer/14675 déclare:

En règle générale, Google utilisera uniquement des données balisées visibles par l'utilisateur. Les données cachées seront ignorées. Toutefois, dans certaines circonstances, il peut être utile de fournir une version de votre contenu lisible par une machine et par une personne. Par exemple, bien que la chaîne de texte "Anniversaire d'Elvis" soit importante pour un très grand nombre de lecteurs humains, ce n'est pas aussi significatif pour les moteurs de recherche que 1935-01-08. De même, les lecteurs peuvent en déduire la signification du symbole $, mais il peut être utile d'indiquer spécifiquement aux moteurs de recherche si vos prix sont en pesos ou en dollars.

http://schema.org/docs/gs.html indique (en ce qui concerne l'utilisation de balises méta):

Cette technique doit être utilisée avec parcimonie. Utilisez uniquement méta avec du contenu pour des informations qui ne pourraient autrement pas être annotées.

http://schema.org/docs/faq.html#1 déclare:

En règle générale, vous ne devez marquer que le contenu visible par les personnes qui visitent la page Web et non le contenu des éléments de page masqués ou cachés.

Mes questions sont:

  1. Bien qu'aucune erreur ne soit renvoyée, les moteurs de recherche nous pénaliseraient-ils pour utiliser des balises méta de cette façon (dupliquer du contenu, masquer des informations, etc.)?
  2. Si cela ne vous convient pas, pouvez-vous suggérer un moyen de fractionner les microdonnées à partir des données réelles ou devrons-nous nous en tenir à la balle et l'implémenter en HTML au cas par cas?
12
Hidden Hobbes

Votre plan d'utilisation de métadonnées pour les microdonnées n'est pas viable. Voici la FAQ de Google explique pourquoi il n'affiche pas vos données dans les résultats de la recherche :

Votre contenu balisé est-il masqué des utilisateurs?

En règle générale, Google n'affiche aucun contenu sous forme d'extraits enrichis non visible par l'utilisateur. Ne masquez pas le contenu que vous avez marqué pour des extraits enrichis à l'aide de techniques telles que display:none, value-title ou css. Google ignorera le contenu qui ne sera pas visible par les utilisateurs. Vous devez donc marquer le texte que les visiteurs verront sur vos pages Web.

Le seul moyen d'obtenir que Google utilise les microdonnées que vous fournissez est de les marquer à l'endroit où elles se trouvent dans la page, visibles pour l'utilisateur.

À ce stade, Google n’est pas pénalisant pour avoir tenté d’abuser des extraits riches, au-delà du simple fait de désactiver les extraits enrichis pour ce site. Je ne serais pas surpris si Google commençait à exclure entièrement les sites des résultats de la recherche lorsque Google découvre que le site tente d'utiliser les microdonnées d'une manière non conforme aux instructions.

Tant que vos métadonnées que vous balisez sont également visibles quelque part sur la page, il est peu probable que Google pénalise votre site en le qualifiant de malveillant. Cependant, leurs outils automatiques détectent le moment où vous marquez les données dans un emplacement non visible et ne les affichent pas dans les résultats de la recherche.

7

L'utilisation des éléments meta (et link) pour Microdata convient parfaitement. Parfois, il n’ya même pas d’alternative judicieuse, par exemple, si des codes spécifiques doivent être fournis alors qu’il n’a aucun sens de les montrer à vos utilisateurs.

Google utilise même meta dans certains de leurs exemples Rich Snippets:

  • Produits et Applications logicielles :

    <meta itemprop="priceCurrency" content="USD" />
    
  • Avis :

    <meta itemprop="datePublished" content="2006-05-04">
    <meta itemprop="bestRating" content="10"/>
    <meta itemprop="worstRating" content="1"/>
    
  • Vidéos :

    <meta itemprop="uploadDate" content="2015-02-05T08:00:00+08:00"/>
    <meta itemprop="duration" content="PT1M33S" />
    <meta itemprop="interactionCount" content="2347" />
    
  • Articles :

    <meta itemprop="datePublished" content="2015-02-05T08:00:00+08:00"/>
    

La question est donc de savoir combien coûte trop (s'il y a une limite). Et je pense qu’il est prudent de supposer qu’il n’ya pas de limite dure , cela dépend très probablement de divers facteurs supplémentaires.

Cependant, il serait logique que Google n'écarte pas les balises de microdonnées si seul le paramètre meta/link est utilisé. Pourquoi? Parce qu'ils supportent également (et parfois même recommandent ) JSON-LD pour fournir des données Schema.org, et cela consiste uniquement de contenu "caché" (à savoir , un élément script caché utilisé sous forme de bloc de données ).

Et c’est ce que je suggérerais dans votre cas: si vous ne souhaitez pas ajouter les données structurées en balisant vos éléments existants, tilisez JSON-LD.

5
unor

Je ne peux pas dire si cela fonctionnerait dans toutes les situations, mais nous utilisons Schema.org de la manière que vous décrivez - en tant que méta "contenu" sur les pages du produit. Pourquoi? C'est tellement plus portable et ne détruit pas les thèmes. Il permet également un contrôle plus granulaire sur le formatage des données et obtient les données pertinentes juste après <body> (bien au-dessus du pli). On pense à des plates-formes basées sur les crochets (ou même sur F & R comme vQmod): il n’existe aucun moyen de fluidifier toutes les directives F & R dans la structure sans les coder en dur.

Nous n'avons pas remarqué de pénalités, Google utilise toujours les données, les met toujours dans les widgets SERP. Nous avons toujours la plupart des données sur la page quelque part, mais dans la mesure où la majeure partie du balisage est utilisée, elle est contenue dans un méta conteneur hiérarchique unique utilisant content="" comme votre exemple le plus récent, mais uniquement dans son organisation enveloppée avec "faire une offre ". Maintenant, n'allez pas trop loin: il est préférable de laisser de côté les éléments structurels tels que les commentaires en boucle, la chapelure, la description principale ou les spécifications de ce méta conteneur. Essayez de les coder en dur.

La plupart des gens diront "n'utilisez pas content="" metas" ", mais la plupart de ces personnes ne l'ont jamais essayée. Il en va de même pour des choses comme le balisage riche sur les listes de produits dans les catégories ... oui, nous enfreignons cette règle aussi :) Rappelez-vous simplement que Google n'est pas le seul poisson dans le RDF étang. Ce que dit G n’est pas décisif dans l’utilisation de formats de données standard, d’une manière parfaitement acceptable pour le reste de l’étang. Peut-être même parce que G change d’avis à l’avenir. Il veut des données ci-dessus/surtout, mais vous oblige à coder dans les données ci-dessous/ci-dessous, alors que meta attribs le met au premier plan, dans un langage accessible par machine.

2
dhaupin