web-dev-qa-db-fra.com

Les moteurs de recherche indexent-ils des extraits de code riches en HTML non visibles?

Je souhaite ajouter des données à des extraits enrichis (par exemple, breadcrumps), mais ces informations ne sont pas visibles sur la page (par exemple, car le concepteur n'a pas encore préparé les esquisses).

Existe-t-il un moyen d'indiquer aux moteurs de recherche d'indexer ces données?

3
Dan

Je recommande 2 techniques qui ont fonctionné dans 100% des cas pour moi (testé Google, Yahoo, Bing, Yandex).

First - balises META:

<meta itemprop="xxx" content="yyy">

Second - cacher en utilisant position:absolute, z-index, des marges négatives ou des choses similaires:

<span itemprop="xxx" style="position:absolute;top:-20000px"> yyy </span>

La seconde est plus compliquée mais fonctionne si vous voulez mettre des données hiérarchiques (avec de nombreux nœuds)

La deuxième méthode semble bien fonctionner pour le référencement en noir avec Google et d’autres. Je ne m'attendais pas à cela en 2014, vraiment.

1
Dan

Google n'utilise pas d'extraits enrichis qui ne sont pas visibles sur la page pour les utilisateurs. De leur page d'aide :

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.

EDIT: Google semble avoir assoupli quelque peu cette politique. Ils disent maintenant que les données balisées ne doivent pas être cachées des utilisateurs, mais autorisent les cas où le balisage ne peut pas être appliqué au texte visible dans le code HTML. Leurs directives disent maintenant:

Le balisage ne doit pas être utilisé pour masquer le contenu invisible pour les utilisateurs, sous quelque forme que ce soit, car il pourrait créer une expérience de recherche trompeuse ou trompeuse. Par exemple, si le balisage JSON-LD décrit un artiste, le corps HTML doit décrire ce même artiste.

Il est toujours probable que Google ignore toutes les données qui, à son avis, ne sont pas visibles pour les utilisateurs. Le meilleur moyen d'attirer l'attention de Google sur les données marquées est de marquer les données visibles par les utilisateurs. Dans les cas où Google estime que vous vous y trompez, ils risquent de pénaliser votre site dans le classement Google.

3

JSON-LD

est la manière alternative de faire les choses. Un bonus peut être qu'il ne corrige pas votre code HTML. Exemple:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Restaurant",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Sunnyvale",
    "addressRegion": "CA",
    "postalCode": "94086",
    "streetAddress": "1901 Lemur Ave"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4",
    "reviewCount": "250"
  },
  "name": "GreatFood",
  "openingHours": [
    "Mo-Sa 11:00-14:30",
    "Mo-Th 17:00-21:30",
    "Fr-Sa 17:00-22:00"
  ],
  "priceRange": "$$",
  "servesCuisine": [
    "Middle Eastern",
    "Mediterranean"
  ],
  "telephone": "(408) 714-1489",
  "url": "http://www.dishdash.com"
}
</script>
1
Dan