Table des matières:
Pourquoi cette erreur apparaît-elle sur votre site WordPress ?
L’erreur « Warning: Cannot modify header information » est l’un des messages les plus frustrants pour un utilisateur WordPress. Elle se produit généralement lorsque des en-têtes HTTP sont envoyés avant que WordPress ne puisse les modifier. Cela bloque souvent l’accès à l’administration ou affiche un message d’erreur en haut de vos pages.
Concrètement, le code PHP tente de définir un en-tête (comme un cookie ou une redirection) après que la sortie HTML a déjà commencé. Cela peut être dû à un espace blanc, un caractère invisible, ou une fonction mal placée.
Les causes courantes de l’erreur
1. Espaces blancs ou caractères cachés dans les fichiers
Le plus souvent, l’erreur provient d’espaces ou de lignes vides avant <?php ou après ?> dans les fichiers de configuration comme wp-config.php ou functions.php. Même un simple espace peut déclencher l’envoi prématuré d’en-têtes.
2. Problèmes liés aux plugins ou thèmes
Un plugin ou un thème mal codé peut également générer cette erreur. Par exemple, un appel à header() ou setcookie() après le début de la sortie HTML.
3. Erreurs de configuration du serveur
Parfois, le problème vient des paramètres PHP, comme output_buffering désactivé. Si la mémoire tampon de sortie est désactivée, toute sortie (même un espace) empêche la modification des en-têtes.
Comment diagnostiquer l’origine de l’erreur ?
Avant de chercher une solution, il faut identifier la source. Voici une méthode simple :
- Vérifiez les fichiers récemment modifiés : Si l’erreur est apparue après une mise à jour ou l’installation d’un plugin, commencez par désactiver ce plugin.
- Activez le mode débogage WordPress : Ajoutez
define('WP_DEBUG', true);danswp-config.phppour obtenir plus de détails. - Examinez les fichiers de configuration : Ouvrez
wp-config.phpetfunctions.phpde votre thème avec un éditeur de texte brut (pas un traitement de texte) et cherchez les espaces avant<?php.
Solutions pratiques pour corriger l’erreur
Solution 1 : Supprimer les espaces blancs dans wp-config.php
Ouvrez le fichier wp-config.php via FTP ou le gestionnaire de fichiers de votre hébergement. Assurez-vous qu’il n’y a aucun espace avant la balise <?php ou après la balise ?> (si elle existe). En fait, il est recommandé de supprimer la balise de fermeture ?> à la fin du fichier, car elle n’est pas nécessaire et peut causer ce genre de problème.
Solution 2 : Désactiver les plugins un par un
Si l’erreur persiste, désactivez tous vos plugins via FTP en renommant le dossier /wp-content/plugins/ en plugins_old. Si l’erreur disparaît, réactivez les plugins un par un pour identifier le coupable.
Solution 3 : Vérifier le fichier functions.php du thème
Le fichier functions.php de votre thème actif peut contenir des espaces ou des appels à header() mal placés. Ouvrez-le et vérifiez qu’il commence par <?php sans aucun caractère avant, et qu’il n’y a pas de balise de fermeture ?> à la fin.
Solution 4 : Activer la mémoire tampon de sortie (output buffering)
Vous pouvez forcer l’utilisation de la mémoire tampon en ajoutant cette ligne au début de wp-config.php, juste après <?php :
ob_start();
Cela permet de retarder l’envoi des en-têtes jusqu’à ce que tout le contenu soit prêt.
Solution 5 : Modifier les paramètres PHP (php.ini)
Si vous avez accès au fichier php.ini, vous pouvez y définir output_buffering = On. Sinon, contactez votre hébergeur pour qu’il active cette option.
Tableau récapitulatif des solutions
| Solution | Difficulté | Efficacité |
|---|---|---|
| Supprimer les espaces dans wp-config.php | Facile | Très élevée |
| Désactiver les plugins | Moyenne | Élevée |
| Corriger functions.php | Moyenne | Élevée |
| Activer ob_start() | Facile | Moyenne (solution temporaire) |
| Modifier php.ini | Difficile | Élevée |
Erreurs à éviter absolument
- Ne pas utiliser d’éditeur de texte formaté comme Word pour modifier les fichiers PHP. Utilisez toujours un éditeur de code (Notepad++, Sublime Text, VS Code).
- Ne pas laisser de balise de fermeture PHP dans les fichiers purement PHP (comme
wp-config.php). Supprimez-la systématiquement. - Ne pas ignorer les mises à jour de WordPress, thèmes et plugins, car elles corrigent souvent ce type de bug.
FAQ : Questions fréquentes sur l’erreur Cannot modify header information
1. L’erreur apparaît-elle seulement dans l’administration ?
Non, elle peut aussi s’afficher sur le front-end, selon l’endroit où le problème se produit.
2. Puis-je réparer cette erreur sans accès FTP ?
Si vous avez accès à phpMyAdmin, vous pouvez désactiver les plugins en modifiant la table wp_options. Sinon, contactez votre hébergeur.
3. L’erreur est-elle dangereuse pour mon site ?
Elle n’est généralement pas dangereuse, mais elle peut empêcher l’accès à l’administration et nuire à l’expérience utilisateur.
4. Pourquoi l’erreur persiste-t-elle après avoir supprimé les espaces ?
Il peut y avoir plusieurs sources. Vérifiez également les fichiers de votre thème et de vos plugins, ainsi que le fichier .htaccess.
5. L’activation de ob_start() est-elle une solution permanente ?
Non, c’est un palliatif. Il est préférable de corriger la cause réelle.
Recommandations pour éviter cette erreur à l’avenir
Pour prévenir l’erreur « Cannot modify header information », suivez ces bonnes pratiques :
- Utilisez un thème et des plugins réputés, régulièrement mis à jour.
- Effectuez des sauvegardes régulières avant toute modification.
- Testez les modifications sur un environnement de staging si possible.
- Activez le débogage WordPress uniquement en développement, pas en production.
En appliquant ces conseils, vous réduirez considérablement les risques de rencontrer cette erreur. Si elle survient, vous savez désormais comment la résoudre rapidement.
Photo by Sergio Zhukov on Pexels

Est-ce que cette erreur peut être liée à un certificat SSL mal configuré ?
Pas directement. L’erreur ‘Cannot modify header information’ est liée à la sortie PHP avant les en-têtes. Cependant, une redirection HTTP vers HTTPS mal faite pourrait causer une erreur similaire, mais ce serait un autre message.
J’ai désactivé tous les plugins via FTP et l’erreur a disparu. Maintenant, comment savoir quel plugin est en cause sans tout réactiver ?
Réactivez les plugins un par un en renommant leur dossier dans /wp-content/plugins/. Après chaque réactivation, testez votre site. Le plugin qui déclenche l’erreur sera vite identifié.
Je ne trouve pas la balise ?>, dans mon wp-config.php elle n’existe pas. Est-ce normal ?
Oui, c’est tout à fait normal et même recommandé. Si la balise de fermeture est absente, vous ne risquez pas d’avoir d’espaces après. Vérifiez plutôt le début du fichier pour tout espace avant
Merci pour cet article très clair ! J’ai réussi à résoudre l’erreur en supprimant les espaces dans wp-config.php. Je ne savais pas qu’un simple espace pouvait causer ça.
Content que cela vous ait aidé ! En effet, un espace avant
Super article ! J’ai eu cette erreur après avoir modifié functions.php. J’avais oublié de supprimer un espace après ?>. Merci pour le conseil.
Exact, c’est un piège classique. Avec functions.php, veillez à ne pas avoir de balise de fermeture du tout, cela évite les problèmes d’en-têtes.
Article très utile, merci ! Une question : le mode débogage WordPress, ça ne ralentit pas le site ?
Non, le mode débogage n’affecte les performances que si vous avez beaucoup d’erreurs. Activez-le uniquement le temps de diagnostiquer, puis désactivez-le en passant WP_DEBUG à false.
Je viens de passer mon site en HTTPS et j’ai cette erreur partout. Pourtant, je n’ai touché à aucun fichier. Une idée ?
Parfois, le plugin de cache ou de redirection peut être en cause. Essayez de vider le cache et de désactiver temporairement les plugins de redirection. Vérifiez aussi que votre site n’est pas en boucle de redirection.
Et si on a déjà essayé toutes ces solutions sans succès ? Y a-t-il d’autres pistes ?
Vous pouvez vérifier le fichier .htaccess ou contacter votre hébergeur pour activer l’output_buffering dans php.ini. Parfois, le problème vient d’une redirection mal configurée.