Javascript peut-il remplacer une meta robots en « index, follow » ?

Mathieu Chartier SEO 0 commentaire

Google Versus Javascript (indexation, crawl, rendu)

Javascript est un langage de plus en plus utilisé sur le Web, notamment en matière de SEO, car il offre pléthores de possibilités et d'astuces pour contrôler l'affichage des pages. Le blog SearchEngineLand a tenté de répondre à une question posée sur un fil TechSEO de Reddit qui concerne Javascript et sa capacité à moduler une balise meta robots. Comme le sujet est intéressant, j'ai tenu à vous le partager également.

Il peut arriver dans les sites web dynamiques qu'un fichier (souvent en PHP) serve de modèle pour de nombreuses pages web. Dans ce cas, il est difficile de dire que certaines pages sont indexables et d'autres non puisqu'il s'agit du même fichier originel. En soi, cela est possible mais ce n'est pas toujours bien conçu à l'origine (par exemple, il suffit de remplir un champ dans la base de données avec "follow" ou "nofollow" puis de récupérer dynamiquement la valeur pour que cela fonctionne). Certains webmasters ont donc trouvé une astuce avec Javascript. Cela consiste à laisser la balise <meta name="robots" content="noindex, nofollow"/> par défaut (pas d'indexation souhaitée) puis de supprimer uniquement la valeur "noindex, nofollow" avec Javascript une fois le chargement de la page réalisée. Ainsi, GoogleBot verra bien qu'il est autorisé à indexer la page...

Problème, cela ne fonctionne pas. John Mueller, un des porte-paroles de Google, a répondu que la valeur "noindex" est plus forte que tout. Si la valeur est lue par le robot, et même si elle est manipulée ensuite par Javascript, le "noindex" l'emporte toujours sur la valeur "index". En d'autres termes, il ne faut pas le manipuler avec Javascript car c'est inefficace. Voici sa réponse exacte, afin que je ne déforme pas ses propos :

Google utilisera le paramètre le plus restrictif que vous avez dans la page (cela correspond à la façon dont les balises méta robots sont généralement traitées, par exemple si vous avez un "noindex" + "index", le "noindex" remplacera toujours le "index"). Si vous avez un "nofollow" dans une page HTML statique, et que vous le supprimez avec Javascript, Google utilisera toujours le "nofollow". De même, si vous n'avez pas de balise meta robots, et que vous ajoutez un "noindex" avec Javascript, Google utilisera le "noindex". Pour faire simple, ajouter un "nofollow" avec Javascript devrait fonctionner, mais le supprimer ne fonctionne pas.

La réponse de John Mueller est fort intéressante, car elle montre bien que Google lit plusieurs états d'une page web déjà (la page d'origine et la page après chargement des scripts), mais aussi que le crawler GoogleBot s'intéresse toujours aux pires restrictions. Donc en soi, le Javascript n'est pas le problème dans l'exemple cité sur Reddit, mais bel et bien le fait que l'on cherche à manipuler deux valeurs d'attributs HTML strictement opposées, et que dans tous les cas, c'est la valeur restrictive qui est retenue par Google. Nous pouvons imaginer d'autres cas similaires qui sont peut-être tout aussi problématiques, mais retenons surtout qu'un changement dynamique pour jongler entre indexation et désindexation entraînera toujours une désindexation si on utilise la méthode Javascript... ;-)