Vous avez déjà vu ces URL propres, lisibles et optimisées pour Google comme mon-site.com/creer-un-slug-en-php ? Derrière cette simplicité apparente se cache un concept essentiel : le slug. Et bonne nouvelle, vous pouvez le générer vous-même un slug en PHP, sans dépendre d’un CMS comme WordPress.
- Créer des URL propres et lisibles pour améliorer le référencement et l’expérience utilisateur.
- Savoir automatiser la génération de slugs en PHP pour gagner du temps sur tous vos projets web.
- Éviter les erreurs courantes qui pénalisent le SEO et garantir des URLs fiables et optimisées.
Dans ce tutoriel, nous allons voir comment créer un slug SEO propre en PHP, étape par étape. Vous allez comprendre le pourquoi, le comment, et surtout être capable de l’implémenter dans vos propres projets. Même si vous débutez, pas d’inquiétude : je vous explique tout simplement, avec des exemples concrets.
- Qu’est-ce qu’un slug et pourquoi c’est important ?
- Objectif : transformer une chaîne en slug
- Version complète : fonction PHP pour otebnir un slug
- Cas concrets : testez notre fonction avec différents textes
- Amélioration SEO : limiter la longueur du slug
- Comment éviter les doublons de slug
- Aller plus loin : Slug dynamique en base de données
- Les erreurs fréquentes et comment les éviter
- Astuce pro : utiliser mb_strtolower
- Pourquoi générer ses slugs en PHP ?
Qu’est-ce qu’un slug et pourquoi c’est important ?
Avant de coder, prenons 30 secondes pour comprendre. Un slug, c’est la partie lisible d’une URL :
https://monsite.com/blog/creer-un-slug-en-php
Le slug ici est :
creer-un-slug-en-php
Pourquoi c’est important en SEO ?
Un bon slug permet :
- D’améliorer le référencement naturel (SEO)
- De rendre l’URL compréhensible pour l’utilisateur
- D’augmenter le taux de clic (CTR)
Comparez :
- ❌
monsite.com/article?id=4587 - ✅
monsite.com/creer-un-slug-en-php
On est d’accord… le deuxième donne envie de cliquer … Et en plus, il contient des mots-clés.
Objectif : transformer une chaîne en slug
Votre mission (si vous l’acceptez) sera de transformer ceci :
Créer un slug SEO en PHP !
En ceci :
creer-un-slug-seo-en-php
Étape 1 : Mettre tout en minuscules
Pourquoi ? Parce que les URL sont généralement en minuscules pour éviter les problèmes et garder une cohérence.
Nous allons le faire en PHP grâce à la fonction strtolower() :
$texte = "Créer un slug SEO en PHP !";
$slug = strtolower($texte);
echo $slug;
Ce qui nous donnera :
créer un slug seo en php !
C’est un bon début… mais il reste du travail !
Étape 2 : Supprimer les accents
Les accents peuvent poser problème dans les URL. Il faut donc les convertir. La meilleure solution sera d’utiliser iconv() :
$slug = iconv('UTF-8', 'ASCII//TRANSLIT', $slug);
Nous obtiendrons :
creer un slug seo en php !
Maintenant, les accents ont disparu.
Étape 3 : Supprimer les caractères spéciaux
On ne veut garder que :
- lettres
- chiffres
- espaces
Nous allons utiliser un code avec regex :
$slug = preg_replace('/[^a-z0-9\s]/', '', $slug);
Nous aurons comme résultat :
creer un slug seo en php
Les caractères comme ! ont disparu.
👉 Pour ceux qui débutent : Initiation au RegEx.
Étape 4 : Remplacer les espaces par des tirets
C’est la base d’un slug SEO propre.
$slug = preg_replace('/\s+/', '-', $slug);
Pour obtenir :
creer-un-slug-seo-en-php-
👉 Oups… il reste un tiret en trop à la fin.
Étape 5 : Nettoyer les tirets inutiles
Et enfin, on va supprimer les tirets au début et à la fin à l’aide de la fonction trim() :
$slug = trim($slug, '-');
Résultat final :
Des formations informatique pour tous !
Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…
Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.
Découvrez mes formations Qui suis-je ?creer-un-slug-seo-en-php
Bravo ! Vous avez votre slug.
👉 Pour allez plus loin avec les chaînes de caractères : 40 fonctions pour les strings
Version complète : fonction PHP pour otebnir un slug
Maintenant, on regroupe tout dans une fonction.
function generate_slug($texte) {
// 1. Mettre en minuscule
$slug = strtolower($texte);
// 2. Supprimer les accents
$slug = iconv('UTF-8', 'ASCII//TRANSLIT', $slug);
// 3. Supprimer les caractères spéciaux
$slug = preg_replace('/[^a-z0-9\s]/', '', $slug);
// 4. Remplacer les espaces par des tirets
$slug = preg_replace('/\s+/', '-', $slug);
// 5. Supprimer les tirets en trop
$slug = trim($slug, '-');
return $slug;
}
Que nous pourrons utiliser ainsi :
echo generate_slug("Créer un slug SEO en PHP !");
Afin d’obtenir :
creer-un-slug-seo-en-php
Cas concrets : testez notre fonction avec différents textes
Exemple 1 :
echo generate_slug("Formation PHP débutant 2025 !");
Résultat :
formation-php-debutant-2025
Exemple 2
echo generate_slug("10 astuces pour booster votre SEO 🚀");
Résultat :
10-astuces-pour-booster-votre-seo
Exemple 3
echo generate_slug("Créer une API REST en PHP (guide complet)");
Résultat :
creer-une-api-rest-en-php-guide-complet
Amélioration SEO : limiter la longueur du slug
Un slug trop long, c’est mauvais pour le SEO.
- Idéalement : entre 50 et 70 caractères
Il faut donc ajouter dans la fonction un moyen de limiter le nombre de caractères, nous utiliserons substr() :
$slug = substr($slug, 0, 60);
Il faut placer cette ligne dans note fonction pour créer un slug juste avant le return.
Comment éviter les doublons de slug
Imaginez :
- Article 1 →
creer-un-slug-en-php - Article 2 → même titre…
💥 Collision !
La solution la plus simple consiste à ajouter un identifiant :
$slug = generate_slug($titre) . '-' . time();
En prenant un timestamp, nous serons sûr que notre identifiant sera unique :
creer-un-slug-en-php-1711369200
Aller plus loin : Slug dynamique en base de données
Dans un vrai projet, vous allez :
- Générer le slug
- Vérifier s’il existe en base
- Ajouter un suffixe si nécessaire
$slug = generate_slug($titre);
while (slugExiste($slug)) {
$slug .= '-1';
}
C’est ce qu’utilisent les CMS comme WordPress.
Les erreurs fréquentes et comment les éviter
- Oublier les accents : URL cassée ou mal encodée
- Ne pas nettoyer les caractères spéciaux : Mauvaise lisibilité et SEO dégradé
- Garder les espaces : URL invalide ou transformée automatiquement
- Slug trop long : Google tronque… et ça fait moche
Astuce pro : utiliser mb_strtolower
Si vous travaillez avec UTF-8 :
$slug = mb_strtolower($texte, 'UTF-8');
C’est plus fiable que strtolower().
Pourquoi générer ses slugs en PHP ?
Créer votre propre système de slug en PHP vous permet :
- D’être indépendant des CMS
- De mieux comprendre le SEO technique
- D’optimiser vos performances
- De créer vos propres règles métier
Générer un slug en PHP, ce n’est pas juste une transformation de texte. C’est une étape clé pour rendre vos URL propres, lisibles et optimisées pour le SEO. En quelques lignes de code, vous pouvez améliorer significativement la qualité de vos pages… et l’expérience de vos visiteurs.
Et surtout, maintenant que vous avez compris le mécanisme, vous pouvez aller plus loin : personnaliser vos règles, gérer les doublons intelligemment, ou même intégrer ça dans votre propre CMS. Bref, vous ne regarderez plus jamais une URL de la même façon.

Fondateur de l’agence Créa-troyes, affiliée France Num
Intervenant en Freelance.
Contactez-moi
