WordPress : changer la structure des permaliens

wordpress_icon_blue Il y a quelques semaines, j’ai décidé de changer la structure des permaliens (ou permalinks) sous WordPress.

Je me suis rendu compte que finalement, il y avait très peu d’intérêt à garder la date de création de l’article dans l’URL étant donné qu’elle est présente dans chaque article, cela permet de raccourcir les URLs et mes articles sont plutôt timeless.

Cela se fait en 2 étapes, en 5 minutes top chrono.

Etape 1 : changer la structure des permaliens WordPress

C’est tout simple, il suffit de se rendre dans Settings > Permalinks et de sélectionner Post name:

wordpress permalinks postname

Depuis WordPress 3.3, choisir l’option /%postname%/ ne pose plus de problème de performance. C’était le cas auparavant et l’option n’était pas disponible.

Validez les changements.

Etape 2 : rediriger les anciennes URLs vers les nouvelles

Il nous reste maintenant à rediriger tous les anciens permalinks vers les nouveaux. Pour cela, il suffit d’éditer le fichier .htaccess qui se trouve à la racine de votre site.

J’utilisais jusqu’ici la structure “Day and name” (), il faut donc retirer tous les nombres de la date (/Année/Mois/Jour/), comme ceci :

# Changement des permaliens de skyminds.net - by Matt.
# https://www.skyminds.net/2000/12/21/southland-saison-4/ devient
# https://www.skyminds.net/southland-saison-4/
RewriteEngine On
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ https://www.skyminds.net/$4

Et voilà, toutes vos anciennes et longues URLs sont automatiquement redirigées vers les nouvelles et courtes, de manière totalement transparente pour vos visiteurs.

Analyse à court-terme

Niveau performance, je n’ai pas noté de ralentissement. Par contre toutes vos anciennes URLs sont redirigées avec des redirections 301 (redirections permanentes) ce qui affole un peu Google, Bing et compagnie pendant quelques jours. Ne vous inquiétez pas, cela se règle automatiquement, le temps que leur cache se mette à jour.

Edit : à long terme, il est utile d’ éditer les liens de la base de données WordPress pour refléter le changement de structure des permaliens.

Envie d'ajouter des fonctionnalités exceptionnelles à votre site WordPress ou WooCommerce? Je suis là pour vous aider.

Explorons les possibilités ensemble »

Articles conseillés :

Matt

Matt Biscay est développeur WordPress et WooCommerce certifié chez Codeable, ainsi que sysadmin qualifié et enseignant-chercheur. Passionné par le code performant et les solutions sécurisées, je m'efforce d'offrir une expérience utilisateur exceptionnelle sur chaque projet.

Vous avez aimé cet article ? Vous avez un projet en tête et vous pensez que je pourrais vous aider à le concrétiser ? N'hésitez pas à me contacter, je serais ravi de discuter avec vous de votre projet !

6 pensées sur “WordPress : changer la structure des permaliens”

  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