Le message d'erreur « Allowed memory size of X bytes exhausted » figure parmi les erreurs PHP les plus fréquentes sur WordPress. Il signifie simplement qu'une opération a tenté d'utiliser plus de mémoire que la limite autorisée par la configuration PHP, et que l'exécution du script a été interrompue net.
D'où vient cette limite
Le réglage memory_limit définit la quantité maximale de mémoire RAM qu'un script PHP peut consommer pour traiter une seule requête. Cette limite existe pour éviter qu'un script buggé ou mal optimisé ne consomme toute la mémoire disponible du serveur et n'affecte les autres sites ou applications qui y tournent. WordPress, par défaut, demande généralement au moins 40 Mo pour l'administration et 256 Mo recommandés pour un fonctionnement confortable avec des extensions modernes, mais la limite effective dépend de la configuration du serveur.
Où et comment l'augmenter
Plusieurs niveaux de configuration peuvent définir cette limite, et le dernier appliqué a priorité :
- wp-config.php : la ligne define('WP_MEMORY_LIMIT', '256M'); relève la limite pour le site, mais uniquement si la configuration PHP globale du serveur l'autorise.
- php.ini ou .user.ini : le réglage global memory_limit = 256M s'applique à l'ensemble des scripts PHP exécutés sur l'hébergement concerné.
- Le panneau de contrôle d'hébergement : sur la plupart des hébergements mutualisés, la version de PHP et certaines limites se règlent directement depuis l'interface, sans accès aux fichiers de configuration système.
Sur un hébergement mutualisé, une limite maximale est généralement fixée par l'hébergeur pour préserver l'équité de ressources entre les clients partagés ; sur un VPS, vous contrôlez cette limite librement puisque les ressources ne sont pas partagées avec d'autres clients.
Augmenter la limite n'est pas toujours la vraie solution
Relever memory_limit résout le symptôme immédiat, mais pas forcément la cause. Si le site réclame toujours plus de mémoire avec le temps, ou atteint systématiquement une limite déjà généreuse, le vrai problème se trouve souvent ailleurs :
- Trop d'extensions actives simultanément, dont certaines mal codées ou redondantes.
- Un import de données volumineux (produits, articles, images) traité en une seule opération plutôt que par lots.
- Un thème ou un plugin avec une fuite de mémoire, qui consomme toujours plus à chaque mise à jour sans que la fonctionnalité réelle ne le justifie.
Un plugin de diagnostic comme Query Monitor permet d'identifier précisément quelles extensions et quelles requêtes consomment le plus de mémoire, ce qui transforme une augmentation aveugle de la limite en véritable correction du problème sous-jacent.
Le cas particulier des commandes en ligne de commande
Un détail surprend souvent : une opération qui échoue par manque de mémoire dans le navigateur peut très bien réussir en ligne de commande via WP-CLI, et inversement. La raison est simple : la commande php-cli utilisée pour WP-CLI applique généralement sa propre valeur de memory_limit, définie dans un fichier php.ini distinct de celui utilisé par le serveur web, ou directement surchargée par un fichier de configuration dédié à WP-CLI.
Pour une opération lourde ponctuelle (import massif, régénération de toutes les miniatures d'image d'une médiathèque), lancer la commande équivalente via WP-CLI avec une limite de mémoire relevée temporairement (php -d memory_limit=512M $(which wp) ...) évite souvent d'avoir à modifier durablement la configuration globale du site pour un besoin exceptionnel et ponctuel.
Un message d'erreur voisin, parfois confondu avec une saturation de mémoire PHP, concerne en réalité la base de données : une erreur MySQL server has gone away ou un dépassement de max_allowed_packet survient lors du traitement d'une requête ou d'un import trop volumineux pour la configuration du serveur de base de données, un réglage distinct de memory_limit mais qui provoque un symptôme similaire (opération interrompue brutalement) sur des imports de contenu volumineux.
Quelle limite de mémoire PHP est recommandée pour WordPress ?
256 Mo constitue un bon point de départ pour un site avec des extensions courantes (WooCommerce, constructeur de pages, cache). Des besoins plus lourds (import massif, traitement d'image intensif) peuvent justifier davantage, ponctuellement.
Augmenter indéfiniment la limite est-il une bonne pratique ?
Non. Une limite trop haute masque des problèmes de performance sous-jacents et peut, sur un serveur partagé, affecter la stabilité globale si plusieurs sites consomment ainsi sans limite raisonnable. Mieux vaut identifier et corriger la cause réelle de la consommation excessive.
Sur les offres d'hébergement WordPress et VIP de VSP TECH, les limites PHP sont ajustées pour accompagner des sites avec de nombreuses extensions. Pour un projet qui réclame un contrôle total sur ce réglage, un VPS Linux retire toute contrainte liée au partage de ressources.