Redirections 301 (Joomla vs .htaccess)
Tel que nous l'avons expliqué dans l'article précédent, vous devez éviter les erreurs 404 (page non trouvée) autant que possible. Bien sûr elles ne peuvent pas être toutes anticipées, tel qu'un internaute saisissant une erreur dans une URL, toutefois dans la plus part des cas elles peuvent être facilement évitées.
Si vous migrez un ancien site vers sa nouvelle version, vous rencontrerez très probablement des changements d'URLs.
Autre cas, lorsqu' un internaute ne met pas à jour ses bookmarks il a de forte chance de se retrouver sur des anciennes URLs qui n'existent plus.
D'autre part, l'index Google, peut prendre un certain temps pour se mettre à jour, ce qui peut avoir pour effet de diriger des internautes vers des URLs qui n'existent plus.
Tout cela peut avoir un impacte non négligeable sur votre positionnement dans les résultats de recherche !
Résoudre cette problématique est assez simple : identifiez vos anciennes URLs et redirigez les vers les nouvelles. Cette redirection doit être faîte par ce que l'on appelle une redirection 301. Une telle redirection est accompagnée d'un code HTTP : 301 Moved Permanently. Ce qui indique à Google et aux autres moteurs de recherche que l'ancienne adresse ne doit plus être utilisée, et leur signifie la nouvelle URL. Si vous êtes d'un naturel fainéant, vous pouvez rediriger tous les URLs obsolètes vers votre page d'accueil. Vous aurez au moins informé Google qu'elles sont redirigées, mais vous pourriez perdre le référencement que vous aviez construit spécifiquement pour ces pages. La meilleur solution est de rediriger toutes ces anciennes URLs vers les nouvelles, c'est à dire page par page.
La meilleur approche est d'identifier ces URLs avant de mettre à jour ou de changer votre site, toutefois si vous les rediriger rapidement dès qu'elles ont changé vous ne rencontrerez pas de problèmes.
Le composant de Redirection de Joomla
Pour un petit site cela peut se résoudre facilement. Assurez-vous de bien connaitre vos anciennes URLs et saisissez les dans le composant de redirection. Ou attendez 1 ou 2 jours que les internautes les utilisent, ainsi ces pages (anciennes URLs) vont se retrouver enregistrées dans Joomla : rendez-vous dans Composants > Redirection et vous les verrez apparaître dans le Gestionnaire de redirection (parfois il peut être nécessaire d'activer préalablement le plugin "Système - Redirection" à partir du gestionnaire de plugin). Vous verrez ainsi une liste d'URLs qui ont générées des erreurs 404.
Cliquez sur l'une des URLs obsolète :
En éditant chacune de ces URLs obsolètes vous pourrez saisir la nouvelle URL (relative ou absolue) et activer la redirection.
Redirections en masse
la méthode décrite ci-dessus vous permet de créer vos redirections une par une (tel que détaillé sur le Joomla Magazine). Mais il existe une option qui vous permet de rediriger plusieurs pages vers une même URL. Pour ce faire sélectionnez les URLs obsolètes que vous souhaitez rediriger, cliquez en bas de page sur le lien URL cible pour faire apparaître le champ de saisie puis entrez votre URL de redirection :
Cette méthode peut vous faire gagner beaucoup de temps. Notez que ces redirections sont activées immédiatement nul besoin de le faire séparément.
Composant de Redirection de Joomla : arrêter de loguer de nouvelles URLs
Il y avait un petit désavantage à utiliser le composant de Redirection de Joomla : Tant que le plugin de redirection était activé, le composant continuait d'enregistrer toutes les erreurs 404. Certains sites souffrent d'erreurs 404 de façon continuelle, erreurs aux URLs étranges (souvent dû à l'action de hackers ou de bots) ce qui a pour effet de remplir les logs du composant, aussi gardez un œil sur son contenu. En effet cela peut avoir pour effet d'augmenter la taille de votre base de donnée jusqu’à sa limite ! Vous pouvez bien-sur supprimer manuellement tous ces enregistrements incorrects, mais c'est un tache assez dantesque. La seule solution qui était disponible était de désactiver le plugin de redirection, mais elle avait aussi pour effet de désactiver toutes les redirections que vous aviez saisi. Mais depuis la sortie de Joomla 3.4 il y a un nouveau paramétrage de disponible dans le plugin Système - Redirection (accessible via Extensions > Gestion des plugins) qui a été créé par Victor Vogel. Il s'agit de la fonctionnalité Collect URLs :
Tant que ce paramètre est activé, il continue de collecter les URls, si vous le désactivé la collection d'URLs s'arrêtera, mais les redirections que vous avez précédemment saisies seront toujours actives. C'est l'option qui manquait à ce composant ce qui le rend maintenant très utile, je vais donc commencer à l'utiliser !
Il y a aussi un autre paramétrage un peu caché dans le composant de redirection : le bouton Activer le mode avancé (accessible via Composants > Redirection, puis Paramètres). Ce paramétrage n'est pas très explicite, mais il vous permet de préciser le code de réponse HTTP pour chacune de vos redirections. Par défaut il s'agit d'un 301-redirect, mais vous avez la possibilité de sélectionner n'importe quel type de redirection. Je ne vois pas directement le besoin de cette option, mais elle est disponible :
Une alternative à l'utilisation du composant de redirection est de les créer manuellement dans votre htaccess :
Créer ses redirections avec le .htaccess
Pour créer vos redirections, il peut être aussi simple de le faire directement dans votre fichier .htaccess, définissez vos URLs d'origine & de destination puis saisissez l’exemple de code suivant :
RewriteRule ^oldpage1$ "http://newsite.com/newpage1" [R=301,L]
RewriteRule ^oldpage2$ "http://newsite.com/newpage2" [R=301,L]
etc.
L'avantage de cette méthode est qu'elle vous permet de traiter exactement chacune de vos redirections, d'autre part vous n'avez besoin d'aucune extension pour le faire. Et les performances de votre site sont moins affectées, car ces redirections sont exécutées par le serveur Apache, avant même que Joomla ne soit sollicité.
Extensions de redirection
Il y a bien-sur d'excellentes extensions qui vous permettent de créer & gérer vos redirections. Telle que RedJ qui vous permet de créer des redirections assez complexes, en utilisant des macros et des expressions régulières. Une alternative est Dynamic 404 de Yireo's qui créé des redirections automatiques, il est capable de rediriger des pages en erreur 404 vers les pages les plus correspondantes.
Cet article est une traduction libre du tutoriel de Simon Kloostra : 301-redirects (Joomla core vs .htaccess)