Cómo solucionar el error de memoria en PrestaShop
¿Qué es el error de memoria en PrestaShop y por qué aparece?
Si estás leyendo esto, probablemente has visto un mensaje como "Fatal error: Allowed memory size of X bytes exhausted" mientras trabajabas en tu tienda PrestaShop. No te preocupes, es uno de los errores más comunes y, con la guía adecuada, lo solucionarás en pocos pasos.
Este error de memoria en PrestaShop ocurre cuando el script que está ejecutando tu tienda (por ejemplo, al instalar un módulo, subir productos o generar un sitemap) intenta usar más memoria RAM de la que tiene permitida por defecto en tu servidor. Piensa en la memoria como el espacio de trabajo temporal que necesita tu tienda para funcionar. Si el límite es muy bajo, el sistema se "ahoga" y muestra el error.
Las causas más frecuentes son:
- Un límite PHP demasiado bajo en tu servidor.
- Módulos o temas que consumen muchos recursos.
- Una versión de PrestaShop que requiere más memoria que la configurada.
- Imágenes o catálogos muy grandes que se procesan en lote.
[INFO] El valor recomendado para PrestaShop 1.7 y 8.x es de al menos 128 MB, aunque 256 MB es lo ideal para tiendas con muchos productos o módulos pesados.
Cómo identificar el error de memoria en PrestaShop
Antes de solucionarlo, asegúrate de que realmente es un problema de límite PHP. El error típico se ve así en el panel de administración o en el front-end:
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 20480 bytes) in /ruta/a/tu/tienda/classes/... on line XX
También puede aparecer como:
- "Memory size error" al instalar un módulo.
- La página se queda en blanco (pantalla blanca de la muerte).
- El proceso de importación de productos se detiene.
Si ves estos síntomas, el siguiente paso es revisar el límite actual de PHP en tu tienda. Puedes hacerlo desde el back office de PrestaShop: ve a Parámetros avanzados > Información y busca "memory_limit". Si ves un valor como 64M o 32M, es casi seguro que esa es la causa.
Soluciones paso a paso para aumentar el límite PHP en PrestaShop
A continuación, te explico los métodos más efectivos para solucionar el error memoria PrestaShop. Ordénalos del más fácil al más técnico.
1. Aumentar el límite desde el archivo .htaccess (recomendado para principiantes)
Este método funciona en la mayoría de servidores compartidos y es muy sencillo.
- Accede a tu hosting mediante FTP o el administrador de archivos de tu panel.
- Busca el archivo
.htaccessen la raíz de tu tienda PrestaShop (normalmente en la carpetapublic_htmlowww). - Descarga una copia de seguridad por si acaso.
- Abre el archivo con un editor de texto (Bloc de notas, Sublime Text, etc.).
- Agrega estas líneas al principio del archivo, justo después de la línea
RewriteEngine On:
<IfModule mod_php7.c>
php_value memory_limit 256M
php_value max_execution_time 300
</IfModule>
Si tu servidor usa PHP 8.x, cambia mod_php7.c por mod_php8.c. Si no estás seguro, puedes probar con ambas.
- Guarda los cambios y sube el archivo de nuevo.
- Verifica el cambio en el back office (Parámetros avanzados > Información).
[TIP] Si tu hosting usa LiteSpeed, prueba con
<IfModule Litespeed>en lugar demod_php7.c.
2. Modificar el archivo php.ini (más control)
Si tienes acceso al archivo php.ini de tu servidor, esta es la opción más directa.
- Localiza el archivo
php.ini(suele estar en la raíz del hosting o en una carpeta comoetc/php/). - Busca la línea
memory_limity cámbiala a:
memory_limit = 256M
Si no existe, agrega la línea al final del archivo.
- Guarda y reinicia el servicio PHP (si tienes acceso) o contacta a tu hosting para que lo hagan.
[WARNING] En algunos hostings compartidos no puedes modificar el php.ini directamente. En ese caso, prueba con el .htaccess o contacta al soporte técnico.
3. Usar el archivo php.ini personalizado en la raíz de PrestaShop
Algunos hostings permiten crear un php.ini local en la carpeta de tu tienda.
- Crea un archivo llamado
php.inien la raíz de tu instalación de PrestaShop (donde está elindex.php). - Agrega el siguiente contenido:
memory_limit = 256M
max_execution_time = 300
post_max_size = 64M
upload_max_filesize = 64M
- Guarda y comprueba si el cambio se refleja en la información de PrestaShop.
4. Configurar desde el panel de control (Syspanel u otros)
Si tu hosting usa Syspanel (antes conocido como HestiaCP), el puerto de acceso es el 2106. Para modificar el límite PHP:
- Ingresa a tu Syspanel (por ejemplo:
https://tudominio.com:2106). - Ve a Web > Dominios y selecciona tu dominio.
- Busca la sección PHP Settings o Configuración PHP.
- Aumenta el valor de
memory_limita 256M (o el que necesites). - Guarda los cambios.
[INFO] Si no ves esta opción, contacta a tu proveedor de hosting para que lo ajuste desde el servidor.
5. Solución avanzada: editar el archivo config/defines.inc.php de PrestaShop
Este método es para casos extremos o cuando los anteriores no funcionan.
- Ve a la carpeta
configde tu instalación de PrestaShop. - Abre el archivo
defines.inc.php. - Busca la línea que dice
define('_PS_MEMORY_LIMIT_', '128M');. - Cámbiala a
define('_PS_MEMORY_LIMIT_', '256M');. - Guarda el archivo.
[WARNING] Este método solo afecta a PrestaShop, no al servidor. Si el límite del servidor es menor, no funcionará. Primero asegúrate de que el servidor permita al menos 256M.
¿Qué hacer si el error persiste después de aumentar el límite?
Si ya aumentaste el límite PHP PrestaShop y el error continúa, prueba lo siguiente:
- Desactiva módulos sospechosos: Ve a Módulos > Administrador de módulos y desactiva los que no uses o los que instalaste recientemente. A veces un módulo mal programado consume memoria sin control.
- Revisa el tema: Cambia temporalmente al tema predeterminado (Classic) para descartar que el problema sea del diseño.
- Aumenta el límite aún más: Si tu hosting lo permite, prueba con 512M o incluso 1G. Algunas tiendas con muchos productos o procesos batch necesitan más.
- Optimiza las imágenes: Usa herramientas como TinyPNG para reducir el peso de las fotos antes de subirlas.
- Actualiza PrestaShop y los módulos: Las versiones antiguas pueden tener fugas de memoria que ya se corrigieron.
Preguntas frecuentes (FAQ) sobre el error de memoria en PrestaShop
¿Cuál es el límite de memoria recomendado para PrestaShop 1.7?
Para PrestaShop 1.7 y 8.x, se recomienda 256 MB como mínimo. Si tienes muchos módulos o productos, 512 MB es más seguro.
¿Puedo aumentar el límite de memoria sin acceso al servidor?
Sí, probando los métodos del archivo .htaccess o el php.ini local. Si no funcionan, contacta a tu hosting.
¿El error de memoria afecta la velocidad de mi tienda?
Sí, un límite bajo puede causar ralentizaciones, páginas en blanco o errores al guardar productos. Aumentarlo suele mejorar la estabilidad.
¿Cómo sé cuánta memoria está usando mi tienda?
Puedes instalar módulos de monitoreo o revisar los logs de error de tu hosting. También desde el back office, en Parámetros avanzados > Información, ves el límite actual.
¿Es peligroso aumentar demasiado el límite de memoria?
En teoría no, pero si tu servidor tiene poca RAM física, podrías saturarlo. Lo normal es empezar con 256M y subir gradualmente si es necesario.
¿Qué hago si mi hosting no me permite modificar nada?
Cambia de hosting. Un buen proveedor debe permitirte ajustar estos parámetros básicos. Si no, busca uno compatible con PrestaShop.
Consejos finales para evitar futuros errores de memoria
- Mantén todo actualizado: PrestaShop, módulos, tema y PHP.
- Elimina módulos que no uses: Cada módulo consume recursos aunque esté desactivado.
- Usa una CDN para imágenes: Reduce la carga en tu servidor.
- Programa tareas pesadas en horas de bajo tráfico: Como importaciones o generación de sitemaps.
- Contrata un hosting optimizado para PrestaShop: No todos los hostings compartidos son adecuados para tiendas grandes.
[TIP] Si después de todo sigues teniendo problemas, considera migrar a un VPS o servidor dedicado donde tengas control total sobre los recursos.
Espero que esta guía te haya ayudado a solucionar el error memoria PrestaShop. Recuerda que la clave es ir paso a paso, empezando por lo más sencillo. Si tienes dudas, no dudes en consultar a tu proveedor de hosting o a un técnico especializado. ¡Tu tienda merece funcionar sin problemas!
