Aller au contenu principal

Générateur de slugs

Ce générateur transforme n’importe quel titre en un slug d’URL propre : le texte Unicode est plié avec NFKD pour que les accents disparaissent, les séries de caractères non alphanumériques sont réduites à un seul séparateur, et le tout est en minuscules. Il s’exécute entièrement dans votre navigateur, et le séparateur est à votre choix.

100 % local

Générateur de slugs en clair

Un slug est la partie d’une URL choisie par un humain, car les URLs sont lues par des personnes, citées dans des e-mails, indexées par les moteurs de recherche et comparées comme des chaînes de caractères. Les lettres minuscules, les chiffres et le séparateur en tiret résistent à ces quatre usages sans surprise.

Passer de titres réels — pleins d’accents, de ponctuation et de majuscules — à un slug est un processus, pas un simple remplacement. Le pliage Unicode NFKD supprime les accents et résout les formes de compatibilité comme la ligature fi ; les apostrophes sont supprimées, si bien que "don’t" devient "dont" ; les séries de caractères non alphanumériques sont réduites à un seul séparateur ; le tout est mis en minuscules et nettoyé des espaces superflus.

La franchise sur le champ d’application est importante, car le pliage n’est pas une traduction : NFKD agit sur les caractères qui se décomposent — accents, ligatures, lettres pleine largeur. Les scripts sans décomposition latine, comme l’arabe, l’hébreu ou le chinois, ne sont pas pliés, et cette page explique ce qui se passe plutôt que d’inventer une translittération. Tout s’exécute dans votre navigateur.

La mise en minuscules est fixée par la convention des slugs, mais le texte autour d’un lien a souvent besoin d’un autre traitement — le convertisseur de casse gère la Casse Titre, camelCase et les autres.

Les slags existent pour éviter l’encodage ; quand une URL doit porter du Unicode brut de toute façon, le encodeur et décodeur d’URL montre comment le codage en pourcent le fait.

Le processus, étape par étape

L’ordre est important : le pliage s’exécute avant la mise en minuscules, et le remplacement des séparateurs en dernier, afin de ne jamais couper une lettre produite par le pliage. La séquence :

  • Normaliser en NFKD — é devient e plus un accent combiné, fi devient fi, le pleine largeur A devient A.
  • Supprimer les marques d’accent combiné (la plage U+0300–U+036F) — café devient cafe.
  • Mettre en minuscules — Cafe devient cafe.
  • Supprimer les apostrophes — don’t devient dont, sans laisser de séparateur traînant.
  • Remplacer chaque série de caractères non alphanumériques — espaces, ponctuation, emoji, symboles — par un seul espace.
  • Rogner, puis joindre les mots avec votre séparateur — un trait d’union par défaut.

Ce que le pliage NFKD gère — et ce qu’il ne peut pas

Le pliage gère l’alphabet européen accentué de manière approfondie : é, è, ü et autres se transforment en lettres de base — Ångström devient angstrom, crème brûlée devient creme-brulee. Les caractères de compatibilité se décomposent aussi : ½ se déplie en 1, une barre de fraction et 2, et la barre — étant un symbole — devient le séparateur, si bien que le slug se lit 1-2.

La limite honnête est les caractères sans décomposition. Le ß allemand n’en a pas, donc Straße devient stra-e — le ß se transforme en séparateur au milieu du mot. Surprenant, mais pas un bug : ß→ss est une règle orthographique, pas Unicode. Le même obstacle apparaît pour tout script non latin.

Scripts RTL, CJK et le cas du slug vide

L’arabe et l’hébreu s’écrivent de droite à gauche, mais la direction n’est pas le problème — la décomposition l’est. Leurs lettres n’ont pas de transcription NFKD en lettres latines, donc sous une politique de slug ASCII, elles sont remplacées par le séparateur. Un titre mixé garde ses mots pliables ; un titre entièrement en arabe, chinois ou emoji se réduit à rien, et ce générateur retourne un slug vide plutôt que de deviner.

Ce résultat vide est une information, pas un échec : la politique ASCII ne peut représenter ce titre, et un placeholder comme article-123 vous cacherait cela. Les alternatives légitimes sont un slug préservant l’Unicode — les normes modernes traitent les URLs comme des IRI, et les navigateurs percent-encodent le non-ASCII en transit — ou une translittération sensible à la langue, qui nécessite des correspondances qu’aucune table de pliage ne fournit.

Choisir le séparateur

Le trait d’union est le défaut car c’est ainsi que le web le lit : les directives des moteurs de recherche traitent depuis longtemps le trait d’union comme un séparateur de mots, tandis que le trait de soulignement a historiquement unifié les mots. Le trait de soulignement et le point restent disponibles pour les systèmes qui les attendent.

Quel que soit votre choix, l’hygiène est identique : les séries sont réduites à un seul séparateur et les deux extrémités sont nettoyées, donc "12 Astuces & Trucs !" ne devient jamais "-12-astuces-trucs-".

Questions fréquentes

Mon texte est-il envoyé quelque part quand je génère un slug ?

Non. La génération de slug est quelques opérations sur des chaînes de caractères qui s’exécutent après le chargement de la page — normalisation, pliage, minuscules, remplacement, rognage. Aucune requête n’est effectuée pendant la conversion, ce que le panneau Réseau de DevTools confirme, et la Content-Security-Policy du site définit connect-src 'self' pour que le navigateur bloquerait tout appel sortant qu’un script tenterait.

Pourquoi les minuscules et les traits d’union — est-ce important pour le SEO ?

Les chemins sont sensibles à la casse sur la plupart des serveurs, donc /Guides et /guides sont deux adresses qui divisent les liens et l’analyse ; la mise en minuscules évite cela. Les traits d’union se lisent comme des espaces — pour les personnes qui parcourent les pages de résultats et pour les moteurs de recherche — tandis qu’un slug collé se lit comme un seul mot. Aucun de ces éléments n’est un levier de classement seul ; les deux sont des victoires de cohérence peu coûteuses.

Comment fonctionne concrètement le pliage des accents ?

La normalisation NFKD décompose un caractère en ses parties : é devient une lettre de base e plus un accent aigu combiné. Le générateur supprime les marques combinatoires — une plage Unicode fixe — ne laissant que la lettre nue. Les ligatures et les formes pleine largeur se décomposent de la même manière ; c’est un mécanisme de suppression d’accents, pas une traduction.

Que se passe-t-il avec des titres en arabe, en hébreu, en chinois ou avec des emoji ?

Aucun de ces caractères ne se décompose en lettres latines, donc sous la politique ASCII, ils sont remplacés par le séparateur comme tout autre symbole. Un titre composé uniquement de tels caractères se réduit à un slug vide — l’outil indiquant que la politique ne peut pas le représenter. Les slags préservant l’Unicode sont une alternative valide ; la translittération nécessite des règles linguistiques que cet outil ne simule pas.

Puis-je utiliser des traits de soulignement ou des points à la place des traits d’union ?

Oui — le contrôle du séparateur les accepte, et le processus est sinon inchangé. Le trait d’union reste le défaut car les moteurs de recherche l’ont documenté comme séparateur de mots, tandis que le trait de soulignement a historiquement été unificateur ; la cohérence compte plus que le choix.

Pourquoi Straße est devenu stra-e et pas strasse ?

Le ß n’a pas de décomposition NFKD — Unicode le traite comme une lettre à part entière — donc sous la politique ASCII, il est remplacé par le séparateur, même au milieu d’un mot. L’expansion du ß en ss est une règle orthographique allemande qu’aucune table de normalisation ne contient. Si vous avez besoin de strasse, remplacez préalablement ß par ss dans le titre ; le reste se plie comme attendu.