Les capacités de réécriture d'URL des CMS

Tout d'abord un constat : tous les CMS ne naissent pas égaux en ce qui concernent ce type de fonctionnalité. Dans certains (comme MODx, que j'utilise), on peut faire ce qu'on veut. On définit des règles communes concernant les extensions, la création - ou non - de répertoires fictifs et la génération automatique - ou non - des alias, et c'est réglé.
www.domaine.tld/index.php?id=22 devient très facilement www.domaine.tld/mapage.html ou www.domaine.tld/monrepertoire/mapage.php.
Dans d'autres CMS, la réécriture n'est pas supportée nativement, ou bien n'est pas très satisfaisante. Il faut passer par un plugin pour obtenir quelque chose de correct. C'est le cas de Joomla pour lequel la réécriture par défaut donne des URLs presque aussi longues que celles de DotClear. Dans quelques cas, le plugin en question pose des problèmes avec d'autres fonctionnalités et il faut faire attention en l'installant.
Dernier cas, qui à tendance à devenir rare : les CMS qui ne proposent pas de réécriture d'URL. Avec les anciennes versions de Broadvision et Websphere, on entrait dans le royaume de la science fiction avec des URLs extrêmement longues (mais avec de nombreux caractères communs), comportant des identifiants de session indispensables et changeant au fil de la navigation sur le site. Le tout vérifiant le vieil adage : the more expensive the CMS, the crappier the URLs.

Des URLs réécrites pour éviter les duplicate content

Les contenus présents sur plusieurs URLs différentes sont une plaie très commune des CMS utilisant des URLs non réécrites. Il y a pas mal de cas possibles :
  • Paramètres passés dans un ordre différent
  • Paramètres de langue passé de façon systématique ou non. Sur Typo3, les pages de la langue principale auront par exemple L=0 ou... rien du tout.
  • Paramètres contextuels : ils servent pour modifier une zone précise de la page (chemin de fer par exemple). Tout le contenu est identique malgré les URLs différentes
Et je ne parle pas des erreurs de programmation qui se propagent en cascade sur tout un site parce que le CMS utilise des liens relatifs au document (mais j'y reviendrai surement un jour, c'est tellement amusant). La réécriture d'URL permet en général de venir à bout de ces problèmes en assainissant les URLs.

Le cas des erreurs 404

Sur beaucoup de CMS, les erreurs 404 gérées en interne renvoient un code 200. On peut le voir en tapant un ID d'article erronné. C'est gênant pour deux choses :
  • Il sera en général impossible de vérifier ces sites sur le Google Webmaster Central. C'est d'ailleurs en essayant de le faire que des utilisateurs de Joomla découvrent ce problème.
  • Les pages supprimées du site resteront très longtemps dans l'index des moteurs de recherche puisqu'elles continueront à renvoyer un code 200
Là encore, la réécriture d'URL résout le problème dans certains cas, en limitant les risques d'erreur et en corrigeant les entêtes renvoyés. Mais ce n'est pas le cas pour tous les plugins. Lors de mes tests, j'avais constaté que seuls certains fonctionnaient correctement sur Joomla, par exemple. C'est le cas de : Artio JoomSEF (anciennement 404SEFx).

Voir aussi : référencement de sites sous CMS