Les points essentiels à garder en tête avant de modifier des URL
- Une 301 sert pour un changement définitif, pas pour un test temporaire.
- Google comprend mieux les redirections côté serveur que les solutions bricolées dans le navigateur.
- Une extension est idéale pour gérer vite plusieurs règles sans toucher au serveur.
- La fonction
wp_redirect()existe, mais elle demande de la rigueur, car elle n’est pas pensée pour remplacer toute une stratégie de migration. - Après la mise en place, il faut vérifier le code HTTP, la cible finale et l’absence de chaîne de redirections.
Quand une redirection permanente est la bonne réponse
Je réserve une redirection 301 aux cas où l’ancienne adresse n’a plus vocation à revenir: migration d’articles, changement de permaliens, refonte, fusion de contenus ou passage d’une version http vers https. Le principe est simple: l’ancienne URL cesse d’être la bonne référence et la nouvelle devient la page canonique, c’est-à-dire celle que je veux voir indexée et partagée.
Le point important, côté SEO, n’est pas seulement de faire arriver l’utilisateur au bon endroit. Une 301 indique aussi que la nouvelle page doit prendre la relève dans l’indexation. C’est pour cela qu’une redirection permanente est pertinente quand le changement est durable, alors qu’une 302 ou une 307 convient mieux à un détour provisoire, par exemple pendant un test ou une opération ponctuelle.
En pratique, je me méfie des redirections utilisées comme pansement permanent. Si un contenu a vraiment disparu, il faut décider s’il mérite une nouvelle cible, une consolidation avec un autre article ou simplement un retour en 404. C’est ce choix éditorial qui évite les redirections artificielles et les destinations trop génériques. Pour choisir la méthode la plus propre, il faut maintenant comparer les options disponibles sur WordPress.
Choisir la bonne méthode selon votre site
| Méthode | Quand je la choisis | Atouts | Limites |
|---|---|---|---|
| Extension WordPress | J’ai plusieurs règles à gérer, sans accès simple au serveur. | Rapide à configurer, interface claire, suivi des erreurs 404, motifs avancés avec expressions régulières. | Dépend d’un plugin et d’une bonne discipline de maintenance. |
| Serveur | Je gère une migration, un gros volume d’URL ou un site qui doit rester léger. | Très fiable, rapide, bien compris par les moteurs de recherche. | Demande l’accès à la configuration Apache ou Nginx. |
| PHP | J’ai une logique conditionnelle très précise dans WordPress. | Très flexible, utile dans un thème ou un plugin personnalisé. | Plus facile à complexifier, plus risqué si le code est mal placé. |
Je résume souvent le choix ainsi: extension pour la gestion courante, serveur pour la robustesse, PHP pour les cas ciblés. Cette hiérarchie me paraît plus saine que de vouloir tout faire dans le même outil, parce qu’elle garde les redirections lisibles et simples à auditer. Je détaille maintenant la méthode que j’utilise le plus souvent sur un site WordPress standard.

Mettre en place la redirection avec une extension
Sur un site éditorial ou e-commerce, c’est souvent l’approche la plus confortable. Une extension dédiée permet de créer une règle en quelques clics, de suivre les erreurs 404 et, selon les outils, d’utiliser des expressions régulières pour couvrir plusieurs URL à la fois. Une expression régulière est simplement un motif qui remplace plusieurs adresses similaires par une seule règle.
Quand je configure ce type d’outil, je vérifie toujours quatre choses: l’URL source exacte, la cible finale, le code HTTP de la règle et la présence éventuelle de paramètres d’URL à conserver. C’est aussi le bon moment pour traiter les anciennes adresses qui génèrent encore des 404, car ces erreurs sont souvent invisibles jusqu’au moment où le trafic chute.
- Je crée une règle pour l’ancienne URL.
- Je pointe vers la page la plus proche sémantiquement, pas vers une page au hasard.
- Je force le statut 301, pas 302.
- Je teste la redirection dans le navigateur et avec un contrôle d’en-tête.
Cette méthode marche très bien pour des changements isolés, mais dès que le volume augmente ou que le site passe par une vraie migration, je préfère déplacer la logique au niveau du serveur. C’est là que la différence de fiabilité devient visible.
Gérer les cas serveur quand il faut plus de contrôle
Les redirections côté serveur sont généralement celles que les moteurs interprètent le mieux. C’est l’option que je recommande dès qu’il faut rediriger un grand nombre d’URL, uniformiser un domaine ou traiter une migration complète. Le bon avantage est qu’on s’appuie sur la couche la plus proche de la requête, avant même que WordPress n’entre en jeu.
Avec Apache
Sur Apache, une règle simple dans le fichier de configuration ou dans .htaccess suffit souvent pour rediriger une ancienne page vers une nouvelle. Dans un contexte WordPress, je garde la règle la plus courte possible pour éviter les conflits avec les autres directives.
Redirect 301 /ancienne-page /nouvelle-page/
Si le site comporte déjà des règles de réécriture, je fais attention à l’ordre de lecture. Une règle mal placée peut être ignorée ou entrer en concurrence avec la structure des permaliens. C’est pour cela que je teste toujours la règle sur une seule URL avant d’enchaîner sur un lot plus large.
Lire aussi : Slug SEO WordPress - Optimisez vos URLs pour le trafic !
Avec Nginx
Sur Nginx, le réflexe est différent, mais la logique reste la même: envoyer directement un statut 301 vers la nouvelle destination. Là encore, l’idée est de rester lisible et de ne pas multiplier les étapes intermédiaires.
rewrite ^/ancienne-page/?$ /nouvelle-page/ permanent;
Quand le site a déjà une configuration avancée, je préfère faire valider la règle par l’environnement de préproduction avant la mise en ligne. C’est un petit coût de temps qui évite des boucles, des chaînes de redirections ou des erreurs de ciblage difficiles à repérer ensuite. Si vous n’avez besoin que d’une logique très ponctuelle, le PHP peut suffire, mais seulement dans un cadre bien maîtrisé.
Utiliser le php seulement pour des cas ciblés
WordPress propose la fonction wp_redirect(), mais elle mérite d’être utilisée avec discipline. Son comportement par défaut est une redirection temporaire, donc en 302, ce qui oblige à préciser le statut 301 quand l’objectif est permanent. Il faut aussi terminer l’exécution juste après l’envoi de l’en-tête, sinon le chargement peut continuer et produire un résultat imprévisible.
add_action('template_redirect', function () {
if (is_page('ancienne-page')) {
wp_redirect(home_url('/nouvelle-page/'), 301);
exit;
}
});
Je réserve cette approche aux règles conditionnelles qui dépendent du contexte WordPress: page précise, rôle utilisateur, état d’un contenu, variation selon un type de publication. En revanche, je l’évite pour gérer des centaines d’URL historiques, parce qu’un système de redirections doit rester lisible même six mois plus tard. Si demain quelqu’un doit l’auditer, il doit comprendre vite où se trouvent les règles et pourquoi elles existent.
Dans beaucoup de projets, la vraie difficulté n’est pas de créer la redirection, mais de vérifier qu’elle transmet bien le trafic et qu’elle ne casse rien autour. C’est la partie que je contrôle toujours après l’implémentation.
Vérifier que tout fonctionne après la mise en place
Une redirection n’est réussie que si elle arrive au bon endroit, avec le bon statut et sans détour inutile. Je vérifie d’abord que l’ancienne URL renvoie bien un 301, puis que la cible finale est directement atteinte, sans chaîne du type ancienne URL → intermédiaire → page finale. Plus il y a d’étapes, plus on perd en clarté, en vitesse et parfois en signal SEO.
- Je contrôle le code de réponse HTTP.
- Je vérifie que la destination est la bonne page finale.
- Je m’assure qu’il n’y a ni boucle ni redirection en cascade.
- Je mets à jour les liens internes qui pointent encore vers l’ancienne adresse.
- Je retire l’ancienne URL du sitemap si elle n’a plus lieu d’être.
J’aime aussi surveiller les 404 qui remontent après la mise en ligne, parce qu’elles révèlent souvent des liens oubliés, des liens externes anciens ou des variantes d’URL que personne n’avait anticipées. Quand je vois plusieurs erreurs sur des chemins proches, j’envisage parfois une règle plus large, mais seulement si elle ne risque pas d’englober des pages qui doivent rester distinctes. C’est justement là que les erreurs classiques deviennent coûteuses.
Les erreurs qui font perdre l’intérêt d’une 301
La faute la plus fréquente consiste à renvoyer tout vers la page d’accueil. C’est séduisant parce que c’est rapide, mais c’est souvent mauvais pour l’utilisateur et peu satisfaisant pour le référencement, surtout quand la page d’origine avait un sujet précis. Une bonne redirection doit garder une cohérence de contenu, pas seulement « faire disparaître » l’erreur.
Autre piège: confondre redirection permanente et correction temporaire. Si la cible peut encore changer, une 301 n’est pas le bon choix. Je vois aussi régulièrement des chaînes inutiles, des règles contradictoires entre le plugin, le serveur et le thème, ou des redirections mises en place sans mise à jour des liens internes. Dans ces cas-là, le site fonctionne, mais il devient plus lent à crawler et plus difficile à maintenir.
Enfin, je me méfie des redirections créées sans cartographie préalable. Avant de lancer une migration, je préfère lister les anciennes URL, identifier la page de destination la plus pertinente et décider ce qui mérite une redirection, une fusion de contenu ou un simple retour en erreur 404. Ce travail en amont évite les réglages approximatifs et prépare une stratégie plus propre à long terme. C’est ce même pragmatisme qui guide mon choix final selon la taille et la maturité du site.
Le choix que je ferais selon la situation du site
Sur un blog ou un site vitrine, je commence presque toujours par une extension de redirection bien tenue, parce qu’elle permet d’agir vite et de documenter le travail. Sur une migration technique, un passage massif en https ou une refonte importante, je déplace plutôt la logique au niveau serveur. Et quand une règle dépend vraiment de WordPress lui-même, j’utilise le PHP, mais je le garde en second plan, comme une brique de logique ciblée, pas comme un système de redirection général.
Mon conseil le plus utile est simple: faites la redirection la plus directe possible, vers la page la plus pertinente, et gardez une trace des règles créées. Une bonne 301 n’attire pas l’attention sur elle-même; elle répare, elle transmet et elle disparaît presque derrière l’expérience normale de navigation. C’est exactement ce qu’on attend d’une redirection propre sur WordPress.