web-dev-qa-db-fra.com

SEO schema.org miettes de pain avec affichage: aucune?

Contexte/Motivation

Je gère un module Drupal ( Crumbs ), qui calcule le fil d'Ariane pour un site Drupal.

Je veux rendre ces chapelures SEO-friendly en utilisant par exemple. balisage sémantique des métadonnées schema.org. Idéalement, cela devrait fonctionner automatiquement sur tous les sites, quel que soit le thème actif.

D'autre part, je ne veux pas interférer avec les thèmes qui remplacent le code HTML d'un fil d'Ariane, ou qui ciblent le HTML de chapelure avec CSS.

Cela signifie que je suis en conflit. Soit le module contrôle le code HTML, soit le thème, mais les deux sont difficiles.

Alors j'ai pensé à une solution de contournement: avoir un fil d'Ariane optimisé pour le référencement caché avec "display: none;", généré par le module, et un fil d'Ariane visible où le code HTML est généré par le thème (basé sur les données structurées du module).

Question

Si j'ai un fil d'Ariane optimisé pour le référencement et un fil d'Ariane visible, non optimisé pour le référencement, cela diminue-t-il l'effet sur le référencement?

Autrement dit, le seul effet réel est que le fil d'Ariane apparaisse dans le résultat de la recherche. Si c'est le cas, alors tout va bien?

La page schema.org http://schema.org/BreadcrumbList mentionne Microdata, RDFa et JSON-LD. Naturellement, la variante JSON-LD n’a aucune sortie, alors peut-être que ce serait l’ajustement naturel?

Mettre à jour

Le module utilise maintenant json-ld pour les métadonnées de fil d’ariane.

3
donquixote

Les trois syntaxes permettent de fournir des données structurées cachées:

  • JSON-LD : L'élément script est masqué par défaut.
  • Microdonnées et RDFa : vous pouvez utiliser les éléments link/meta (qui sont masqué par défaut) dans les éléments body + sans signification div/span si le regroupement est nécessaire.

Masquer le balisage pour la chapelure n’affectera probablement pas votre référencement, car la chapelure dupliquée masquée ne fournit aucun contenu qui ne soit pas également visible sur la page.

Du point de vue d’un Drupal

Pour un module Drupal, je pense que la meilleure pratique consiste à utiliser la syntaxe RDFa :

  • Le support technique fait partie de Drupal core dans D7 et D8 ( module RDF , API de mappage RDF )

    Les modules peuvent fournir des mappages des données et métadonnées de leurs ensembles à RDF classes et propriétés. Ce module s’occupe d’injecter ces correspondances dans des variables disponibles pour les fonctions de thème et les modèles. Tous les Drupal thèmes centraux sont codés pour être compatibles RDFa.

  • Si vous utilisez l'API de mappage RDF dans votre module, je pense que les utilisateurs ne verront même pas le type de RDFa dans le modèle, mais uniquement les attributs généraux Drupal auxquels ils sont habitués autres fichiers modèles ( rdf_rdfa_attributes )

    Ce tableau sera généralement passé par Drupal\Core\Template\Attribute afin de créer les variables d'attribut disponibles pour les fichiers de modèle. Ceux-ci incluent $attributes, $title_attributes, $content_attributes et les variables $item_attributes spécifiques au champ.

  • Si les utilisateurs sont intéressés par les données structurées, ils apprendront probablement RDFa car c’est ce que Drupal prend en charge immédiatement. Au cas où ils voudraient manipuler les données structurées d'une manière ou d'une autre et que vous utilisiez une syntaxe différente, ils devraient en apprendre une autre simplement à cause de votre module.

  • Si vous utilisez une syntaxe différente, il sera plus difficile d'intégrer votre Microdata/JSON-LD au RDFa généré par Drupal.

    Par exemple, pour ajouter votre élément BreadcrumbList (dans JSON-LD ou Microdata) à l’élément WebPage (dans RDFa, généré par Drupal) avec la propriété breadcrumb , vous ne pouvez pas imbriquer la liste avec le paramètre property. attribut sous le WebPage. Au lieu de cela, vous devez générer un URI pour BreadcrumbList (et vous assurer qu'il est unique, c'est-à-dire qu'il n'est pas utilisé par le propriétaire du site de toute autre manière), et référencer cet URI en tant que valeur pour la propriété breadcrumb sous WebPage (afin que vous ayez utiliser quand même RDFa).

  • Si un propriétaire de site souhaite que son site produise du JSON-LD, il est facile de convertir tout le RDFa en JSON-LD. Mais il est impossible de convertir JSON-LD en RDFa qui utilise le balisage existant, car la connexion du balisage à son contenu n’est pas capturée avec JSON-LD.

2
unor