Tous les articles

Accessibilité VS référencement : quelles méthodes pour (ré-)concilier les deux ?

Par Eric Le Bihan

Après avoir lu sur de nombreux sites traitant de la question du référencement des pages web par les moteurs de recherches que le javascript était néfaste au référencement dans la mesure où les robots ne peuvent lire le contenu pertinent qui serait généré par javascript, ce langage serait-il devenu l’arme ultime des référenceurs, dans une utilisation à contrario ?

Alors que les intégrateurs, développeurs, webmasters et au sens le plus large, les créateurs de sites web échangent sur la meilleure façon d’utiliser javascript pour maintenir un site accessible, les professionnels du référencement n’hésitent pas à conseiller à leurs clients de faire des liens en javascript ou à générer des parties de leur code html via javascript de manière à ne pas référencer certaines pages ou certaines parties de leur contenu dans le but de favoriser des pages au profit d’autres. Les robots n’étant pas à l’heure actuelle en mesure de comprendre et donc d’interpréter le javascript, les liens JS ne seront pas suivis et le contenu généré ne sera pas pris en compte. J’ai également lu dernièrement que les robots seraient (je mets cette information au conditionnel) en mesure de décrypter les url dans le code javascript et donc de suivre ces liens comme des liens html, ce qui oblige actuellement les référenceurs à adopter des méthodes de cryptages – dans la limite de ce qu’il est possible de faire en javascript – pour leurs url !

Cette pratique loin d’être confidentielle se répand comme une traînée de poudre sur les sites de e-commerce français où les liens <a href="link"> sont remplacés par des <span onclick="fonction()">. (L’exemple le plus flagrant en est donné sur la page d’accueil du site de vente en ligne rueducommerce.fr sur laquelle pratiquement aucun lien de type <a href="link"> n’est présent.)

Pour bien comprendre ce que ça implique, il faut d’une part rappeler que cette pratique va totalement à l’encontre des règles d’accessibilité les plus élémentaires :

En effet toute personne ayant javascript désactivé pour une raison ou pour une autre ne pourra pas afficher la page liée. Les personnes ayant javascript activé ne pourront pas utiliser le clic milieu de leur souris ou l’option ouvrir un nouvel onglet de leur menu contextuel. Ce procédé restreint donc les possibilités de l’utilisateur qu’il ait ou pas javascript activé dans son navigateur. Il est important de rappeler que la conception de pages avec le langage html répond à des normes : les standards du web, dont les recommandations sont rédigés par le W3C, organisme qui supervise le développement des standards du web, et pour que ces pages puissent fonctionner de façon satisfaisante dans les principaux navigateurs du marché, ces recommandations ou règles doivent être suivies. Il est également important de rappeler que de nombreuses applications et extensions, notamment celles de Firefox sont basées sur ce socle commun qu’il est primordial de respecter, faute de quoi l’utilisateur s’en trouve obligatoirement lésé.

Lisons ce qu’il est dit dans la documentation du groupe WAI du W3C, référence majeure pour l’accessibilité des sites web :

WCAG 1.0 (version par lagrange.net)

Guideline 6. S’assurer que les pages qui contiennent de nouvelles technologies se transforment de façon élégante.

6.3 S’assurer que les pages soient visibles lorsque les scripts, les applets ou autres artefacts programmables sont désactivés ou non supportés. Lorsque ce n’est pas possible, fournissez une information équivalente sur une page alternative. [Priorité 1]
Par exemple, assurez vous que les liens qui activent les scripts fonctionnent même lorsque ces derniers sont désactivés ou non supportés (par ex. Il ne faut pas utiliser « javascript: » comme cible des liens).

W3C : Techniques pour les règles d’accessibilité du contenu Web 1.0 (version par lagrange.net)

4.12.1 Scripts de transformation

Les développeurs de contenu doivent s’assurer que les pages sont accessibles avec les scripts désactivés ou dans des navigateurs qui ne supportent pas les scripts.

* Eviter la création de contenu à la volée par le client. Si un navigateur d’utilisateur ne gère pas les scripts, aucun contenu ne sera généré ou affiché. Cependant, Ceci est différent lorsqu’il s’agit d’afficher ou de cacher un contenu déjà existant en utilisant une combinaison de feuilles de style et de scripting ; S’il n’y a pas de scripts, le contenu sera tout de même affiché. Cela ne s’applique pas aux pages générées à la volée par le serveur et distribuées au client.
* Eviter la création de liens qui utilisent « javascript » pour l’URI. Si un utilisateur n’utilise pas les scripts, il sera alors incapable d’utiliser le lien car le navigateur ne pourra créé le lien.

Que recommande Google à ce sujet ?

Google (Centre d’aide Webmasters/propriétaires de sites web)

Si votre site contient du texte ou des liens cachés, il risque d’être considéré comme peu fiable, car il présente aux moteurs de recherche un contenu différent de celui destiné aux visiteurs […]

[…] Si votre site contient du texte et des liens cachés conçus pour induire les moteurs de rechercher en erreur, votre site peut être retiré de l’index Google et ne plus être affiché dans les pages de résultats de recherche. Lorsque vous évaluez votre site afin de vérifier s’il contient du texte ou des liens cachés, recherchez tout ce qui n’est pas facilement affichable par les visiteurs. Existe-t-il du texte ou des liens accessibles uniquement aux moteurs de recherche et non aux visiteurs ? […]

[…] Lorsque Googlebot indexe une page contenant un script JavaScript, il ne peut pas suivre ou indexer les liens cachés dans le script lui-même. L’utilisation d’un script JavaScript est une pratique Web totalement légitime. Toutefois, son utilisation dans le but de tromper les moteurs de recherche ne l’est pas. […]

Pour résumer, il n’est pas interdit d’utiliser des liens javascript dans la mesure où la page présentée aux moteurs de recherche est la même que celle présentée aux utilisateurs. Ce qui n’est pas le cas dans la mesure où les robots ne pouvant lire javascript considèrent que les liens n’existent pas et ne référencent pas la page liée…

Devons-nous considérer que puisque le nombre des visiteurs sans javascript est faible, il n’est plus utile de se préoccuper de faire du javascript non-intrusif ? Comment se maintenir dans un secteur où toutes les méthodes même les plus contestables sont utilisées pour maintenir un taux de visites important sur son site ? Est-il possible de rester concurrentiel en utilisant les bonnes pratiques et en maintenant un site accessible, sans pour autant négliger la partie référencement ?

Pour continuer la réflexion quelques liens utiles :

10 commentaires

Flux RSS des commentaires de cet article

Il y a trois points que j’aimerais évoquer :

1. Les avantages en référencement.
2. Les recommandations Google.
3. Une possible (ré)-conciliation.

1.
Malgré le panel de solutions existantes : nofollow, robots, POST, sitemaps… Et leurs combinaisons possibles, les liens en javascripts sont certainement la meilleure solution à l’heure actuelle pour la réalisation d’un PR sculpting efficace, d’une indexation optimisée, et quelques autres petites choses.

2.
Google n’interdit pas ces pratiques. Même si elles sont clairement borderlines. Rendre inaccessible un lien d’inscription par exemple, évite à Google de le crawler inutilement, et cela permet d’aider au positionnement des autres pages du sites qui peuvent avoir un réel intérêt pour l’utilisateur. Il en est évidement de même pour les pages qui entrainent des cas de duplicate comme la possibilité d’afficher un nombre variable de produits, ou des critères de classement.

En cas de doute, Google fait inspecter manuellement les pages. S’il s’avère que ce type de choix a été effectué dans le but de rendre plus visible dans les moteurs les pages apportant une vrai réponse aux recherches des visiteurs, il n’y a pas sanction.

Google autorise un grand nombre d’actions en référencement tant qu’elles ont pour finalité d’améliorer l’expérience utilisateur et la qualité des résultats, à contrario Google défend souvent de mettre en place des actions visant à manipuler les résultats de recherche. Il y a une très grande par de subjectivité dans tout cela.

3.
Les liens en JS n’impliquent pas toujours, quand les choses sont bien faites, une moindre accessibilité. Je serais même tenté de dire : au contraire. Prenons deux cas. Un menu avec liens déroulant en JS et un produit avec lien sur l’image et sur l’intitulé. A ce que j’ai entendu dire (je n’ai jamais vérifié), les liens en JS ont ici un avantages.

La navigation dans un menu qui contient des dizaines de liens est pénible pour un non voyant qui doit tous les faire défiler avant de d’atteindre le réel contenu de la page. De la même manière les liens redondant sont à éviter, donc un lien en javascript sur une image n’est pas tant une énormité.

En conclusion :
Il y aurait encore certainement beaucoup à dire… Je dirais seulement que référenceurs et intégrateurs ont des contraintes métiers différentes. Les premiers peuvent penser qu’ils ont à faire à des « intégristes pinailleurs », les second à des « salopeurs de code » irrespectueux des standard. Mais à force de discussion, en recherchant des solutions, je pense qu’il y a toujours (ou presque :) moyen de concilier les deux, pour un résultat final qui ne peut être que de meilleure qualité.

Mais quels pinailleurs quand même ! ;)

Le 28 Nov. 2008 à 02h23 par Julien Alric

@Éric : très bon article.

@Julien (dsl de troller éric) : je serais gentil : va te faire soigner.

Apparemment l’accessibilité web n’est pas encore ton domaine de prédilection.

> Un menu avec liens déroulant en JS et un produit avec lien sur l’image et sur l’intitulé. A ce que j’ai entendu dire (je n’ai jamais vérifié), les liens en JS ont ici un avantages.

Tu restes sur des oui-dire sans chercher à les confirmer, pourquoi le JS serait ici un avantage ? C’est une technologie optionnelle, elle ne doit donc pas être « obstrusive ».

> La navigation dans un menu qui contient des dizaines de liens est pénible pour un non voyant qui doit tous les faire défiler avant de d’atteindre le réel contenu de la page.

1) L’accessibilité n’est pas que pour les non-voyants.
2) C’est pour cela qu’on met en place des liens d’évitements.

Sinon pire, ton métier de « référenceur » : tu créés de la popularité artificielle en faisant du PR sculting, donc ton utilisateur sera frustré : pense à ce qui fait qu’un site fonction (contenus + services).
Et pour finir, je rejoins Éric : trop peu de référenceurs se soucient des standards et si c’était le cas verraient finalement à quel point leurs « trucs et astuces » sont une forme détournée des standards.

Le 02 Déc. 2008 à 09h41 par Nicolas

@Nicolas : je reste sur un oui-dire, effectivement, et je le précise, de même qu’Eric qui utilise la même prudence concernant le fait que Googlebot interprète le JS. Eric n’a pas le temps de mettre en place un test pour vérifier si Googlebot suis les liens JS, et dans quelles mesures il interprète le JS, comme je n’ai pas le temps de tester toutes les solutions de navigation du marché.

« tu créés de la popularité artificielle en faisant du PR sculting, donc ton utilisateur sera frustré »

Au contraire, la majorité des pages qui remontent aujourd’hui sont des pages optimisées pour les moteurs. Ces pratiques permettent d’aider le moteur à déterminer plus facilement quelles sont les pages qui ont un intérêt pour l’utilisateur. Améliorer la structure de son site dans l’objectif de privilégier ce qui est intéressant et utile est une bonne pratique, autant pour le site, que vis à vis de ses visiteurs.

Le 02 Déc. 2008 à 12h06 par Julien Alric

@Julien, bon après réflexion j’ai été très abrupte dans ma réponse, désolé.

GoogleBot n’interprète pas le JS, il exploite le document via des expressions régulières de détection d’URL, donc si l’URL est écrite en clair en JS, elle devrait être détecté par le spider.

Maintenant, pour le PR Sculpting, tu le dis toi-même, tes pages sont faites pour les moteurs et non les utilisateurs. Maintenant mettre en avant les pages qui ont un intérêt pour les utilisateurs signifient quoi : que les autres pages leurs sont inutiles (pourquoi les avoir faites alors :p ?)

Le 02 Déc. 2008 à 13h08 par Nicolas

@Nicolas : c’est pas grave :)
Sur le traitement du JS par Googlebot, d’après certains échanges que j’ai eu, cela devient plus évolué que la recherche de masques. De la à dire qu’il « interprète » au sens litteral le code, non pas encore. Et heureusement.

Un exemple : la page contact.
Liée par toute les autres pages, elle fait perdre une quantité de Pagerank non négligeable. La mettre en nofollow est une solution (même si ce n’est pas l’objectif à la base du nofollow). Matt Cutts (responsable qualité Google), à plusieurs fois approuvé l’usage de nofollow pour le linking interne en citant cet exemple.

Un autre exemple : les pages de critère.
On cherche à remonter sur un mot clé : mettons « parapluie ».
On va avoir des listes de parapluies, des pages de classement par prix, par couleur, par marque, une pagination…

Toutes ces pages sont intéressantes, mais toutes n’ont pas d’intérêt à remonter, car elle ne sont pas recherché directement. L’utilisateur ne tape jamais « parapluie 3eme page ». Du coup, on peut optimiser le linking entre les pages de manière à ce qu’il privilégie la première.

On ne fait pas des pages « pour les moteurs » mais on fait en sorte que ces derniers puissent les comprendre suffisamment pour que les visiteurs puissent tomber sur les résultats qu’ils cherchent.

Après, on ne peut pas non plus se permettre de tout faire. :)

Le 02 Déc. 2008 à 16h16 par Julien Alric

« générer des parties de leur code html via javascript de manière à ne pas référencer certaines pages »

Enfin, si on ne veut pas que des pages ne soient indexées… on utilise les bons meta robots ; non ? Pas besoin de liens hypertextes truffés de JavaScript pour çà…

Le 29 Mai. 2009 à 16h01 par ~HP

En réalité, le but n’est pas de ne pas référencer certaines pages. Dans ce cas bien évidement on dispose des metas robots et du fichier robots.txt.

Le but est ici de doser la répartition du link juice sur le site (faire une recherche sur bot herding ou PR sculpting) ou de privilégier l’anchor d’un lien texte à celui d’une image. Entre autres.

Le 29 Mai. 2009 à 21h21 par Julien

Je suis venu au référencement par le biais de l’accessibilité et je trouve un peu triste que certains intégristes de l’accessibilité considèrent les référenceurs comme le Mal, d’autant plus que référencement naturel et expérience utilisateur (ce qui peut induire l’accessibilité) semblent avoir plus de choses en commun que de différences. Il serait plus intelligent – et cela représente un vrai challenge – d’essayer de trouver des solutions ensemble dans l’intérêt des clients et des utilisateurs. De toutes façons, les clients tranchent.

Un autre exemple de l’utilisation du brouillage JS : un bloc présentant un titre, un paragraphe et un texte « En savoir plus » -> on peut placer le lien sur le titre et brouiller celui présent sur le « En savoir plus », afin d’être sûr de transmettre la meilleure sémantique à la page de destination.

Le 05 Août. 2009 à 14h32 par Intégrateur SEO

J’ai trouvé cet article intéressant, merci donc à Eric. Ce qui est amusant c’est que je suis persuadé du contraire, pour moi il est indéniable qu’accessibilité et référencement vont bien dans le même sens si on prend un peu de recul. Pour preuve tous les sites sur lesquels j’ai pu travailler sur l’accessibilité ont gagner nettement en terme de visibilité et ce même sur des secteurs conccurentiels… J’essaie d’ailleurs d’étayer ces dires par des données tangibles cf : http://www.e-tropisme.fr/referencement-naturel-seo/creer-un-site-accessible-et-gagner-en-visibilite-referencement-naturel.html. L’expérience n’est pas finie et le panel n’est pas encore assez large mais les premiers résultats sont plus que probants. L’alliance contenu pertinent, sémantique adaptée, accessibilité et URL pertinente est vraiment un gage de visibilité…

Le 06 Jan. 2010 à 10h10 par emery

Les commentaires sont fermés sur cet article.