
📅 Publicado el 17 de septiembre, 2026 · Por Equipo RedServicio
¿Qué significa el error de memoria agotada en PHP?
Si has visto el mensaje «Fatal Error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)», tu script está intentando consumir más memoria de la que PHP permite por defecto. El famoso error de memoria agotada en PHP aparece mucho en WordPress, WooCommerce, Moodle y cualquier aplicación que maneje imágenes grandes, montañas de datos o consultas pesadas a la base de datos.
Lo bueno: casi siempre tiene solución rápida. Lo malo: si solo subes el límite y no investigas qué lo provocó, volverá. Y volverá en el peor momento posible, eso sí. Aquí va cómo diagnosticarlo, resolverlo y prevenirlo.
Causas más comunes del error «Allowed memory size exhausted»
Antes de tocar nada de configuración, merece la pena entender por qué se agota la memoria:
- Plugins o temas mal optimizados: un plugin con un bucle infinito o que carga miles de registros de golpe puede comerse toda la memoria disponible.
- Imágenes de gran tamaño: redimensionar una foto de 20 MP en memoria puede requerir 80 MB o más. PHP trabaja con los píxeles descomprimidos, no con el archivo comprimido. Ese detalle sorprende a mucha gente.
- Consultas a la base de datos sin paginar: cargar 50.000 registros en un array de una sola vez agota los recursos rápidamente.
- Límite de memoria demasiado bajo: algunos hostings vienen con 64 MB o 128 MB por defecto, insuficiente para una tienda con muchos productos.
- Fugas de memoria (memory leaks): variables que acumulan datos dentro de bucles largos sin liberarse nunca.
Cómo aumentar el límite de memoria en PHP: 4 métodos
1. Editar el archivo php.ini
El método más directo, si tienes acceso al servidor. Busca (o añade) la directiva memory_limit:
memory_limit = 256M
Guarda y reinicia Apache (o PHP-FPM si usas Nginx):
sudo systemctl restart apache2
2. Usar el archivo .htaccess (hosting compartido con Apache)
¿Sin acceso al php.ini? Añade esta línea al principio de tu .htaccess:
php_value memory_limit 256M
Si el servidor responde con un error 500, tu hosting no permite sobrescribir la directiva. Toca hablar con soporte.
3. Mediante wp-config.php en WordPress
WordPress tiene su propia directiva de memoria. Añade esto antes de la línea /* That’s all, stop editing! */:
define(‘WP_MEMORY_LIMIT’, ‘256M’);
define(‘WP_MAX_MEMORY_LIMIT’, ‘512M’);
La primera afecta al frontend; la segunda, a la zona de administración, donde suelen ejecutarse las tareas pesadas (importaciones, actualizaciones, ese tipo de cosas).
4. Desde el propio código con ini_set
Para scripts concretos que sabes que necesitan más recursos:
ini_set(‘memory_limit’, ‘512M’);
Con moderación, eso sí. Está pensado para tareas puntuales (generar un informe, procesar un archivo grande), no como parche permanente.
Cómo diagnosticar qué está consumiendo la memoria
Subir el límite trata el síntoma. La causa hay que buscarla:
- Activa el registro de errores: configura error_log en tu php.ini y revisa qué archivo y línea provocan el fallo.
- Aísla el plugin culpable: en WordPress, desactiva todos los plugins y actívalos uno a uno hasta reproducir el error. Tedioso, pero funciona.
- Usa Query Monitor: este plugin gratuito muestra el consumo de memoria por plugin, consulta y hook.
- Mide el uso en tiempo real: añade echo memory_get_usage(true); en puntos clave del script para localizar el pico de consumo.
- Revisa los procesos en segundo plano: wp-cron y las tareas programadas son sospechosos habituales cuando el error aparece de forma intermitente.
Buenas prácticas para optimizar el consumo de memoria
Paginar las consultas a la base de datos
En lugar de cargar todos los registros de golpe, procesa en lotes. En WordPress, por ejemplo, usa get_posts() con el parámetro numberposts y bucles con offset, o WC_Product_Query con paginación en WooCommerce.
Libera variables grandes
Usa unset($variable) cuando ya no necesites arrays u objetos voluminosos, sobre todo dentro de bucles largos. En procesos muy intensivos puedes llamar a gc_collect_cycles() para forzar al recolector de basura.
Procesa imágenes por líneas
Al subir imágenes grandes, usa Imagick en lugar de GD cuando sea posible: gestiona mejor la memoria con archivos pesados. Y limita las dimensiones máximas de subida.
Evita cargar librerías completas si solo usas una función
Los autoloaders como Composer cargan clases bajo demanda; asegúrate de no incluir archivos masivos con require en cada ejecución si no hacen falta.
Preguntas frecuentes
¿Cuánta memoria necesita WordPress? El mínimo recomendado es 128 MB, aunque 256 MB es hoy el estándar para sitios con WooCommerce o page builders.
¿Aumentar la memoria ralentiza mi web? No directamente. El límite es un techo, no una reserva: PHP solo consume lo que necesita.
¿El error puede indicar un hackeo? En raras ocasiones, sí. Código malicioso inyectado puede consumir memoria. Si el error aparece sin que hayas cambiado nada, escanea la instalación con herramientas como Wordfence o ClamAV.
Conclusión
El error de memoria agotada en PHP tiene solución casi siempre. Primero identifica el origen: logs, aislar plugins, revisar scripts. Después ajusta el límite, con 256 MB como punto de partida razonable. Y por último, optimiza el código (consultas paginadas, variables liberadas) para que no vuelva. Un límite generoso nunca sustituye a un código eficiente; me he encontrado más de una web «arreglada» con 1 GB de memoria que en realidad escondía un plugin rogando ser desinstalado. Y si tu hosting actual limita estas directivas o no te deja tocar la configuración de PHP, quizá sea momento de cambiar a un proveedor que te dé control real: en RedServicio ofrecemos hosting con límites de memoria configurables, versiones de PHP actualizadas y soporte técnico 24/7 para resolver este tipo de errores en minutos, no en días.
Equipo RedServicio
Artículos escritos y revisados por nuestro equipo técnico especializado en hosting e infraestructura web en España.
¿Listo para un hosting de verdad?
Servidores en España · Soporte 24/7 en español · Migración gratuita
Ver Planes desde 3,95€/mes →