Rappel du contexte : voici donc la suite de notre série de questions/réponses avec Google avec une question souvent posée au sujet des contenus "cachés", notamment dans le cadre de sites web 2.0.

En effet, la règle d'or énoncée par Google pour le contenu textuel d'une page web est claire : "tout ce que l'internaute voit, le moteur doit le voir, tout ce que le moteur voit, l'internaute doit le voir." Donc, si l'on suit cette règle à la lettre, on comprend que tout le contenu indexable par le moteur de recherche doit être visible par l'internaute lorsque la page est affichée.

Or, cela n'est pas toujours le cas, notamment sur les sites web "2.0" pour lesquels du texte est souvent "pré-chargé", bien présent dans la page web, mais non affiché par défaut. Par exemple : plusieurs onglets peuvent être proposés sur une page web, le contenu de chaque onglet étant présent dans le code HTML. Mais ces contenus n'apparaîtront que si on clique sur les onglets en question, pour faire apparaître instantanément le contenu de cette zone (voir un exemple parlant ici : http://webfx.eae.net/dhtml/tabpane/tabpane.html. Dans ce cas, en un sens, on cache du contenu à l'internaute, tout du moins au premier affichage de la page. Est-ce alors répréhensible ?

De a même façon, l'utilisation d'attributs "visibility:hidden" ou "display:none" peut être nécessaire au bon "non-affichage" ou à la mise en page de certaines parties de textes dans ce type de site. Là encore, y a-t-il un risque de pénalité si ce type de fonction est utilisée ?

Nous avons posé la question à Google et à Ambroise Fensterbank et voici sa réponse :

Question Abondance : On sait que la notion de "contenu caché" est préjudiciable dans le cadre d'une bonne prise en compte de son contenu par Google. Cependant, notamment dans le cas de sites Web "2.0", on peut être amené à utiliser des attributs "visibility:hidden" ou "display:none", à des fins de mise en pages, par exemple pour précharger le contenu d'un onglet non visualisé sur la page par défaut, mais qui pourra être affiché si on sélectionne cette zone d'information (en cliquant sur l'onglet correspondant, par exemple). Cette technique est-elle préjudiciable ?
 

La réponse de Google : Non, l'emploi de cette technique n'est pas préjudiciable dans ce cas, car cela ne va pas tromper les utilisateurs de Google.
En général, nous recommandons de montrer la même chose à Googlebot et à vos visiteurs. Mais parfois, les webmasters ont besoin de montrer du contenu de façon différente aux visiteurs et aux moteurs de recherche, pour leur design par exemple. Dans ce cas, cela ne pose pas de problèmes.
Si vous utilisez du code JavaScript, notamment, assurez-vous que le contenu soit accessible aux utilisateurs qui ne peuvent pas l'exécuter (tel que Googlebot) et que ça n'entrave pas la navigabilité du site. Vous pouvez utiliser un navigateur en mode texte tel que Lynx pour avoir une idée de ce que Googlebot voit de votre site.

Notre commentaire : la règle "tout ce que l'internaute voit, le moteur doit le voir, tout ce que le moteur voit, l'internaute doit le voir" doit donc être interprétée avant tout en termes de "bon sens". S'il y a tentative de "tricherie" auprès de Google en tentant de tromper les internautes, la pénalisation sera mise en place. Si du texte n'est pas affiché mais que cela est nécessaire pour la mise en pages, cela ne posera pas de problèmes a priori. On peut penser également à la création de texte en "visibility:hidden" mis "derrière" un logo au format image par exemple. Si le texte "caché" décrit parfaitement le contenu de l'image (exemple : "Logo de l'entreprise Tartempion"), cela devrait "passer" sans problèmes. Si le texte "caché" est un prétexte pour indiquer une dizaine de mots clés ("Tartempion : chaussures de sport, chaussures de tennis, chaussures de basket, chaussures pour sportifs, chaussures pas cher"), cela devient vite "limite" et donc potentiellement pénalisable. Tout est question de bon sens et de nuances parfois dans le petit monde du référencement 🙂

Rappel de la première Question à Google : Les underscores dans les URL (Questions/réponses avec Google #1)