UA-51298262-10 Skip to main content
WordPress

Solucionar error memoria agotada PHP

By julio 30, 2026No Comments
Solucionar error memoria agotada PHP

El temido error memoria agotada PHP (Allowed memory size exhausted) suele aparecer de la nada. Un script intenta procesar más datos de los que el servidor le permite y, de golpe, todo se detiene. Es una medida de seguridad. Si no existiera, un solo proceso podría comerse todos los recursos del sistema y colapsar el servidor completo. El problema es que para gestores de contenido como WordPress o aplicaciones complejas, el límite predeterminado (a menudo 128MB o menos) se queda corto. Cargas plugins pesados, importas bases de datos o procesas unas cuantas imágenes de alta resolución, y el límite salta.

¿Por qué ocurre el error de memoria agotada?

Para solucionar un problema, primero hay que entender su raíz. PHP tiene una directiva llamada memory_limit. Define la cantidad máxima de memoria en bytes que un script puede reservar. Cuando el código intenta asignar memoria y supera este umbral, el intérprete detiene la ejecución de inmediato. Lanza el error fatal y punto.

Las causas más frecuentes incluyen:

  • Plugins o temas mal optimizados: Código ineficiente que realiza bucles infinitos o carga objetos innecesarios en la memoria RAM.
  • Procesamiento de imágenes: Bibliotecas como GD o ImageMagick requieren mucha memoria para redimensionar fotografías de alta calidad.
  • Consultas a la base de datos ineficientes: Recuperar miles de registros de golpe sin paginación.
  • Configuración estricta del servidor: Valores predeterminados en php.ini que son demasiado bajos para aplicaciones modernas.

Método 1: Editar el archivo wp-config.php (Recomendado para WordPress)

Si tu sitio web funciona bajo WordPress, la forma más segura y eficaz de aumentar el límite es editando el archivo wp-config.php. Este método tiene prioridad sobre otras configuraciones del servidor y se aplica específicamente al núcleo de WordPress.

Debes acceder a tu servidor vía FTP, SSH o gestor de archivos y ubicar el archivo wp-config.php en la raíz de tu instalación. Ábrelo con un editor de texto y busca la línea que dice:

/* That’s all, stop editing! Happy publishing. */

Justo antes de esa línea, inserta el siguiente código:

define( 'WP_MEMORY_LIMIT', '256M' );

Este comando le indica a WordPress que intente elevar el límite de memoria PHP a 256 MB. Ojo, esto solo funcionará si tu proveedor de hosting permite que los scripts PHP superen la configuración base del servidor. Si la configuración del servidor está bloqueada a 128M, no podrás forzar un límite superior mediante este método.

Método 2: Modificar el archivo php.ini

Para usuarios con acceso a un VPS, servidor dedicado o planes de hosting que permiten modificar la configuración global, editar el archivo php.ini es la solución más directa. Este archivo controla el comportamiento de PHP en el servidor.

La ubicación varía según el sistema operativo y la versión, pero rutas comunes incluyen /etc/php/8.1/apache2/php.ini o /etc/php.ini. Si no estás seguro de la ruta, puedes crear un archivo info.php con el contenido <?php phpinfo(); ?> para ver la configuración cargada.

Dentro de php.ini, busca la siguiente línea:

memory_limit = 128M

Cámbiala por un valor mayor, dependiendo de los recursos de tu servidor:

memory_limit = 256M

Es crucial reiniciar el servicio web o PHP-FPM después de guardar los cambios para que la nueva configuración surta efecto. Puedes hacerlo con el comando:

service apache2 restart

o

service php-fpm restart

Creando un php.ini personalizado

Si estás en un entorno de hosting compartido y no tienes acceso al archivo principal, a veces puedes crear un archivo llamado php.ini dentro del directorio de tu sitio web (public_html) y añadir la línea:

memory_limit = 256M

Esto puede sobrescribir la configuración global únicamente para tu cuenta, aunque depende de la configuración de seguridad del servidor (suPHP o suExec deben estar habilitados).

Método 3: Usar el archivo .htaccess

El archivo .htaccess se utiliza para configuraciones a nivel de directorio en servidores Apache. Si no puedes tocar el php.ini ni el wp-config.php, este es tu siguiente mejor intento. Es particularmente útil si el error ocurre solo en una sección específica del sitio.

Edita o crea el archivo .htaccess en la raíz de tu sitio y añade la siguiente línea al final del archivo:

php_value memory_limit 256M

Advertencia importante: Si al añadir esta línea recibes un «Error 500 Internal Server Error», significa que tu hosting tiene deshabilitada la posibilidad de cambiar valores de PHP mediante .htaccess. En ese caso, debes eliminar la línea inmediatamente y probar otro método.

Método 4: Ajuste desde el script PHP

Si eres desarrollador y el error ocurre en un script propio o un plugin específico, puedes modificar el límite de memoria en tiempo de ejecución utilizando la función ini_set. Esto es útil si solo necesitas mucha memoria para una tarea pesada puntual, como una importación masiva, pero quieres mantener el límite bajo para el resto del sitio.

Añade esto al principio de tu script PHP:

ini_set('memory_limit', '512M');

Esto intentará elevar el límite a 512 MB solo mientras se ejecuta ese archivo en particular. Ten en cuenta que, al igual que con wp-config.php, si el servidor tiene el límite «bloqueado» o «hardened», este cambio será ignorado por el sistema operativo.

Diagnóstico y verificación

Después de aplicar cualquiera de los cambios anteriores, es fundamental verificar que el nuevo límite está activo. No confíes solo en que el error haya desaparecido; asegúrate de la configuración real.

En WordPress, puedes instalar un plugin que muestre el estado del sistema o, si prefieres hacerlo manualmente, instala temporalmente el script info.php mencionado anteriormente. Busca la entrada memory_limit en la tabla generada. Si muestra el nuevo valor (ej. 256M), el cambio ha sido exitoso.

Si el valor no cambia a pesar de editar los archivos, es muy probable que tu proveedor de hosting tenga bloqueada la modificación de estos parámetros. En este escenario, la única vía es contactar al soporte técnico para que realicen el cambio desde la configuración del servidor principal.

Consejos para prevenir el agotamiento de memoria

Aumentar el límite de memoria es una solución de parche; resolver el problema de fondo es la estrategia correcta a largo plazo. Si necesitas constantemente aumentar la memoria, es probable que tengas un problema de optimización.

  • Desactiva plugins innecesarios: Cuantos más plugins tengas activos, más memoria se consume en cada carga de página. Revisa tu lista y desactiva aquellos que no uses.
  • Utiliza un tema ligero: Los temas repletos de constructores visuales y opciones requieren más recursos. Un tema optimizado como Hello Elementor o un tema por defecto de WordPress consume mucha menos memoria.
  • Optimiza las imágenes: No subas imágenes de 5MB directamente. Comprímelas antes de subirlas o utiliza plugins de optimización de imágenes que reduzcan su peso sin perder calidad visible.
  • Actualiza todo: Las nuevas versiones de WordPress, PHP y los plugins suelen incluir mejoras de rendimiento y correcciones de fugas de memoria.

Preguntas Frecuentes

¿Cuál es el límite de memoria recomendado para WordPress?
Para un sitio estándar con unos 10-15 plugins, 256MB es un punto de partida seguro. Tiendas WooCommerce grandes pueden requerir 512MB o más.

¿Es seguro poner el límite a -1 (ilimitado)?
No es recomendable. Establecer memory_limit a -1 elimina la protección. Si un script entra en un bucle infinito o tiene una fuga de memoria, podría consumir toda la RAM del servidor y congelar todos los servicios alojados en él.

Conclusión

Enfrentarse al error memoria agotada PHP puede ser frustrante, pero es un problema bien documentado con soluciones claras. La clave es identificar el método que tiene prioridad en tu entorno: wp-config.php para usuarios de WordPress, php.ini para administradores de servidores, o .htaccess para configuraciones específicas de Apache. Recuerda siempre reiniciar los servicios web después de cambiar archivos de configuración del servidor. Si después de intentar estos métodos el problema persiste, es posible que estés ante un problema de código en un plugin o tema defectuoso, o que los recursos de tu plan de hosting sean simplemente insuficientes para el tráfico y funcionalidades de tu sitio web.

En RedServicio (redservicio.net) entendemos que la gestión técnica de un servidor puede volverse compleja. Si necesitas ayuda profesional para optimizar tu servidor, ajustar la configuración de PHP o resolver errores críticos que afectan a tu presencia online, nuestro equipo de expertos está listo para asistirte. No dejes que los errores técnicos detengan tu proyecto; contacta con nosotros y recibe la asistencia técnica que necesitas.