Generateur de Slug/ Noms compatibles URL

Convertissez les titres en slugs compatibles URL — gere les accents, caracteres CJK, separateurs personnalises et longueur maximale.

Séparateur
Longueur max
Texte / titre
Slug
0 car.
Le slug apparaîtra ici…
Essayer un exemple

Cet outil a-t-il résolu votre problème ?

Qu'est-ce qu'un slug URL

Un slug URL est la partie lisible d'une URL qui identifie une page特定e, typiquement composée de lettres minuscules, chiffres et tirets. Dans `example.com/posts/how-to-seo`, le slug est `how-to-seo`. Les bons slugs sont courts, lisibles et contiennent des mots-clés — importants pour le SEO et l'expérience utilisateur.

Comment générer de bons slugs

Convertir en minuscules, remplacer les espaces et caractères spéciaux par des tirets, supprimer les mots vides et conserver les mots-clés principaux. Les URL courtes sont meilleures, mais保持 la lisibilité. Évitez les dates et identifiants dans les slugs除非 nécessaire.

Exemples de code

JavaScript / Node.js
// npm install slugify
import slugify from 'slugify';

slugify('Hello World!', { lower: true })
// 'hello-world'

slugify('Cafe au Lait', { lower: true })
// 'cafe-au-lait'

// npm install limax (CJK support)
import limax from 'limax';
limax('你好世界')       // 'ni-hao-shi-jie' (pinyin)
limax('東京')           // 'dong-jing'

// Manual (no deps)
const slugify = (s) => s
  .toLowerCase()
  .normalize('NFD')
  .replace(/[\u0300-\u036f]/g, '')
  .replace(/[^a-z0-9]+/g, '-')
  .replace(/^-|-$/g, '');
Python
# pip install python-slugify
from slugify import slugify

slugify('Hello World!')
# 'hello-world'

slugify('Cafe au Lait')
# 'cafe-au-lait'

slugify('你好世界', allow_unicode=True)
# '你好世界'

# With max length
slugify('A very long title that should be truncated',
        max_length=30, word_boundary=True)
# 'a-very-long-title-that-should'
Go
// go get github.com/gosimple/slug
import "github.com/gosimple/slug"

slug.Make("Hello World!")
// "hello-world"

slug.Make("Cafe au Lait")
// "cafe-au-lait"

// Custom separator
slug.CustomMake("Hello World", "_")
// "hello_world"

// Truncate
s := slug.Make("A very long title here")
if len(s) > 50 {
    s = s[:50]
}
PHP / WordPress
<?php
// WordPress built-in
$slug = sanitize_title('Hello World! Cafe');
// 'hello-world-cafe'

// PHP custom
function to_slug(string $s): string {
    $s = mb_strtolower($s, 'UTF-8');
    $s = iconv('UTF-8', 'ASCII//TRANSLIT', $s);
    $s = preg_replace('/[^a-z0-9]+/', '-', $s);
    return trim($s, '-');
}

// Laravel
use Illuminate\Support\Str;
Str::slug('Hello World!');    // 'hello-world'
Str::slug('Hello World', '_'); // 'hello_world'

Questions frequemment posees

Qu'est-ce qu'un slug URL ?
Un slug est la partie lisible d'une URL qui identifie une page specifique — compose de lettres minuscules, de chiffres et de tirets, comme /blog/my-first-post. Les bons slugs sont concis, lisibles et favorables au SEO. Ils evitent les caracteres speciaux, les espaces, les majuscules et les caracteres non ASCII (sauf si vous utilisez des URL en langue native).
Pourquoi utiliser des tirets plutot que des underscores dans les slugs ?
Google traite les tirets (-) comme des separateurs de mots, reconnaissant my-blog-post comme trois mots distincts. Les underscores (_) sont traites comme des connecteurs, faisant de my_blog_post un seul mot. Les tirets sont donc meilleurs pour le SEO. WordPress, GitHub et Shopify utilisent tous les tirets par defaut pour la meme raison.
Comment gerer les caracteres CJK dans les slugs ?
Deux approches principales : 1) Translitteration en pinyin/romaji (ex. : 你好世界 → ni-hao-shi-jie) — meilleur pour le SEO en alphabet latin. 2) Utiliser les caracteres natifs directement (ex. : /blog/你好世界) — les navigateurs et moteurs de recherche modernes le supportent, mais les liens apparaitront encodes en pourcentage lors du partage. Cet outil prend en charge les deux modes.
Quelle est la longueur ideale d'un slug ?
La bonne pratique SEO recommande de garder les slugs sous 60 a 75 caracteres pour eviter la troncature dans les resultats de recherche. Incluez votre mot-cle cible, supprimez les mots vides (a, the, of, etc.). Exemple : 'how-to-optimize-nextjs-performance' est un slug efficace. Les slugs trop longs diluent le poids des mots-cles.
Quels caracteres faut-il supprimer lors de la creation d'un slug ?
Supprimer ou remplacer : espaces (→ separateur), symboles speciaux (!@#$%^&*()+=[]{}|;:',.<>?/\`~), caracteres accentues (e→e, u→u) et caracteres de controle. Conserver : lettres (a-z), chiffres (0-9), separateurs (-._). La conservation des caracteres CJK depend de votre cas d'utilisation.
Comment generer des slugs dans Next.js ou Node.js ?
Dans Node.js : npm install slugify ou limax (support CJK/pinyin). Implementation manuelle basique : str.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, ''). Dans le routage base sur les fichiers de Next.js, le slug provient generalement du nom de fichier ou d'un champ de base de donnees. WordPress dispose de sanitize_title() integre.