Changer la structure des permaliens WordPress sans perdre son SEO

Changer la structure des permaliens WordPress peut améliorer la lisibilité des URLs, alléger les liens trop longs et rendre un site plus cohérent. Mais il ne faut pas traiter cette opération comme un simple clic dans l’administration.

Un permalien est censé être permanent. Donc, si vous changez vos URLs, vous devez aussi gérer les anciennes adresses avec des redirections 301 propres. Sinon, vous risquez des erreurs 404, une perte de trafic, des backlinks cassés et une petite crise de nerfs dans Google Search Console.

Voici comment modifier la structure des permaliens WordPress proprement, sans casser votre référencement.

Distingo, le livret à 2%

Pourquoi changer les permaliens WordPress ?

WordPress propose plusieurs structures d’URLs. Certaines incluent la date, d’autres l’identifiant du contenu, et d’autres utilisent simplement le slug de l’article.

Par exemple, une ancienne structure avec date ressemble à ceci :

https://www.example.com/2024/03/18/mon-article/Code language: JavaScript (javascript)

Une structure plus courte avec le nom de l’article donne plutôt ceci :

https://www.example.com/mon-article/Code language: JavaScript (javascript)

La seconde version est plus lisible, plus courte, plus facile à partager et mieux adaptée aux contenus intemporels. Si vos articles ne dépendent pas fortement d’une date de publication, garder l’année, le mois et le jour dans l’URL apporte rarement une vraie valeur.

Sur SkyMinds, c’est exactement la raison qui m’a poussé à abandonner les URLs datées : les dates apparaissent déjà dans les articles, tandis que beaucoup de contenus restent utiles longtemps.

Quelle structure de permaliens choisir ?

Pour la plupart des sites éditoriaux, blogs professionnels et sites vitrines, la structure la plus simple reste :

/%postname%/

Elle génère des URLs du type :

https://www.example.com/titre-de-larticle/Code language: JavaScript (javascript)

C’est propre, stable et lisible. WordPress propose cette option dans Réglages > Permaliens, sous le nom Titre de la publication ou Post name selon la langue de votre interface.

Vous pouvez aussi utiliser une structure personnalisée avec des balises comme %category%, %post_id% ou %author%. Cependant, je recommande de rester simple. Les URLs complexes vieillissent mal, surtout si vous réorganisez vos catégories quelques années plus tard.

Les structures à éviter

Je déconseille généralement les structures suivantes pour un site moderne :

  • /?p=123 : fonctionne partout, mais l’URL n’indique rien sur le contenu.
  • /2026/05/27/titre/ : utile pour un média très daté, mais souvent trop long pour un contenu evergreen.
  • /%category%/%postname%/ : tentant pour le SEO, mais fragile si vos catégories changent.
  • /%author%/%postname%/ : rarement utile hors média multi-auteurs structuré.
  • /%postname%-%post_id%/ : pratique pour éviter les collisions, mais moins élégant.

La structure parfaite n’existe pas. La meilleure est celle que vous pourrez garder dix ans sans devoir tout remapper. Oui, c’est moins glamour qu’un plugin SEO avec des graphiques verts, mais c’est souvent plus efficace.

Avant de modifier les permaliens : préparez le terrain

Avant de cliquer sur “Enregistrer”, faites trois choses.

1. Sauvegarder les fichiers et la base de données

Exportez d’abord la base de données :

wp db export before-permalink-change.sqlCode language: JavaScript (javascript)

Si vous travaillez en root sur votre serveur :

wp db export before-permalink-change.sql --allow-rootCode language: JavaScript (javascript)

Gardez aussi une copie du fichier .htaccess si votre site tourne sous Apache :

cp .htaccess .htaccess.before-permalink-changeCode language: CSS (css)

Sur Nginx, sauvegardez plutôt la configuration du vhost concerné.

2. Lister les anciennes structures d’URLs

Notez précisément votre ancienne structure. Par exemple :

/%year%/%monthnum%/%day%/%postname%/Code language: JavaScript (javascript)

Ou encore :

/%year%/%monthnum%/%postname%/Code language: JavaScript (javascript)

Cette étape détermine la règle de redirection. Une mauvaise règle peut rediriger trop large, créer des boucles ou envoyer toutes vos anciennes URLs vers la mauvaise destination. Ambiance “tout marche sauf le site”.

3. Tester sur staging si le site est important

Sur un petit blog personnel, vous pouvez intervenir directement si vous avez une sauvegarde. Sur un site professionnel, WooCommerce, média, intranet ou site avec beaucoup de trafic, testez d’abord sur staging.

Le changement de structure peut toucher les articles, les pages, les types de contenus personnalisés, les taxonomies, les URLs canoniques, les sitemaps, les breadcrumbs et les redirections existantes.

Étape 1 : changer la structure dans WordPress

Dans l’administration WordPress :

  1. ouvrez Réglages > Permaliens ;
  2. choisissez Titre de la publication ;
  3. vérifiez que la structure correspond à /%postname%/ ;
  4. cliquez sur Enregistrer les modifications.

WordPress régénère alors ses règles de réécriture. Sur Apache, cela met généralement à jour le fichier .htaccess, si WordPress a le droit de l’écrire. Sur Nginx, WordPress ne modifie pas la configuration serveur : c’est à vous de gérer les règles côté vhost si nécessaire.

Avec WP-CLI, vous pouvez aussi modifier la structure comme ceci :

wp rewrite structure '/%postname%/' --hardCode language: JavaScript (javascript)

Puis régénérer les règles de réécriture :

wp rewrite flush --hard

Le paramètre --hard demande à WP-CLI de mettre à jour aussi le fichier .htaccess quand l’environnement le permet.

Étape 2 : rediriger les anciennes URLs vers les nouvelles

Changer la structure WordPress ne suffit pas toujours. Vous devez vous assurer que les anciennes URLs répondent avec une redirection 301 vers les nouvelles.

Une redirection 301 signifie que l’URL a changé de manière permanente. C’est le bon signal pour les visiteurs, les navigateurs, les moteurs de recherche et les liens entrants.

Redirection Apache pour passer de /année/mois/jour/titre/ à /titre/

Si votre ancienne structure était :

/%year%/%monthnum%/%day%/%postname%/Code language: JavaScript (javascript)

Et que vous passez vers :

/%postname%/

Vous pouvez ajouter cette règle dans le fichier .htaccess, au-dessus du bloc WordPress :

RewriteEngine On
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ https://www.example.com/$4Code language: JavaScript (javascript)

Remplacez évidemment https://www.example.com par votre nom de domaine.

Important : ne mettez pas vos règles personnalisées entre # BEGIN WordPress et # END WordPress. WordPress peut réécrire ce bloc quand vous enregistrez les permaliens.

Redirection Apache pour passer de /année/mois/titre/ à /titre/

Si votre ancienne structure était :

/%year%/%monthnum%/%postname%/Code language: JavaScript (javascript)

Utilisez plutôt :

RewriteEngine On
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/(.*)$ https://www.example.com/$3Code language: JavaScript (javascript)

Redirection Nginx pour passer de /année/mois/jour/titre/ à /titre/

Sur Nginx, la logique se place dans le bloc server du vhost :

rewrite ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ https://www.example.com/$4 permanent;Code language: JavaScript (javascript)

Puis testez la configuration :

nginx -t

Et rechargez Nginx :

systemctl reload nginx

Tester les redirections après le changement

Après modification, testez une ancienne URL connue avec curl :

curl -I https://www.example.com/2024/03/18/mon-article/Code language: JavaScript (javascript)

Vous devez obtenir une réponse de ce type :

HTTP/2 301
location: https://www.example.com/mon-article/Code language: HTTP (http)

Testez ensuite la nouvelle URL :

curl -I https://www.example.com/mon-article/Code language: JavaScript (javascript)

Elle doit répondre en 200, pas en 301, pas en 302, et surtout pas en 404.

Mettre à jour les liens internes dans le contenu

Les redirections protègent vos anciennes URLs, mais elles ne remplacent pas un vrai nettoyage des liens internes. Si vos anciens articles contiennent encore des liens du type /2024/03/18/article/, chaque clic déclenche une redirection inutile.

Sur un petit site, ce n’est pas dramatique. Sur un site avec beaucoup de contenus, cela ajoute de la latence, complique les audits SEO et multiplie les URLs historiques dans les rapports.

Pour ce point, j’ai publié un guide séparé : éditer les liens de la base de données WordPress après un changement de structure des permaliens.

Ne faites pas un remplacement SQL brutal si vous ne maîtrisez pas les données sérialisées. Sur WordPress, beaucoup d’options et de métadonnées stockent des tableaux sérialisés. Un remplacement mal fait peut casser des widgets, des réglages ou des contenus construits avec un builder.

Avec WP-CLI, une approche plus sûre consiste à commencer par un dry-run :

wp search-replace 'https://www.example.com/2024/03/18/mon-article/' 'https://www.example.com/mon-article/' --dry-runCode language: JavaScript (javascript)

Mais pour une migration de structure globale basée sur des dates, chaque cas mérite un test précis. Les expressions régulières peuvent être utiles, mais elles peuvent aussi transformer votre base en escape game.

Mettre à jour les sitemaps et vérifier Search Console

Après le changement, vérifiez que votre sitemap XML contient bien les nouvelles URLs. Si vous utilisez un plugin SEO, régénérez le sitemap ou videz le cache si nécessaire.

Ensuite, dans Google Search Console :

  • inspectez quelques anciennes URLs ;
  • vérifiez qu’elles redirigent vers les nouvelles ;
  • inspectez quelques nouvelles URLs ;
  • surveillez les erreurs 404 ;
  • contrôlez les pages indexées dans les semaines suivantes.

Une fluctuation temporaire est normale. En revanche, des redirections en chaîne, des boucles, des 404 massives ou des URLs canoniques contradictoires doivent être corrigées rapidement.

Cas particulier : les permaliens WooCommerce

Sur WooCommerce, soyez encore plus prudent. Les produits, catégories de produits, tags de produits et attributs peuvent avoir leurs propres bases d’URLs. Vous les trouverez aussi dans Réglages > Permaliens.

Avant toute modification, vérifiez :

  • les URLs produits ;
  • les catégories de produits ;
  • les filtres à facettes ;
  • les URLs générées par les plugins SEO ;
  • les flux produits ;
  • les liens utilisés dans Google Merchant Center ;
  • les URLs utilisées dans les campagnes publicitaires.

Changer les permaliens d’une boutique active peut avoir des effets commerciaux directs. Ici, on teste d’abord. Ensuite seulement, on clique.

Faut-il utiliser un plugin de redirection ?

Oui, dans certains cas. Un plugin comme Redirection peut suffire si vous n’avez pas accès au serveur ou si vous devez gérer quelques règles ciblées.

Pour une règle globale simple, je préfère une redirection serveur. Elle est plus directe, plus performante et indépendante de WordPress. Apache ou Nginx peuvent rediriger l’ancienne URL avant même de charger WordPress.

En résumé :

  • règle globale simple : serveur ;
  • cas éditoriaux spécifiques : plugin de redirection ;
  • migration complexe : mapping complet des anciennes et nouvelles URLs ;
  • site à fort trafic : test sur staging, logs serveur et monitoring Search Console.

Que faire si les permaliens affichent des erreurs 404 ?

Si les nouvelles URLs retournent des 404, commencez par régénérer les règles de réécriture.

Dans WordPress :

  1. allez dans Réglages > Permaliens ;
  2. ne changez rien ;
  3. cliquez sur Enregistrer les modifications.

Avec WP-CLI :

wp rewrite flush --hard

Si le problème persiste sur Apache, vérifiez que mod_rewrite est actif et que le vhost autorise les règles .htaccess. Pour approfondir ce point, consultez aussi mon guide sur le fichier .htaccess et les permaliens WordPress.

Si le site tourne sur Nginx, vérifiez que votre bloc try_files renvoie bien les requêtes WordPress vers index.php.

Checklist avant et après changement

  • Sauvegarder la base de données.
  • Sauvegarder .htaccess ou la configuration Nginx.
  • Identifier l’ancienne structure exacte.
  • Choisir une nouvelle structure stable.
  • Changer les permaliens dans WordPress.
  • Régénérer les règles de réécriture.
  • Créer les redirections 301.
  • Tester plusieurs anciennes URLs avec curl -I.
  • Vérifier que les nouvelles URLs répondent en 200.
  • Mettre à jour les liens internes si nécessaire.
  • Vérifier les sitemaps XML.
  • Surveiller Google Search Console.
  • Corriger rapidement les 404 détectées.

Besoin d’aide pour changer vos permaliens WordPress ?

Changer une structure de permaliens paraît simple, mais les conséquences peuvent être sérieuses si le site possède déjà de l’historique, du trafic, des backlinks ou une boutique WooCommerce.

Je peux vous aider à préparer la migration, écrire les règles de redirection, vérifier les anciennes URLs, nettoyer les liens internes, corriger les erreurs 404 et sécuriser le changement côté SEO.

Si vous voulez éviter la migration “ça devrait passer”, contactez-moi pour une intervention WordPress. Je vous aiderai à changer vos URLs proprement, sans transformer votre trafic organique en champ de ruines.

FAQ : changer les permaliens WordPress

Changer les permaliens WordPress fait-il perdre du SEO ?

Pas si les redirections 301 sont propres, directes et complètes. En revanche, un changement sans redirection peut provoquer des erreurs 404 et une perte de trafic.

Quelle est la meilleure structure de permaliens WordPress ?

Pour la plupart des sites, /%postname%/ reste le meilleur choix. Cette structure produit des URLs courtes, lisibles et faciles à maintenir.

Faut-il garder la date dans les URLs ?

Gardez la date si votre site publie des contenus fortement liés à l’actualité. Supprimez-la si vos articles sont plutôt intemporels et que la date apparaît déjà dans le contenu ou les métadonnées.

WordPress redirige-t-il automatiquement les anciennes URLs ?

WordPress peut gérer certains cas, mais ne vous reposez pas uniquement dessus pour une migration importante. Une règle serveur explicite ou un mapping de redirections reste plus fiable.

Dois-je modifier les liens dans la base de données ?

Ce n’est pas obligatoire si les redirections fonctionnent. Cependant, sur un gros site, mettre à jour les liens internes évite des redirections inutiles et simplifie les audits SEO.

Pourquoi mes permaliens WordPress affichent-ils des 404 après modification ?

Le plus souvent, les règles de réécriture n’ont pas été régénérées, le fichier .htaccess n’est pas inscriptible, mod_rewrite n’est pas actif, ou la configuration Nginx ne renvoie pas les requêtes vers WordPress.

Sources

Demandez à l'IA son opinion
Gravatar for Matt Biscay

Je suis Matt Biscay, développeur WordPress & WooCommerce certifié chez Codeable, administrateur système et enseignant.

J’aide les entreprises à créer, optimiser et fiabiliser leurs sites WordPress avec une approche technique propre : performance, sécurité, maintenance, développement sur mesure et résolution de problèmes complexes.

Sur Skyminds, je partage des tutoriels WordPress, WooCommerce, Linux et administration système, avec des solutions testées sur des cas réels et pensées pour durer.

Découvrez mes services WordPress et WooCommerce.

6 pensées sur “Changer la structure des permaliens WordPress sans perdre son SEO”

  1. Un très bon article… Cependant, ton astuce avec le htaccess fonnctionne en supprimant les dates mais de mon côté je souhaite passer d’un simple /%postname%/ à du /%postname%-%post_id%/, tu aurais le code pour cela ? Je demande ça car je m’emmêle souvent les pinceaux avec le htaccess.

    A bientôt

    Reply
    • Salut Crunch,

      WordPress redirigera tes anciennes URLs vers les nouvelles automatiquement.

      J’ai ajouté les règles htaccess parce que je préfère que ce soit Apache qui gère cela plutôt que WordPress. Dans ton cas par contre, comme le post_id n’était pas présent dans l’ancienne structure, tu ne peux pas le passer en argument à Apache.

      Reply
  2. Yes, c’est bon ! Grâce à vos conseils, j’ai réussi la redirection 301.

    Et en plus, j’ai changé les liens dans toute la base à l’aide de Search Regex.

    Merci

    Le raconteur

    Reply
  3. salut Matt,
    j’ai suivi ton tuto pour mon site Duflot pour changer la structure de mes permaliens qui étaient aussi avec la date.
    Par contre est ce qu’il faut absolument éditer les liens dans la base de données? parce que je t’avouerais que j’ai un peu la flemme. ;)

    Reply
    • Salut Julie,

      Si tu as mis la redirection .htaccess, ce n’est pas vital – c’est juste que tu forces le serveur à faire une redirection vers la bonne page à chaque fois qu’une ancienne page est demandée.

      Sur un petit blog, ça passe. Si tu as 5000+ visites par jour, cela risque de ralentir les choses et il vaudra mieux faire la manipulation SQL pour éditer les liens (qui ne prend que quelques minutes).

      Reply

Opinions