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

Solución al error 'Fatal error: Allowed memory size exhausted' en PrestaShop

Actualizado el 21 de noviembre de 2025

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

Si estás leyendo esto, es muy probable que hayas visto una pantalla en blanco o un mensaje de error similar a este en tu tienda online:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /home/tuusuario/public_html/classes/Product.php on line 245

No te preocupes, es uno de los errores más comunes en PrestaShop y, aunque parece muy técnico, tiene una explicación sencilla y, sobre todo, una solución clara. Este error significa que tu tienda necesita más memoria PHP de la que tiene asignada para ejecutar una tarea concreta (como generar una página de producto, procesar un módulo o actualizar el catálogo).

Piensa en la memoria PHP como el espacio de trabajo que tiene tu servidor para "pensar" y hacer cálculos. Si le das una tarea muy grande (como cargar una página con muchos productos o ejecutar un módulo pesado) y el espacio es pequeño, se agota y el servidor lanza el error memoria PrestaShop.

Las causas más frecuentes suelen ser:

  • Un módulo mal optimizado o desactualizado.
  • Una versión de PrestaShop demasiado antigua.
  • Un servidor con límites de memoria muy bajos.
  • Un catálogo de productos extremadamente grande.
  • Plugins de caché mal configurados.

A continuación, te explico paso a paso cómo solucionarlo, desde lo más sencillo hasta lo más avanzado.


1. Lo primero: aumenta el límite de memoria PHP desde el panel de administración

Antes de tocar archivos de configuración, PrestaShop tiene una opción interna para intentar aumentar la memoria. Esta es la vía más rápida y no requiere conocimientos técnicos avanzados.

Pasos para aumentarla desde el Back Office:

  1. Accede a tu panel de administración de PrestaShop (normalmente en www.tutienda.com/admin1234).
  2. Ve al menú Parámetros avanzados (o "Advanced Parameters").
  3. Haz clic en Rendimiento (o "Performance").
  4. Busca la opción Límite de memoria (o "Memory limit").
  5. En el desplegable, selecciona un valor más alto, por ejemplo, 256M o incluso 512M.
  6. Guarda los cambios.

[TIP] Si no encuentras esta opción o no te deja cambiarla, significa que tu servidor tiene un límite máximo impuesto por la configuración de PHP. En ese caso, pasa al siguiente paso.


2. Aumentar la memoria PHP desde el archivo config/settings.inc.php

Si el paso anterior no funciona, tendremos que tocar un archivo de configuración directamente. Este es un método muy fiable y el más recomendado por los expertos.

Cómo hacerlo:

  1. Conéctate a tu hosting mediante el Administrador de Archivos del panel de control (cPanel, Syspanel, etc.) o mediante FTP con un cliente como FileZilla.
  2. Localiza la carpeta raíz de tu PrestaShop (donde están las carpetas classes, config, controllers, etc.).
  3. Busca el archivo llamado settings.inc.php dentro de la carpeta config.
  4. Descarga una copia de seguridad de este archivo (esto es crucial por si algo sale mal).
  5. Edita el archivo con un editor de texto plano (como el Bloc de notas o Notepad++).
  6. Busca la línea que contiene define('_PS_MEMORY_LIMIT_' y cámbiala por la siguiente:
define('_PS_MEMORY_LIMIT_', '512M');
  1. Guarda el archivo y súbelo de nuevo al servidor (si lo estabas editando en local).

[WARNING] Si no encuentras esa línea, puedes añadirla justo antes de la línea que dice /* Improve PHP configuration to prevent issues */. El resultado final debería ser similar a este:

define('_PS_MEMORY_LIMIT_', '512M');
define('_PS_MEMORY_LIMIT_', '512M');

[INFO] Esto le dice a PrestaShop que intente usar hasta 512 MB de memoria. Si el servidor lo permite, el error debería desaparecer.


3. La solución definitiva para el error memoria PrestaShop: editar el php.ini

Si el error persiste, el problema está en la configuración global de PHP de tu servidor. Aquí es donde realmente se define el límite de memoria PHP.

¿Qué es php.ini?

Es el archivo de configuración principal de PHP en tu servidor. Controla desde el tamaño máximo de subida de archivos hasta el límite de memoria.

Pasos para modificarlo:

  1. Accede al Administrador de Archivos de tu hosting o por FTP.
  2. Busca el archivo php.ini en la raíz de tu cuenta o en la carpeta pública (public_html).
  3. Si no existe, crea uno nuevo con el Bloc de notas.
  4. Dentro del archivo, añade o modifica la siguiente línea:
memory_limit = 512M
  1. Guarda los cambios y sube el archivo si es necesario.

¿Dónde está el archivo php.ini?

  • En cPanel: Busca la sección "MultiPHP INI Editor".
  • En Syspanel: Ve a "Configuración de PHP" o busca la opción para editar php.ini. Recuerda que el acceso a Syspanel es a través del puerto 2106 (por ejemplo, https://tudominio.com:2106).

[TIP] Si no encuentras el archivo, también puedes crear un archivo llamado .user.ini en la raíz de tu tienda y añadir la misma línea. Este archivo es específico para tu cuenta y no afecta a otros sitios del servidor.


4. Aumentar la memoria PHP desde el archivo .htaccess

Este es otro de los métodos más efectivos, especialmente si no tienes acceso al php.ini. El archivo .htaccess es un archivo de configuración que afecta al servidor web Apache.

Cómo hacerlo:

  1. Localiza el archivo .htaccess en la raíz de tu PrestaShop.
  2. Descarga una copia de seguridad antes de tocarlo.
  3. Edítalo con un editor de texto.
  4. Añade las siguientes líneas al principio del archivo:
<IfModule mod_php7.c>
    php_value memory_limit 512M
</IfModule>

<IfModule mod_php.c>
    php_value memory_limit 512M
</IfModule>
  1. Guarda los cambios y vuelve a subir el archivo.

[WARNING] Si estás usando PHP 8.0 o superior, el módulo puede llamarse mod_php8.c o similar. La primera línea con mod_php7.c debería funcionar en la mayoría de los casos, pero si no, prueba con mod_php.c o consulta con tu proveedor de hosting.


5. Solución avanzada: usar ini_set() en el archivo index.php

Si todo lo anterior falla, podemos forzar el aumento de memoria desde el propio código de PrestaShop. Este método es un "parche" pero funciona muy bien.

Pasos:

  1. Abre el archivo index.php que está en la raíz de tu tienda.
  2. Al principio del archivo, justo después de la apertura de <?php, añade esta línea:
ini_set('memory_limit', '512M');
  1. Guarda el archivo.

[INFO] Este comando le dice a PHP que aumente el límite de memoria solo para esa ejecución. Si el error ocurre en un archivo específico (como classes/Product.php), también puedes añadir la misma línea al principio de ese archivo, pero no es recomendable a largo plazo.


6. ¿Qué valor de memoria debo elegir?

No hay una respuesta única. Depende del tamaño de tu tienda y de los módulos que uses. Aquí tienes una guía orientativa:

  • 128M: Es el valor por defecto en muchos servidores. Suficiente para tiendas pequeñas con pocos módulos.
  • 256M: Recomendado para tiendas medianas con varios módulos activos.
  • 512M: Ideal para tiendas grandes, con catálogos extensos y módulos pesados.
  • 1G o más: Solo necesario para catálogos enormes o sitios con mucho tráfico.

[TIP] No te limites a poner el máximo. Si tu tienda funciona bien con 256M, no necesitas más. Un valor demasiado alto puede ralentizar el servidor si tienes otros sitios web en el mismo hosting.


7. Otras causas del error y cómo prevenirlas

A veces, el error no es solo por el límite de memoria, sino por un problema subyacente. Aquí tienes algunas causas comunes y sus soluciones:

a) Módulos mal optimizados

Un módulo defectuoso puede consumir mucha memoria. Para detectarlo:

  1. Ve a Módulos > Módulos y servicios.
  2. Desactiva todos los módulos no esenciales.
  3. Comprueba si el error desaparece.
  4. Reactiva los módulos uno a uno hasta encontrar el culpable.

b) Caché mal configurada

Una caché corrupta puede generar errores de memoria. Ve a Parámetros avanzados > Rendimiento y:

  • Activa la caché si no está activa.
  • Limpia la caché de tu navegador y la caché de PrestaShop.

c) Versión de PHP desactualizada

Una versión antigua de PHP (como PHP 5.6) es menos eficiente y consume más memoria. Actualiza a PHP 8.0 o superior desde el panel de tu hosting.

d) Base de datos fragmentada

Una base de datos grande y fragmentada puede ralentizar las consultas y consumir más memoria. Utiliza la herramienta de Mantenimiento > Base de datos en el Back Office para optimizar las tablas.


8. Preguntas frecuentes (FAQ)

¿Cuál es el límite de memoria recomendado para PrestaShop?

Para una tienda estándar, 256M es un buen punto de partida. Si tu tienda es grande o usas muchos módulos, 512M es lo más seguro.

¿Aumentar la memoria PHP puede dañar mi servidor?

No, siempre que no pongas un valor excesivo (como 4G). Un valor razonable (256M-512M) es seguro y no afectará a otros sitios en el mismo servidor.

¿Por qué sigo viendo el error después de aumentar la memoria?

Puede que el servidor tenga un límite máximo impuesto por el proveedor de hosting. Si has probado todos los métodos anteriores y sigue fallando, contacta con tu proveedor y pídeles que aumenten el memory_limit a nivel de servidor.

¿Este error puede afectar a mi posicionamiento SEO?

Sí, indirectamente. Si el error ocurre con frecuencia, Google puede ver tu sitio como inestable y reducir tu posicionamiento. Además, una tienda que muestra errores tiene una mala experiencia de usuario, lo que aumenta la tasa de rebote.

¿Cómo puedo saber cuánta memoria está usando mi tienda?

Puedes instalar un módulo de monitoreo o revisar los logs de error del servidor. En el Back Office, ve a Parámetros avanzados > Información para ver los detalles de tu servidor.


9. Conclusión final

El error memoria PrestaShop es un problema común, pero con solución. No te asustes. Sigue estos pasos en orden:

  1. Prueba desde el Back Office.
  2. Edita settings.inc.php.
  3. Modifica php.ini.
  4. Usa .htaccess.
  5. Aplica el parche con ini_set().

Y recuerda: siempre haz una copia de seguridad de los archivos antes de editarlos. Si después de probar todo sigue sin funcionar, contacta con tu proveedor de hosting. Ellos tienen acceso a la configuración global y podrán ayudarte a aumentar memoria PHP PrestaShop sin riesgo.

[INFO] Si tu hosting es Syspanel, recuerda que el acceso se realiza a través del puerto 2106. Dentro de Syspanel, busca la sección de "Configuración de PHP" para editar el php.ini de forma gráfica.

Espero que este artículo te haya sido de ayuda. Si tienes más dudas, déjalas en los comentarios y estaré encantado de ayudarte. ¡Tu tienda online volverá a funcionar 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