En bref
- Sur un multisite en sous-répertoires, WordPress écrit
/blog/au début de la structure des permaliens du site principal, pour éviter qu’un article porte le même chemin qu’un sous-site. - Le préfixe n’existe pas sur un réseau en sous-domaines.
- On le retire dans Admin réseau → Sites → Modifier le site principal → Réglages, champ
permalink_structure(etcategory_base,tag_base). - Ensuite : enregistrer une fois Réglages → Permaliens pour régénérer les règles, prévoir des redirections 301, et surveiller les collisions de noms.
Cette semaine, en réglant les permaliens de ce site, je suis tombé sur un champ bloqué : Réglages → Permaliens affichait un /blog gris, impossible à retirer, devant la structure /veille/%postname%/. Le site partage son installation avec un labo en sous-répertoire : c’est donc un multisite, et le /blog est voulu par WordPress.
Ce que dit la documentation
Le manuel d’administration avancée de WordPress l’explique dans la préparation d’un réseau : sur un réseau par chemins (sous-répertoires), les articles du site principal suivent un schéma en /blog/. La page précise qu’on ne peut l’enlever qu’en modifiant les options du réseau à un endroit « non évident », et que ce n’est pas recommandé.
La raison est une question de collision. Sur exemple.com/labo/, WordPress doit décider si /labo/ désigne un sous-site ou un contenu du site principal. En rangeant tous les articles du site principal sous /blog/, il garantit qu’aucun ne prendra le chemin d’un sous-site.
Dans le code de WordPress
- À la création du réseau, la fonction
populate_network()(wp-admin/includes/schema.php) enregistre une structure qui commence par/blog/pour une installation en sous-répertoires, et une structure sans préfixe pour une installation en sous-domaines. - L’écran Réglages → Permaliens (
wp-admin/options-permalink.php) détecte ce préfixe sur le site principal d’un réseau en sous-répertoires : il l’affiche à part, non modifiable, et l’ajoute aussi devant les bases de catégories et d’étiquettes. - Il n’y a pas de filtre dédié : le préfixe est simplement stocké dans l’option
permalink_structure. Le comportement actuel date de WordPress 4.4 (ticket Trac #12002).
Retirer le préfixe, étape par étape
- Ouvrez Mes sites → Admin du réseau → Sites, survolez le site principal et cliquez sur Modifier.
- Onglet Réglages : l’écran liste les options brutes du site. Remplacez la valeur de
permalink_structure, par exemple/veille/%postname%/. - Corrigez aussi
category_baseettag_bases’ils commencent par/blog. - Enregistrez, puis ouvrez Réglages → Permaliens du site principal et cliquez sur Enregistrer sans rien changer : cet écran régénère les règles de réécriture.
- Vérifiez un article, une catégorie, une étiquette et la page auteur.
Dès que la structure ne commence plus par /blog/, l’écran Permaliens du site principal redevient normal : les deux champs de base ne sont plus préfixés.
Retour d’expérience
Sur ce site, j’avais saisi par erreur la structure des articles dans le champ des catégories. Résultat : des liens de rubrique en /veille/%postname%/odoo/, en erreur 404. Après toute modification, testez une URL de chaque type : les erreurs de permaliens ne se voient pas dans l’admin.
Les risques à connaître
Les collisions de noms
WordPress protège un seul sens : il refuse de créer un sous-site dont le nom correspond à une page existante du site principal. Il ne vérifie ni les articles, ni les catégories, ni les types de contenu personnalisés. Et à l’inverse, rien n’empêche de créer sur le site principal un contenu dont le slug est celui d’un sous-site existant.
Règle simple : tenez une liste des chemins de vos sous-sites et n’utilisez jamais ces mots comme slug sur le site principal. Certains noms sont de toute façon réservés par WordPress pour les sous-sites (blog, page, files, feed, wp-json…), via la fonction get_subdirectory_reserved_names().
Les anciennes URL
WordPress ne crée pas de redirection quand on change la structure des permaliens. Si le site était déjà indexé avec /blog/…, ajoutez une redirection 301 de /blog/(.*) vers la nouvelle structure (au niveau du serveur ou avec une extension de redirection), puis soumettez à nouveau le sitemap dans la Search Console.
Questions fréquentes
Le préfixe /blog existe-t-il sur un multisite en sous-domaines ?
Non. Il n’est ajouté qu’aux réseaux en sous-répertoires, parce que ce sont les seuls où un article du site principal peut avoir le même chemin qu’un sous-site.
Retirer /blog casse-t-il les sous-sites ?
Pas directement. Le risque est la collision : un article ou une catégorie du site principal qui porte le nom d’un sous-site. Évitez ces slugs et testez les URL après le changement.
Faut-il régénérer les permaliens après la modification ?
Oui. Modifier l’option depuis l’admin réseau ne régénère pas les règles de réécriture : ouvrez Réglages → Permaliens du site principal et enregistrez une fois.
Sources
- WordPress — Before You Create A Network (réseaux par chemins) manuel d’administration avancée
- WordPress — Multisite Network Administration (permaliens en sous-répertoires)
- Trac #12002 — Multisite should not lock the root blog into using a /blog prefix corrigé en 4.4
- Changeset 34749 — interface quand le préfixe /blog est modifié
- get_subdirectory_reserved_names()
- flush_rewrite_rules()
- Code source : wp-admin/options-permalink.php
Documentation et code consultés le 25 septembre 2026 (WordPress 7.1).