Javascript et SEO

Décembre 2015

Depuis quelques années, Google clame qu'il indexe très bien les sites qui utilisent du Javascript. Mais est-ce vraiment le cas ?

J'ai compilé sur cet article quelques tests effectués par d'autres ainsi que des cas particuliers sur l'utilisation de framework Javascript comme Angular.

Indexation du Javascript

N'y allons pas par quatre chemins : Google peut indexer le Javascript dans une certaine mesure.

Les tests ont été réalisés sur cette page (en anglais) que je vous invite à consulter pour avoir tous les détails.

Voici les résultats :

  • Injection de contenu avant le chargement du DOM : indexation OK
  • Injection de contenu après le chargement du DOM : indexation OK
  • Injection de contenu asynchrone, 1000 ms après le chargement du DOM : indexation OK
  • Injection de contenu avec httpRequest (chargement d'un fichier JSON) : indexation OK
  • Chargement d'un objet JSON-LD dans HEAD : indexation KO
  • Remplacement du contenu de la balise meta descritpion : indexation OK

Pour tous les tests qui ont été réalisés avec succès, Google a bien indexé le contenu ajouté en Javascript et celui-ci est bien visible dans les résultats du moteur de recherche (SERP).

Attention : en regardant la source des tests, on s'aperçoit que le Javascript utilisé est relativement simple. Ces tests ont donc été mis au point en Javascript pur sans utilisation de Framework ou d'outil à la JQuery.

Indexation de l'AJAX

Pour le contenu inséré en AJAX de façon asynchrone dans vos pages, Google a indiqué que depuis le mois d'octobre 2015, ils étaient parfaitement capable d'indexer le contenu sans action particulière des développeurs (source).

Pour arriver à ce résultat, le google-bot va non seulement récupérer le code source de votre page web mais aussi l'exécuter dans un navigateur pour voir ce que la page propose à l'utilisateur (source).

Ce fonctionnement est rendu possible par l'utilisation de nombreux outils comme phantomjs qui permettent de piloter un navigateur web depuis des outils informatiques de scripts ou des bots et des crawlers.

Bien sûr, il faut respecter un certain nombre de choses pour que cela fonctionne : il faut autoriser le bot de google à récupérer tout ce qui peut être utile à la page (fichiers Javascript, JSON, CSS, etc.).

Mais Google met en garde contre quelque chose de très important :

Sometimes the JavaScript may be too complex or arcane for us to execute, in which case we can’t render the page fully and accurately.

En d'autres termes : si vous avez fourni un code trop complexe, le bot google est un peu dans les choux ! Bien que cette remarque date de 2014, elle a quand même du sens.

En effet, voici un exemple d'erreur : de plus en plus de pages chargent des données par la méthode dite de l'infinite scroll. Il faut donc scroller tout en bas de la page pour afficher du contenu supplémentaire. Il est évident que cette information n'est pas accessible au bot Google qui ne pensera surement pas à scroller jusqu'à ce qu'il arrive à afficher tout le contenu à indexer.

Donc même si Google fait des progrès chaque jour, il faut savoir raison garder et être économe en Javascript.

AngularJS : un cas particulier

Angular est un framework Javascript de plus en plus populaire. Cependant, son utilisation expose le site à certains problèmes en matière de SEO.

Les sites et applications qui sont conçus avec Angular sont très dynamiques. Il semble qu'ils entrent clairement dans la cas "trop complexe" du bot google en ce qui concerne leur indexation.

Heureusement, il existe des techniques de "pré render" qui consistent à effectuer un rendu de la page sur le serveur avant d'être donné au bot google. Vous pouvez voir toutes les solutions possibles dans cet article de search engine journal.

Si vous choisissez de travailler avec Angular, je vous conseille fortement de prendre 35 minutes pour regarder cette vidéo qui va vous en apprendre beaucoup sur les problématiques rencontrées au niveau SEO :

Note : ces remarques peuvent aussi convenir pour d'autres framework du même genre comme Ember.

Conclusion : mes recommandations

Pour le moment, on s'est seulement intéressé à l'indexation. Cependant, ce qui nous préoccupe c'est aussi si les éléments affichés par Javascript sont bien utiles pour faire ranker nos sites et nos pages.

J'ai beaucoup de mal à trouver une réponse à cette question. En principe, si Google a indexé c'est qu'il a prit en compte.

Cependant, il est possible (je dis bien possible, ce n'est pas une certitude) qu'une page qui utilise javascript sera légèrement moins bien placée qu'une page qui n'utilise pas cette technologie. La raison serait simple : cela ralenti la page. La page qui n'utilise pas Javascript et qui affiche directement l'information sera plus rapide à s'afficher pour l'utilisateur.

Mais, pour le moment, rien n'est clair.

Voici ma recommandation : éviter le plus possible Javascript pour afficher des informations pertinentes pour l'utilisateur et les moteurs de recherches.

Car, si on a beaucoup parlé de Google sur cette page, il faut aussi noter qu'il existe d'autres moteurs, dont Bing ou Baidu, qui peuvent avoir plus de mal à indexer le Javascript.

Si vous souhaitez quand même enrichir vos pages web de Javascript (vous avez le droit) pensez à bien consulter les recommandations de Google et à respecter la technique du progressive enhancement.

Pour d'autres articles sur le référencement et le SEO, cliquez ICI.