🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo arreglar el error 'Allowed memory size exhausted' en PrestaShop

Actualizado el 18 de abril de 2026

¿Qué significa el error "Allowed memory size exhausted"?

Este error es uno de los más comunes en PrestaShop y, por suerte, también de los más fáciles de resolver.

Cuando ves un mensaje como este en tu tienda:

[WARNING] Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /ruta/a/tu/archivo.php on line 123

Lo que te está diciendo PHP es que tu tienda necesita más memoria de la que tiene permitida para ejecutar una tarea concreta. El número grande (134217728 bytes) equivale a 128 MB, que es el límite por defecto en muchos servidores. Si tu PrestaShop tiene muchos módulos, catálogos grandes o usas temas complejos, ese límite se queda corto.


¿Por qué ocurre este error en PrestaShop?

PrestaShop es un software bastante exigente. Entre las causas más frecuentes de este fallo se encuentran:

  • Módulos mal optimizados que consumen mucha memoria.
  • Catálogos muy grandes con miles de productos, combinaciones o imágenes.
  • Temas pesados con muchos scripts y estilos.
  • Actualizaciones incompletas de PrestaShop o de sus módulos.
  • Ajustes de PHP muy bajos en el servidor.
  • Bucle infinito o consulta mal escrita en un módulo o override.

Identificar la causa exacta no siempre es necesario, porque la solución suele ser la misma: aumentar el límite de memoria PHP.


Cómo aumentar la memoria PHP en PrestaShop paso a paso

Vamos a ver varios métodos. Empieza por el más sencillo y ve bajando en complejidad. No necesitas ser un experto en servidores para aplicar la mayoría de ellos.

Método 1: Editar el archivo config/settings.inc.php (o config/defines.inc.php)

Este es el método más rápido y directo para el error memoria PrestaShop.

  1. Accede a tu servidor mediante FTP o el administrador de archivos de tu hosting.
  2. Localiza la carpeta config en la raíz de tu instalación de PrestaShop.
  3. Busca el archivo settings.inc.php (en versiones antiguas) o defines.inc.php (en versiones modernas).
  4. Ábrelo con un editor de texto plano (nada de Word).
  5. Añade esta línea justo después de la primera etiqueta <?php:
ini_set('memory_limit', '512M');
  1. Guarda el archivo y súbelo al servidor si lo estabas editando en local.
  2. Comprueba tu tienda. Si el error persiste, prueba con 1024M en lugar de 512M.

[INFO] Esta línea fuerza a PHP a usar 512 MB de memoria. Es un valor razonable para la mayoría de tiendas PrestaShop sin llegar a ser excesivo.


Método 2: Modificar el archivo php.ini de tu hosting

Si tienes acceso al panel de control de tu hosting, busca el archivo php.ini. A veces está en la raíz de tu cuenta o en una carpeta específica.

  1. Descarga el archivo php.ini y ábrelo con un editor.
  2. Busca la línea que dice memory_limit. Si no existe, créala al final.
  3. Cámbiala o créala así:
memory_limit = 512M
  1. Guarda y sube el archivo.
  2. Reinicia PHP si es necesario (en algunos paneles como cPanel hay un botón para ello).

Si no encuentras el archivo php.ini, puedes crearlo desde cero en la raíz de tu instalación de PrestaShop con el contenido mínimo:

memory_limit = 512M

Método 3: Usar el archivo .htaccess (solo si tu hosting usa Apache)

Este método es muy útil si no tienes acceso al php.ini.

  1. Localiza el archivo .htaccess en la raíz de tu PrestaShop.
  2. Haz una copia de seguridad antes de tocarlo.
  3. Añade estas líneas al principio del archivo:
<IfModule mod_php.c>
php_value memory_limit 512M
</IfModule>
  1. Guarda el archivo.

[WARNING] Este método solo funciona en servidores Apache con mod_php. En servidores Nginx o LiteSpeed, el .htaccess no se ejecuta.


Método 4: Crear un archivo php.ini en la carpeta de PrestaShop

Algunos hostings permiten que cada carpeta tenga su propio php.ini. Esto es útil si tu hosting tiene una configuración central que no puedes tocar.

  1. Crea un archivo nuevo llamado php.ini.
  2. Añade el siguiente contenido:
memory_limit = 512M
  1. Súbelo a la raíz de tu PrestaShop.
  2. Comprueba si el error ha desaparecido.

Si tu hosting usa CGI/FastCGI, es posible que necesites un archivo .user.ini en lugar de php.ini. En ese caso:

memory_limit = 512M

Método 5: Aumentar la memoria desde el panel de control de tu hosting

Si tu hosting tiene un panel tipo cPanel, Plesk o Syspanel (recuerda, el puerto de acceso es el 2106), busca la sección de "Configuración de PHP" o "MultiPHP INI Editor".

  1. Entra en tu panel de control.
  2. Busca "Select PHP Version" o "MultiPHP INI Editor".
  3. Localiza tu dominio.
  4. Cambia el valor de memory_limit a 512M o 1024M.
  5. Guarda los cambios.

[TIP] En Syspanel, el puerto de acceso es el 2106. Si tienes dudas, consulta la documentación de tu hosting.


Método 6: Aumentar la memoria en la configuración de PHP de tu servidor VPS o dedicado

Si gestionas tu propio servidor, estos son los pasos:

Para Ubuntu/Debian con Apache:

  1. Conéctate por SSH.
  2. Ejecuta:
sudo nano /etc/php/7.4/apache2/php.ini

(Reemplaza 7.4 con tu versión de PHP)

  1. Busca memory_limit y cámbialo:
memory_limit = 512M
  1. Guarda (Ctrl+O, luego Enter) y sal (Ctrl+X).
  2. Reinicia Apache:
sudo systemctl restart apache2

Para Ubuntu/Debian con Nginx y PHP-FPM:

sudo nano /etc/php/7.4/fpm/php.ini

Cambia memory_limit y reinicia:

sudo systemctl restart php7.4-fpm

¿Cuánta memoria deberías asignar?

Esto depende del tamaño de tu tienda. Aquí tienes una guía orientativa:

  • Tienda pequeña (menos de 100 productos): 128-256 MB
  • Tienda mediana (100-1000 productos): 256-512 MB
  • Tienda grande (más de 1000 productos): 512 MB - 1 GB
  • Tienda con muchos módulos o tema complejo: 1 GB o más

[WARNING] No asignes memoria de más sin necesidad. Un límite demasiado alto puede ralentizar el servidor si tienes varios sitios web.


Solución avanzada: Comprobar qué módulo o archivo consume la memoria

Si después de aumentar la memoria el error persiste, puede que haya un módulo problemático. Para identificarlo:

  1. Ve a tu panel de administración de PrestaShop.
  2. Entra en "Módulos" > "Administrador de módulos".
  3. Desactiva módulos uno a uno y comprueba si el error desaparece.
  4. Presta especial atención a módulos de caché, SEO, importadores o los que procesan imágenes.

También puedes activar el modo depuración de PrestaShop para ver qué archivo genera el error:

  1. Abre el archivo config/defines.inc.php.
  2. Busca _PS_MODE_DEV_ y cámbialo a true:
define('_PS_MODE_DEV_', true);
  1. Recarga la página que daba error. Ahora verás información detallada sobre el archivo y la línea exacta.

[INFO] No olvides volver a poner _PS_MODE_DEV_ en false cuando termines de depurar, por seguridad.


Preguntas frecuentes (FAQ)

¿Qué significa "Allowed memory size exhausted"?

Significa que PHP ha alcanzado el límite de memoria asignado y no puede continuar ejecutando el script. PrestaShop necesita más memoria de la permitida.

¿Es peligroso aumentar la memoria PHP?

No, siempre que no asignes cantidades excesivas. 512 MB es un valor seguro para la mayoría de servidores. Si tienes varios sitios en el mismo servidor, ten en cuenta la memoria total disponible.

¿Por qué el error aparece solo a veces?

Puede ser por picos de tráfico, operaciones puntuales como generar informes, importar productos o cuando Googlebot rastrea muchas páginas a la vez.

¿Qué hago si ninguno de los métodos funciona?

Prueba a contactar con tu proveedor de hosting. Algunos tienen límites estrictos. También puedes revisar si tienes algún override o clase de terceros que consuma mucha memoria.

¿Puedo evitar que este error ocurra en el futuro?

Sí. Mantén PrestaShop y los módulos actualizados, elimina módulos que no uses, optimiza las imágenes de tu catálogo y revisa periódicamente el rendimiento.


Conclusión

El error "Allowed memory size exhausted" en PrestaShop es molesto, pero casi siempre se soluciona aumentando el límite de memoria PHP. Empieza por el método más sencillo (editar defines.inc.php) y ve probando hasta que desaparezca el error.

Recuerda que la clave está en encontrar un equilibrio: suficiente memoria para que tu tienda funcione sin problemas, pero sin excederte para no perjudicar al servidor.

Si después de aplicar estos cambios el error sigue apareciendo, revisa los módulos instalados y el tema. A veces el problema no es la memoria disponible, sino un código mal optimizado que la consume sin control.

Y si tu hosting usa Syspanel, no lo olvides: el puerto de acceso es el 2106. Ahí podrás encontrar las opciones de configuración de PHP para tu dominio.

¡Tu tienda online estará funcionando sin errores de memoria en poco tiempo!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel