J’ai des paramètres dans mes urls ? Est-ce grave docteur ?

Je trouve encore régulièrement dans les audits de consultants junior : « vous avez des paramètres dans les urls : ce n’est pas conseillé. Il faut réécrire vos urls ».

Euh… Non !

Dans l’absolu, avoir des paramètres dans les urls n’est pas déconseillé du tout. Et de la même façon que certaines syntaxes avec des paramètres peuvent poser problème, certaines syntaxes réécrites posent également problème.

Google confirme qu’ils gèrent très bien les urls avec des paramètres

Ces derniers temps, à chaque fois qu’un des porte paroles de Google est interrogé sur la question des urls avec paramètres, la même réponse est donnée : Google gère très bien les urls avec paramètres.

Le problème comme d’habitude c’est que des recommandations valables dans les débuts de Google continuent d’être appliquées alors qu’elles sont obsolètes depuis une douzaine d’années. Il est tout à fait exact que le crawler de Google dans ses débuts ne savait pas gérer plus de 3 paramètres dans une query string. Google était également à l’époque incapable de reconnaître les paramètres qui ne faisaient pas changer le contenu de la page.

Mais cela a bien changé. Le premier moteur qui a su gérer correctement les urls avec paramètres dans son crawl a été Yahoo!, et l’idée a été copiée par Google dans la foulée en 2006 lors de la mise en place de son architecture BidDaddy.

Cela fait donc quinze ans que Google gère correctement les urls avec des paramètres !

Google comprend mieux les urls avec des paramètres que les urls réécrites

En fait Google comprend mieux les urls avec une chaine de paramètres que les versions fortement réécrites.

Par exemple : si Google voit ce premier type d’urls

https://www.domaine.com/chaussures/index.php?cat=mocassins&ordre=prix

https://www.domaine.com/chaussures/index.php?cat=mocassins&ordre=pertinence

Google devine que le paramètre « ordre » ne change pas vraiment la page, et va automatiquement canonicaliser ces variantes avec l’url : https://www.domaine.com/chaussures/index.php?cat=mocassins. Ce qui évite l’impact extrêmement négatif des navigations à facettes. En pratique, une fois que Google a compris que ce paramètre ne sert pas à identifier des pages avec des contenus différents, il va même cesser de crawler les urls contenant ces paramètres (il ne crawlera plus que la version canonique).

Par contre, certaines syntaxes réécrites vont empêcher Google de comprendre le rôle des paramètres. Par exemple

https://www.domaine.com/chaussures/mocassins-par prix

Si vous voulez vous convaincre de la capacité de Google à comprendre le rôle des paramètres, regardez la fonctionnalité « Paramètres d’urls » dans la Google Search Console. Elle est cachées dans la rubrique « anciens outils et rapports ».

Google préfère les urls « dynamiques » aux « urls statiques »

C’était il y’a 13 ans ! Google avait indiqué dans un billet de son blog pour les webmasters que Google préférait clairement les urls brutes avec des chaines de paramètres (ce qu’ils appellent des urls dynamiques) aux urls statiques (en fait aujourd’hui ces syntaxes correspondent plus à des urls dynamiques réécrites qu’à de vraies urls statiques).

https://developers.google.com/search/blog/2008/09/dynamic-urls-vs-static-urls

Du coup, c’est assez rigolo de continuer à voir un peu partout les urls réécrites qualifiées de Search Engine Friendly. Comme si c’était synonyme.

En réalité, ce ne sont pas du tout des synonymes :

  • une url peut-être seo friendly sans être réécrite ou ressembler à une url statique
  • toutes les urls réécrites ne sont pas SE Friendly (certaines oui, toutes non)

Voici un exemple de ce qu’on peut lire souvent sur le net !

Un exemple tiré d’un tutorial sur Joomla. La syntaxe brute avec paramètres est déjà « Search Engine Friendly ». Par contre elle n’est pas très « user friendly ». On peut juste essayer de l’améliorer un peu en remplaçant la partie de la chaine non signifiante par des mots clés. Une syntaxe représentant un bon compromis donnerait : https://www.joomlashine.com/blog/how-to-enable-sef-urls?id=25&Itemid=28/

Attention aux cas où Google se trompe ou gère mal les urls

Si en règle générale Google gère très bien les urls avec paramètres, et canonicalise correctement les variantes, et limite son crawl aux urls canoniques, il y’a quand même des exceptions.

Et l’outil de gestion des paramètres d’URL sert justement à cela.

Si vous voulez comprendre comment il fonctionne je vous renvoie sur cette video de Maile Ohye :

Dans quels cas faut-il utiliser l’outil de la Search Console ?

Ce qu’il faut faire, c’est tester si Google canonicalise bien les urls avec des paramètres en cherchant ces syntaxes d’urls dans Google.

  • si l’url est indexée, cela signifie que Google ne gère pas correctement ce paramètre : indiquez que ce paramètre n’identifie pas un contenu différent dans l’outil de gestion des paramètres d’url dans la Search Console
  • si l’url n’est pas indexée, cela signifie que cette syntaxe est bien gérée et vous n’avez rien à faire

Les cas mal gérés par Google sont de plus en plus rares, mais il y’en a. N’accordez pas une confiance aveugle aux systèmes de Google, surtout si vous lui compliquez la tâche avec des syntaxes « exotiques » ou complexes.

Signalons aussi que certains paramètres d’urls peuvent ne pas apparaître dans l’outil de la Search Console. Dans ce cas n’hésitez pas à l’ajouter manuellement.

Et il peut arriver que Google continue de crawler les variantes inutiles massivement, ce qui évidemment pose problème, non pas tant par rapport au budget de crawl, mais plus par les mauvais scores que ces pages crawlées inutilement vont transmettre à toute la zone du site dont ces urls font partie. On détecte ce problème en analysant les logs. Si cela arrive, il faudra essayer de comprendre pourquoi Google s’obstine à crawler ces « doublons » clairement identifiés comme tels. En général, on détecte une mauvaise utilisation des redirections, des hreflangs, des balises canonical, ou des sitemaps XML qu’il faudra corriger. Parfois, c’est du aussi au fait que la variante non canonicale reçoit des liens de la part de l’arborescence (ce qui est évidemment une anomalie).

Et ne bloquez pas les urls avec paramètres dans votre robots.txt

Il y’a par contre une chose à ne pas faire si vous ne voulez pas « gripper » les process de Google : c’est de bloquer le crawl de certaines urls avec paramètres avec un disallow dans le fichier robots.txt. Google ne comprendra pas comment canonicaliser correctement l’url, risque de l’indexer quand même (et oui) et vous perdez probablement du linkjuice avec cette technique.

Bref, le remède peut être pire que le mal.

Mais alors, pourquoi les CMS vantent leur capacité à réécrire les urls comme la preuve qu’ils sont « SEO Compliant »

Après tout ce que je vous ai dit sur les urls « dynamiques », il est clair que la mode des « pretty urls » devrait avoir du plomb dans l’aile. En tout cas pour le SEO.

Mais dans la pratique, il est clair que non. Par exemple, beaucoup d’éditeurs de plateformes et de CMS continuent de mettre en avant leur capacité à produire de jolies urls réécrites, en allant parfois jusqu’à présenter cela comme l’alpha et l’omega de la compatibilité SEO.

Il faut bien comprendre que c’est plus un argument marketing fallacieux qu’autre chose.

En réalité, les syntaxes d’urls doivent tenir compte : des contraintes techniques, du SEO, et du marketing.

Pour l’expérience utilisateur, avoir des urls courtes, et faciles à comprendre, est toujours conseillé. Mais réécrire l’intégralité des urls tout le temps est antiproductif.

Bref, la bonne solution, ce sont des urls hybrides, dans lesquels l’essentiel de l’url est réécrite, mais sans chercher à éliminer systématiquement les query strings.

Laisser un commentaire