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

Solucionar el error 'Fatal error: Allowed memory size' en PrestaShop (DirectAdmin)

Actualizado el 28 de febrero de 2026

¿Qué significa "Fatal error: Allowed memory size"?

Este es uno de los errores más comunes en PrestaShop y, aunque el mensaje asuste, tiene una solución bastante sencilla. Básicamente, lo que te está diciendo el sistema es que tu tienda necesita más memoria de la que tiene asignada para ejecutar una tarea concreta.

Piensa en la memoria como el espacio de trabajo de tu tienda. Si estás cocinando y solo tienes una mesa muy pequeña para preparar una receta enorme, al final no te cabe todo. Pues con PrestaShop pasa exactamente igual: si el código necesita más espacio del que tiene, se detiene y te muestra ese error.

El mensaje completo suele aparecer así:

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

No te asustes con los números. Lo importante es que entiendas que hay una solución clara y que puedes aplicarla tú mismo siguiendo esta guía.


¿Por qué aparece este error en mi PrestaShop?

Existen varias razones por las que tu tienda puede quedarse sin memoria. Las más habituales son:

  • Módulos mal optimizados: algunos módulos consumen muchísima memoria, especialmente los de importación masiva, generación de informes o los que hacen llamadas externas.
  • Imágenes demasiado pesadas: si subes imágenes de varios megabytes sin optimizar, PrestaShop necesita memoria para procesarlas.
  • Temas mal configurados: algunos temas cargan demasiados scripts o hacen peticiones innecesarias.
  • PHP con límite bajo: el valor por defecto en muchos servidores es de 128M (134217728 bytes, que es lo que sale en el mensaje). Para una tienda moderna, esto suele ser insuficiente.
  • Plugins de caché o SEO mal configurados: a veces, los plugins de caché consumen más memoria de la que liberan.

Soluciones paso a paso para DirectAdmin

Vamos a ir de la solución más sencilla a la más avanzada. Empieza siempre por la primera y ve comprobando si el error desaparece.

Paso 1: Aumentar el memory_limit desde el Panel de Control (DirectAdmin)

Esta es la solución más rápida y la que funciona en la mayoría de los casos. DirectAdmin te permite modificar los parámetros de PHP sin necesidad de tocar archivos manualmente.

  1. Accede a tu panel de DirectAdmin con tus credenciales de administrador.
  2. Busca la sección "Configuración de PHP" o "PHP Settings". Según la versión de DirectAdmin, puede estar dentro de "Gestión de dominios" o como una opción independiente.
  3. Selecciona tu dominio (el de tu tienda PrestaShop).
  4. Busca el parámetro memory_limit.
  5. Cámbialo a un valor más alto. Te recomendamos empezar por 256M y si el error persiste, subirlo a 512M.
  6. Guarda los cambios.

[TIP] Si no encuentras la opción exacta, busca en la documentación de tu hosting o contacta con tu proveedor. Algunos paneles lo llaman "PHP Selector" o "MultiPHP Manager".

Después de guardar, reinicia PHP o espera unos minutos y prueba de nuevo tu tienda. En muchos casos, con este simple cambio el error desaparece por completo.

Paso 2: Modificar el archivo php.ini (si tienes acceso)

Si DirectAdmin no te permite cambiar el valor desde el panel o prefieres hacerlo manualmente, puedes editar el archivo php.ini. Este archivo contiene la configuración global de PHP.

  1. Localiza tu archivo php.ini. Normalmente está en la raíz de tu cuenta o en una carpeta llamada etc. Si no lo ves, puedes crearlo en la raíz de tu dominio (donde está la carpeta public_html).
  2. Abre el archivo con un editor de texto (desde el Administrador de Archivos de DirectAdmin o con un cliente FTP).
  3. Busca la línea que dice memory_limit = 128M.
  4. Cámbiala por memory_limit = 512M.
  5. Guarda el archivo.

[WARNING] Si creas un php.ini nuevo, asegúrate de que el archivo tenga permisos 644. Si no sabes qué es esto, déjalo como está y usa el Administrador de Archivos de DirectAdmin, que lo configura automáticamente.

Paso 3: Añadir la configuración en el archivo .htaccess

Esta es una solución muy práctica porque no necesitas buscar el php.ini. Solo tienes que añadir unas líneas al archivo .htaccess que ya existe en la raíz de tu tienda.

  1. Accede al Administrador de Archivos de DirectAdmin.
  2. Ve a la carpeta public_html (o donde tengas instalado PrestaShop).
  3. Busca el archivo .htaccess. Si no lo ves, activa la opción de "Mostrar archivos ocultos".
  4. Haz una copia de seguridad de este archivo antes de modificarlo.
  5. Abre el archivo y añade estas líneas al principio:
<IfModule mod_php7.c>
    php_value memory_limit 512M
    php_value max_execution_time 300
</IfModule>

Si tu servidor usa PHP 8, cambia mod_php7.c por mod_php8.c. Si no estás seguro, puedes usar esta versión más genérica:

<IfModule mod_php.c>
    php_value memory_limit 512M
    php_value max_execution_time 300
</IfModule>
  1. Guarda el archivo y prueba tu tienda.

[INFO] Este método solo funciona si tu hosting usa PHP como módulo de Apache. Si usa PHP-FPM (que es lo más habitual hoy en día), esta solución no tendrá efecto y deberás usar el Paso 1 o el Paso 2.

Paso 4: Crear un archivo php.ini personalizado en la raíz

Si las opciones anteriores no funcionan, puedes crear un archivo php.ini específico para tu tienda. Esto es útil porque no afecta a otros sitios que tengas en el mismo hosting.

  1. Ve a la raíz de tu dominio (donde está public_html).
  2. Crea un archivo nuevo llamado php.ini.
  3. Añade dentro:
memory_limit = 512M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M
  1. Guarda el archivo y verifica que tenga permisos 644.

[TIP] Si tienes varios dominios, cada uno puede tener su propio php.ini. Así puedes darle más memoria solo a la tienda que la necesita.

Paso 5: Configurar PrestaShop desde el propio back-office

PrestaShop también tiene su propio archivo de configuración donde puedes forzar el límite de memoria. Esto es útil si no quieres tocar nada del servidor.

  1. Accede al panel de administración de PrestaShop.
  2. Ve a Parámetros avanzados > Rendimiento.
  3. Busca la sección "Límites de memoria" o "Memory limit".
  4. Introduce el valor 512M (o el que necesites).
  5. Guarda los cambios.

[WARNING] Esta opción no siempre está disponible en todas las versiones de PrestaShop. Si no la encuentras, usa cualquiera de los otros métodos.


Solución al error 500 en PrestaShop

El error de memoria a veces se manifiesta como un error 500 en lugar del mensaje completo. Esto ocurre cuando PHP no puede mostrar el error directamente (por ejemplo, cuando está activado el modo de producción).

Si ves un error 500 y sospechas que es por memoria, sigue estos pasos:

  1. Activa el modo depuración temporalmente. Ve a config/defines.inc.php y busca esta línea:
define('_PS_MODE_DEV_', false);

Cámbiala a:

define('_PS_MODE_DEV_', true);
  1. Recarga tu tienda. Ahora verás el error completo en pantalla, que te dirá si es realmente un problema de memoria.
  2. Aplica las soluciones anteriores para aumentar el límite.
  3. Vuelve a poner _PS_MODE_DEV_ en false una vez resuelto el problema.

[WARNING] No dejes el modo depuración activado en producción. Muestra información sensible de tu servidor a cualquier visitante.


Consejos para prevenir futuros errores de memoria

Una vez que hayas solucionado el error, es buena idea tomar algunas precauciones para que no vuelva a aparecer:

  • Optimiza las imágenes: usa herramientas como Photoshop, GIMP o servicios online para reducir el peso de tus imágenes antes de subirlas. Un buen tamaño para la web es entre 100KB y 300KB por imagen.
  • Desactiva módulos que no uses: cada módulo activo consume memoria, aunque no lo estés usando en ese momento.
  • Actualiza PrestaShop y los módulos: las versiones nuevas suelen estar mejor optimizadas y consumir menos recursos.
  • Usa un buen sistema de caché: activa la caché de PrestaShop y considera usar módulos como LiteSpeed Cache o el caché nativo.
  • Revisa el log de errores: DirectAdmin te permite ver los logs de error de PHP. Revísalos de vez en cuando para detectar problemas antes de que se conviertan en errores visibles.

Preguntas frecuentes (FAQ)

¿Cuánta memoria necesito para PrestaShop?

Depende del tamaño de tu catálogo y del número de visitas. Para una tienda pequeña (menos de 500 productos), 128M suele ser suficiente. Para una tienda mediana (500-2000 productos), te recomendamos 256M. Para tiendas grandes o con muchos módulos, 512M o más.

¿Puedo poner un valor demasiado alto?

Técnicamente sí, pero no es recomendable. Si pones memory_limit a -1 (que significa ilimitado), podrías saturar el servidor si tienes varios procesos ejecutándose a la vez. Es mejor ir subiendo poco a poco hasta que el error desaparezca.

¿Qué pasa si después de subir a 512M sigue el error?

Puede que el problema no sea solo la memoria. Revisa si hay algún módulo que esté fallando. Desactiva los módulos uno a uno para identificar al culpable, o contacta con el desarrollador del módulo o tu proveedor de hosting.

¿El error afecta a mis clientes?

Sí, cuando aparece el error, la página se bloquea y muestra el mensaje o un error 500. Esto puede hacer que los clientes abandonen la compra, así que es importante solucionarlo cuanto antes.

¿Puedo usar Syspanel en lugar de DirectAdmin?

Si tu hosting usa Syspanel (antes conocido como HestiaCP), el proceso es muy similar. Accede a tu panel en el puerto 2106 (por ejemplo, https://tudominio.com:2106) y busca las opciones de configuración de PHP dentro de tu dominio. El resto de pasos son idénticos.


Conclusión

El error de memoria en PrestaShop es molesto, pero tiene solución en la mayoría de los casos con solo subir el límite de memoria. Como has visto, hay varias formas de hacerlo y no necesitas ser un experto técnico para aplicar ninguna de ellas.

Nuestra recomendación es que empieces por el Paso 1 (DirectAdmin) y si no funciona, pruebes con el Paso 3 (.htaccess). En el 90% de los casos, uno de estos dos resolverá el problema.

Si después de probar todo el error persiste, puede que haya un problema más profundo con algún módulo o tema. En ese caso, no dudes en contactar con tu proveedor de hosting o con un desarrollador especializado en PrestaShop.

Recuerda: siempre haz una copia de seguridad de tus archivos antes de modificarlos. Es mejor perder cinco minutos en una copia que horas tratando de recuperar tu tienda.


[TIP FINAL] Anota en un papel los cambios que hagas. Si algún día el error vuelve a aparecer (por ejemplo, después de una actualización), sabrás exactamente qué valores usaste y podrás aplicarlos de nuevo rápidamente.

¿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