JavaScript et SEO : en route vers la réconciliation ?
Les progrès de Google pour crawler le JavaScript encouragent l'émergence de solutions pour produire des sites à la fois bien indexés et dynamiques.
Julie Schadt, responsable SEO au Parisien, est catégorique. "Il n'est pas question d'envisager l'avenir du web sans JavaScript. C'est un langage vivant, très puissant, qui permet de construire des pages dynamiques et ergonomiques". Et les progressive web app lui offrent de formidables perspectives de développement, en rapprochant à s'y méprendre les pages web des applications mobiles classiques, fonctionnalités incluses.
Oui, mais voilà, il ne sert à rien d'avoir un beau site si personne ne le voit. Or miser massivement sur le JavaScript est dangereux pour son SEO. Pourquoi ? Parce que l'indexation par Google d'une page contenant beaucoup de JavaScript n'est "ni immédiate ni garantie", répond Grégory Goudet, directeur SEO chez l'agence de marketing digital Primelis. Et ce malgré les annonces du moteur de recherche en mai dernier, quand il déclarait pouvoir comprendre le JS sur les sites.
"Si les robots n'ont pas le temps de comprendre le contenu JavaScript de la page, il n'est pas indexé"
En réalité, pour crawler les pages en full JavaScript, Google utilise Chrome 41, une version de son navigateur datant de 2015. Problème, elle n'est pas compatible avec certains framework JavaScript, trop récents, comme la deuxième version d'Angular-js, éditée en 2016. Par conséquent, il peut y avoir un décalage entre la page que voient les internautes, complète et animée et celle que voient les robots, intégralement ou partiellement vide. En effet, le rendu de l'aperçu de la page que conservent les robots est fixé à cinq secondes : s'ils n'ont pas eu le temps de comprendre le contenu, il n'est pas indexé. Il y a donc quelques précautions à prendre avant d'insérer du langage JavaScript dans le code HTML de son site.
Grégory Goudet recommande aux sites non full JavaScript qui souhaitent en utiliser pour rendre des pages ou des templates plus interactifs de se restreindre à des zones dont la lecture par les robots n'est pas indispensable pour le SEO. Suivant cette logique, le title, nécessaire pour la gestion du contenu et le menu, pour le maillage interne, doivent se trouver hors du champ JavaScript de la page. D'ailleurs, la consigne du moteur de recherche pour les sites partant de zéro est de bâtir sur du HTML la structure et la navigation du site, et ensuite seulement d'ajouter de l'AJAX (acronyme du langage JavaScript et du format de données XML).
"Encore très peu de sites français recourent au pré-rendering"
Pour les sites full-JS, deux solutions existent actuellement : le pré-rendering et l'optimisation du temps de rendu. Le pré-rendering est la technique actuellement recommandée par Google. Elle consiste à créer une version de la page pour les serveurs, en HTML et CSS et une version pour les utilisateurs avec du JavaScript. Le contenu est le même sur les deux versions, présenté de la même façon, seul le mode d'envoi diffère. Ce n'est donc pas du cloacking, cette mauvaise pratique qui consiste à proposer un contenu pauvre aux utilisateurs et un autre beaucoup mieux optimisé aux robots d'indexation.
Selon Grégory Goudet, encore très peu de sites français recourent au pré-rendering, solution technique qu'il déconseille par ailleurs d'installer sans l'aide d'un développeur connaissant déjà la marche à suivre. Selon le framework utilisé (ReactJS, Angular-js, Vue.js, etc), il est plus ou moins compliqué à mettre en place. L'outil payant prerender.io est une solution Saas qui peut aider un webmaster à externaliser le pré-rendering. En termes de performances, le pré-rendering alourdit légèrement la page, mais le directeur SEO considère cet impact négligeable au regard du poids total de la page.
"Il vaut mieux concentrer ses efforts sur l'optimisation du temps de rendu des pages en JavaScript"
Pour d'autres référenceurs, comme Alpha Keïta, search data stratégiste chez Botify, le pré-rendering est une solution vouée à disparaître dès que Google aura perfectionné ses crawlers, et donc peu avantageuse pour les sites full-JavaScript avec beaucoup de trafic. Il estime plus stratégique de concentrer dès maintenant ses efforts sur l'optimisation du temps de rendu des pages en JavaScript.
Moins le robot passe de temps sur chaque page, plus il lui reste de budget de crawl pour visiter les autres. Des outils de crawl JavaScript, fournis par Botify ou OnCrawl, par exemple, analysent tous les éléments de la page et mesurent le temps de chargement de chacun. L'addition de tous les temps de chargement ne doit pas dépasser le temps de rendu de cinq secondes. Sinon, il faut exclure de l'indexation les ressources inutiles, en vérifiant à chaque fois l'impact sur le temps de rendu et l'affichage de la page. Les mêmes outils permettent aussi de détecter des erreurs, comme une version de JavaScript trop moderne pour Chrome 41 ou un lien improprement intégré. A noter que les sites full-JavaScript jouissant d'une bonne autorité bénéficient d'un budget de crawl plus élevé de la part de Google.