Les contenus masqués dans des tableaux Javascript ne sont pas indexés par Google

Mathieu Chartier Référencement 0 commentaire

Google : indexation de contenus et de pages web

Gary Illyes vient de rapporter une information provenant du SMX d'Israël sur Twitter au sujet des contenus masqués dans des tableaux Javascript. Il a précisé que les textes insérés dans des "Array()" en Javascript ne sont pas indexés par Google, contrairement à d'autres méthodes de masquage qui fonctionnent encore.

Voici les mots sans équivoque de Gary Illyes :

Si vous ajouter des contenus dans un tableau Javascript et que vous les afficher uniquement quand vous cliquez par exemple sur "...", ces contenus ne seront pas indexés par Google.

En effet, il arrive fréquemment que les développeurs stockent les informations au sein de tableaux de données en Javascript, puis cliquent sur un bouton pour étendre l'affichage des contenus (avec des boutons comme "Lire la suite...", "En savoir plus", "...", "Afficher plus"...). Gary Illyes rapporte qu'il s'agit d'une méthode à éviter car Google n'indexe pas les contenus masqués dans ces cas précis.

Face à tweet dévastateur, les twittos ont questionné Gary Illyes, notamment sur le fait de plutôt proposer des onglets avec des contenus cachés via jQuery. Gary Illyes a répondu à juste titre que le problème ne provient pas du résultat, mais de la méthode employée pour rapporter les contenus masqués. Il a indiqué que le fait de cacher des textes via du CSS serait une meilleure solution. Pour tous les détracteurs des display:none et visibility:hidden, cela prouve une nouvelle fois que cela n'est pas un frein pour Google, ni un risque fort de pénalité.

En d'autres termes, il vaut mieux importer les contenus dans des blocs HTML masqués via CSS plutôt que dans des tableaux Javascript, au risque de ne pas avoir ces textes indexés par le moteur de recherche.

Voici les tweets originaux :

Cela est assez logique sur le plan technique car les tableaux Javascript ne peuvent pas être parcourus par Google comme des contenus classiques, donc leur affichage ne pourra pas être déclenché par le moteur. Cette indication est importante car elle va dans le sens des récents efforts menés par Google au profit de l'AJAX. En effet, les contenus AJAX sont également masqués par Javascript mais cette précision vient certainement indiquer aux webmasters une méthode à éviter s'ils veulent que leurs contenus soient délivrés.

Voici un exemple bloquant techniquement pour Google (ce n'est qu'une méthode en Javascript, il en existe plein d'autres) :

<script>
var tableauContenu = new Array("Texte masqué 1", "Texte masqué 2", "Texte masqué 3", "...");
i = 0;
function afficherContenu(tableauContenu, idBloc) {
	if(i < tableauContenu.length) {
		// Création d'un paragraphe <p>
		var paragraphe = document.createElement("p");
		
		// Récupération du bon contenu à ajouter
		var contenu = tableauContenu[i];
		
		// Enregistrement du contenu dans le paragraphe
		var texte = document.createTextNode(contenu);
		paragraphe.appendChild(texte);
		
		// Ajout du paragraphe en fin de bloc (div ici)
		document.getElementById(idBloc).appendChild(paragraphe);
		
		// On instancie une variable globale pour savoir quels contenus récupérer dans le tableau des contenus
		i = i + 1;
	}
}
</script>
<div id="blocContenu">
<p>Texte affiché par défaut avec un lien dessous pour développer le contenu supplémentaire dans la même DIV.</p>
</div>
<p><a href="#" onclick="afficherContenu(tableauContenu, 'blocContenu');">Lire la suite...</a></p>

Voici ce que cela donne dans un GIF animé. C'est fonctionnel, mais les contenus ne seraient pas indexés par Google, donc ça fait réfléchir...

Indexation bloquante des contenus dans des tableaux Javascript pour Google

Pour rappel, John Mueller avait indiqué fin novembre 2014 que Google réfléchissait à ne plus indexer les contenus potentiellement visibles (source : Abondance.com). Si cela avait créé un sentiment de panique (justifié), nous pouvons imaginer que ce désir soit encore dans les petits papiers de la firme de Mountain View. Retenons surtout qu'il faut prendre garde aux méthodes utilisées pour afficher des contenus préalablement masqués, et les tableaux Javascript constituent donc un critère bloquant dans ce cas.