Dans 90 % des cas, l’erreur « The package could not be installed. The theme is missing the style.css stylesheet » signifie que vous avez uploadé le mauvais fichier ZIP : le paquet parent téléchargé depuis ThemeForest ou un autre marketplace, qui contient la documentation, les fichiers de démo et la licence, au lieu du ZIP installable du thème lui-même. WordPress cherche un fichier style.css avec un en-tête valide à la racine de l’archive, ne le trouve pas, et bloque l’installation. La réparation tient en deux minutes : dézippez le paquet parent sur votre ordinateur, récupérez le ZIP du thème qui se trouve à l’intérieur, puis réinstallez-le. Ce guide couvre ce scénario majoritaire et les quatre autres causes possibles, avec un arbre de diagnostic précis pour chaque situation, y compris quand le site est déjà cassé.
D’où vient l’erreur « the stylesheet is missing » ?
Le fichier style.css est la carte d’identité d’un thème WordPress. Ce n’est pas seulement une feuille de style : son commentaire d’en-tête déclare le nom du thème, sa version, son auteur et, pour un thème enfant, le thème parent. Au moment de l’installation, WordPress ouvre l’archive ZIP et cherche ce fichier à la racine du dossier du thème. S’il est absent, mal placé ou si son en-tête est illisible, l’installation échoue avec le message « The theme is missing the style.css stylesheet » — ou sa version française : « Le thème ne dispose pas de feuille de style style.css ».
La même vérification s’applique aux thèmes déjà présents sur le serveur. Si vous transférez un thème par FTP et que style.css manque, WordPress l’affiche dans Apparence → Thèmes avec la mention « Thème cassé » (broken theme). Et si c’est le thème actif qui perd son style.css, votre site peut afficher une page blanche ou une erreur critique WordPress. La bonne nouvelle : dans tous les cas, la cause est mécanique et se répare sans toucher à la base de données.
Arbre de diagnostic : identifiez votre cas en 30 secondes
Répondez à ces questions dans l’ordre, chacune renvoie à la section correspondante :
- L’erreur apparaît en installant un thème acheté (ThemeForest, Elegant Themes, TemplateMonster…) ? → Cas n°1 : vous avez uploadé le ZIP parent.
- L’erreur apparaît en installant un thème enfant que vous avez créé ou téléchargé ? → Cas n°2 : l’en-tête
Template:est mal renseigné. - Le site est cassé après un transfert FTP ou une migration ? → Cas n°3 : dossier incomplet ou uploadé au mauvais niveau.
- Le fichier style.css existe mais WordPress ne le reconnaît pas ? → Cas n°4 : en-tête corrompu ou absent.
- Vous développez un thème bloc avec theme.json ? → Cas n°5 : theme.json ne remplace pas style.css.
Si votre site est déjà hors service, allez d’abord à la section rollback en fin d’article pour réactiver un thème par défaut, puis revenez au diagnostic.
Cas n°1 : thème acheté — vous avez uploadé le ZIP parent
C’est le scénario ultra-majoritaire. Sur ThemeForest et la plupart des marketplaces, le bouton « Download All files » livre un paquet global du type themeforest-12345678-montheme.zip. Ce paquet contient la documentation, les fichiers PSD, les données de démo… et, quelque part à l’intérieur, le vrai ZIP installable du thème. Si vous envoyez le paquet global dans Apparence → Thèmes → Ajouter → Téléverser un thème, WordPress ne trouve aucun style.css à la racine et rejette l’archive.
Avant d’uploader, inspectez le contenu du ZIP. Sur macOS ou Linux, la commande unzip -l liste les fichiers sans rien extraire :
unzip -l themeforest-12345678-montheme.zip
# Mauvais signe : pas de style.css à la racine
# documentation/
# demo-content/
# licensing/
# montheme.zip <-- c'est CE fichier qu'il faut installer
# montheme-child.zip
La règle est simple : le ZIP installable doit contenir un unique dossier portant le nom du thème, avec style.css directement dedans. Voici la structure attendue :
montheme.zip
└── montheme/
├── style.css <-- obligatoire, à ce niveau exactement
├── functions.php
├── index.php (ou templates/ pour un thème bloc)
└── assets/, inc/, etc.
Marche à suivre : dézippez le paquet parent sur votre ordinateur, repérez le sous-dossier souvent nommé theme/, installable/ ou upload/, prenez le ZIP du thème qui s’y trouve, et téléversez celui-là. Et si vous re-zippez vous-même, zippez le dossier du thème, pas un dossier qui le contient.
Cas n°2 : thème enfant — l’en-tête Template mal renseigné
Un thème enfant peut n’avoir que deux fichiers, mais son style.css doit impérativement déclarer le champ Template:, qui pointe vers le nom du dossier du thème parent — pas son nom d’affichage. Si vous écrivez Template: Twenty Twenty-Five au lieu de Template: twentytwentyfive, WordPress considère le parent introuvable et signale un thème cassé, ou refuse l’archive avec l’erreur stylesheet is missing si l’en-tête est absent.
Voici l’en-tête minimal fonctionnel d’un style.css de thème enfant :
/*
Theme Name: Mon Thème Enfant
Template: twentytwentyfive
Version: 1.0.0
*/
Trois vérifications à faire : le champ Template correspond exactement au nom du dossier parent dans wp-content/themes/ (respectez la casse, tout en minuscules en général) ; le thème parent est bien installé sur le site ; et le commentaire commence à la toute première ligne du fichier, sans espace ni caractère invisible avant /*. Pour un thème classique (non enfant), seul Theme Name: est strictement obligatoire — mais il doit être là.
Cas n°3 : site cassé après un transfert FTP ou une migration
Deuxième grande famille de causes : le transfert manuel. Deux erreurs classiques produisent le même symptôme.
Transfert incomplet. Votre client FTP a perdu la connexion en cours de route et style.css fait partie des fichiers manquants. Comparez le nombre de fichiers locaux et distants dans votre client (FileZilla affiche les transferts échoués dans l’onglet dédié), puis relancez le transfert des fichiers manquants en écrasant l’existant.
Mauvais niveau de dossier. Vous avez envoyé les fichiers du thème directement dans wp-content/themes/, ou au contraire créé un niveau de trop. La structure correcte sur le serveur est celle-ci :
wp-content/
└── themes/
└── montheme/
├── style.css <-- ici, pas ailleurs
├── functions.php
└── ...
# Faux : wp-content/themes/style.css (un niveau trop haut)
# Faux : wp-content/themes/montheme/montheme/style.css (un niveau trop bas)
Le second cas piège beaucoup de monde après une extraction locale : le ZIP crée un dossier, vous le glissez dans un dossier du même nom déjà créé sur le serveur, et style.css se retrouve deux niveaux sous themes/. WordPress ne le voit pas. Déplacez simplement le contenu du dossier imbriqué d’un niveau vers le haut, rechargez Apparence → Thèmes, et le thème réapparaît. Si le tableau de bord est inaccessible, voyez comment accéder à wp-admin même en cas de pépin, ou passez directement par le rollback ci-dessous.
Cas n°4 : style.css présent mais en-tête corrompu ou absent
Plus rare, mais réel : le fichier existe au bon endroit et WordPress le rejette quand même. Ouvrez-le et vérifiez l’en-tête. Pour être reconnu, il doit contenir au minimum :
/*
Theme Name: Mon Thème
Author: Gabriel Tamboise
Version: 1.0.0
*/
Les causes de corruption les plus fréquentes :
- Encodage exotique ou BOM. Un fichier enregistré en UTF-16 ou avec un BOM parasite peut rendre l’en-tête illisible. Ré-enregistrez en UTF-8 sans BOM depuis VS Code (barre de statut → encodage).
- Commentaire abîmé. Une minification ou un « nettoyage » automatique a supprimé le bloc de commentaire. Restaurez l’en-tête à la main : WordPress ne lit que ce commentaire, pas le CSS qui suit.
- Fichier vide ou tronqué. Un éditeur de fichiers de l’hébergeur qui a mal enregistré, un quota disque atteint pendant l’écriture. Vérifiez la taille du fichier : 0 octet = re-transfert obligatoire.
- Permissions trop restrictives. Un
style.cssen 000 ou appartenant au mauvais utilisateur est illisible pour PHP. Remettez le fichier en 644.
Cas n°5 : thèmes blocs — theme.json ne remplace pas style.css
Idée reçue tenace chez les développeurs qui se lancent dans les thèmes blocs et Full Site Editing : puisque theme.json pilote désormais les réglages et les styles globaux, style.css serait devenu optionnel. C’est faux. Un thème bloc valide exige toujours deux fichiers : style.css avec son en-tête (même si le fichier ne contient aucune règle CSS) et templates/index.html. Le theme.json est fortement recommandé, mais il ne sert pas de carte d’identité au thème.
Si vous générez un thème bloc à la main ou via un outil comme Create Block Theme et que WordPress refuse l’archive, vérifiez donc en premier que style.css existe à la racine avec au moins la ligne Theme Name:. Un thème bloc minimal complet tient en trois fichiers : style.css, templates/index.html et theme.json.
Site hors service ? Rollback vers un thème par défaut
Si c’est le thème actif qui a perdu son style.css (suppression accidentelle, transfert raté), votre priorité n’est pas de réparer le thème mais de remettre le site debout. Trois méthodes, de la plus simple à la plus robuste.
1. Via wp-admin (s’il répond encore) : Apparence → Thèmes, activez Twenty Twenty-Five ou n’importe quel thème par défaut présent. Le site refonctionne immédiatement, vous réparez le thème fautif à tête reposée.
2. Via WP-CLI (si vous avez un accès SSH) — c’est la méthode la plus rapide, et une bonne raison de garder WP-CLI dans votre boîte à outils :
# Lister les thèmes installés et repérer le thème cassé
wp theme list
# Activer un thème par défaut
wp theme activate twentytwentyfive
# S'il n'est pas installé :
wp theme install twentytwentyfive --activate
3. Via FTP (ni wp-admin ni SSH) : renommez le dossier du thème cassé dans wp-content/themes/ (par exemple montheme → montheme-off). WordPress détecte la disparition du thème actif et bascule automatiquement sur un thème par défaut s’il en trouve un. S’il n’y en a aucun, téléversez le dossier de Twenty Twenty-Five (téléchargé depuis wordpress.org) dans themes/, puis activez-le depuis wp-admin redevenu accessible.
Une fois le site stabilisé, reprenez l’arbre de diagnostic pour corriger la cause racine, testez le thème réparé, puis réactivez-le.
FAQ : stylesheet is missing
Pourquoi WordPress dit que style.css est manquant alors que je le vois dans le ZIP ?
Parce qu’il n’est pas au bon niveau. WordPress exige style.css directement dans le premier dossier de l’archive. S’il est enfoui dans un sous-dossier (montheme/theme/style.css) ou à la racine du ZIP sans dossier conteneur, la vérification échoue. Inspectez l’archive avec unzip -l et re-zippez le dossier du thème lui-même.
Cette erreur peut-elle casser mon site en production ?
L’erreur à l’installation est sans danger : WordPress rejette simplement l’archive, rien n’est modifié. En revanche, si le style.css du thème actif disparaît ou est corrompu, le site peut devenir inaccessible. Dans ce cas, activez un thème par défaut via wp-admin, WP-CLI (wp theme activate twentytwentyfive) ou en renommant le dossier du thème par FTP.
Un thème bloc avec theme.json a-t-il quand même besoin de style.css ?
Oui. Le theme.json gère les styles et réglages globaux, mais l’en-tête de style.css reste le seul mécanisme par lequel WordPress identifie un thème. Un thème bloc valide contient au minimum style.css (avec Theme Name:) et templates/index.html.
Le vendeur du thème est-il en cause ?
Rarement. Dans l’immense majorité des cas, le paquet livré est correct : c’est le ZIP parent qui a été uploadé au lieu du ZIP installable qu’il contient. La documentation du vendeur indique toujours quel fichier téléverser. Si le ZIP installable est réellement défectueux, ouvrez un ticket au support avec la sortie de unzip -l.
Sources et références
- Theme Handbook — developer.wordpress.org : structure d’un thème et en-tête obligatoire de style.css
- Documentation officielle WordPress : installation et gestion des thèmes
- Forums de support WordPress.org : fils de discussion sur l’erreur « missing the style.css stylesheet »
- Blog Kinsta : guides de dépannage des erreurs d’installation de thèmes
- WPBeginner : tutoriels sur la réparation de l’erreur stylesheet is missing
- Theme Handbook : main stylesheet (style.css) : identifier le ZIP installable dans un paquet de thème acheté
Commentaires (0)
Laisser un commentaire
Les commentaires sont modérés. Questions WordPress, cybersécurité ou dev web bienvenues.