Tu sitio WordPress muestra de repente una página en blanco, un error crítico o un mensaje parecido a este:
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes) in /home/ton-site/wp-includes/...
La cifra cambia de un sitio a otro (134217728, 268435456, 536870912 según tu límite actual), pero el mensaje es siempre el mismo: PHP ya no tiene suficiente memoria para ejecutar lo que tu sitio le pide. En las versiones recientes de WordPress, a veces solo verás «Ha habido un error crítico en este sitio web», es la misma causa escondida tras un mensaje más educado.
Casi siempre ocurre en el peor momento: durante la instalación de un plugin, una importación de WooCommerce, la subida de una imagen pesada o justo después de una actualización. El servidor alcanza su techo y se detiene en seco.
Llevo más de 10 años haciendo mantenimiento de WordPress y este error aparece cada semana en al menos un sitio. En el 90 % de los casos se resuelve en menos de 10 minutos una vez que sabes dónde mirar. En el 10 % restante, un plugin está funcionando en bucle y el problema está en otra parte. Esta guía cubre ambos casos.
- Comprueba tu límite de memoria actual (Herramientas > Salud del sitio > Info > Servidor)
- Aumenta el valor según tu alojamiento (o2switch, OVH, otro)
- Si el error vuelve a pesar de tener memoria suficiente, la causa es un plugin
En la gran mayoría de los casos, el paso 2 basta. La guía completa está a continuación.
Empieza por comprobar tu límite de memoria actual
Antes de modificar nada, mira lo que tu servidor ya asigna. En tu escritorio de WordPress, ve a Herramientas > Salud del sitio > Info, y despliega la sección Servidor. Busca la línea Límite de memoria PHP.
Si ves 64M o 128M, has encontrado tu problema. Si ya ves 512M o más y el error persiste, la memoria no es la causa. Probablemente un plugin funciona en bucle y consume todo lo que le des, sea cual sea el valor. En ese caso, salta directamente a la sección «Cuando aumentar la memoria no basta».
Para darte una referencia, estos son los valores adecuados según tu instalación. Estos valores suponen que usas PHP 8.1 como mínimo. Si todavía estás en PHP 7.4, cuenta con un 20 a 30 % más de memoria consumida para el mismo sitio. Es una buena razón para actualizar PHP si aún no lo has hecho.
| Tipo de instalación | Memoria recomendada |
|---|---|
| WordPress + tema ligero | 256M |
| WordPress + WooCommerce | 512M |
| WordPress + page builder (Elementor, Avada, Divi…) | 512M |
| WooCommerce + page builder | 1024M como mínimo |
| WooCommerce + page builder + plugins de terceros pesados | 1024M a 2048M |
Aumentar la memoria PHP según tu alojamiento
El método a utilizar depende directamente de tu alojamiento. No todos los métodos funcionan en todas partes y algunos simplemente se ignoran según la configuración del servidor. Esto es lo que funciona de verdad, proveedor por proveedor.
o2switch: Seleccionar una versión de PHP en cPanel
Es el método más fiable en o2switch y el que utilizo sistemáticamente en los sitios de clientes que mantengo con este proveedor. Desde tu cPanel, escribe Seleccionar una versión de PHP en la barra de búsqueda de arriba o encuéntralo en la sección Software. Este ajuste se aplicará a todos los dominios del alojamiento. En la pestaña Opciones, modifica el valor de memory_limit según la tabla anterior.
El cambio es inmediato, no hace falta vaciar la caché ni reiniciar nada. Para comprobar que se ha aplicado, vuelve a Herramientas > Salud del sitio > Info > Servidor en tu WordPress. La línea Límite de memoria PHP debe mostrar el nuevo valor.
OVH / OVHcloud: un límite fijado por el proveedor
En el alojamiento compartido de OVH, no eliges tú mismo el límite de memoria. OVH indica que el archivo php.ini no se puede modificar en sus planes de alojamiento web y que la configuración de PHP es común a toda su infraestructura compartida.
El archivo .ovhconfig, en la raíz de tu alojamiento, solo sirve para elegir la versión de PHP, el motor PHP, el entorno (producción o desarrollo) y la imagen del servidor. Una línea php.memory_limit añadida a este archivo no tiene ningún efecto.
Si el límite de tu plan no basta, empieza por buscar la extensión que consume demasiado (ver más abajo). Si tu sitio necesita realmente más, hay que pasar a un plan más potente: pide al soporte de OVH el límite de cada fórmula.
Otros proveedores: el archivo .user.ini
Si tu proveedor no ofrece una interfaz específica, el método universal en alojamiento compartido es el archivo .user.ini. Crea este archivo en la raíz de tu sitio (donde está wp-config.php) y añade simplemente:
memory_limit = 256M
Este archivo lo lee directamente PHP en modo CGI/FastCGI, que es la configuración estándar de todos los alojamientos compartidos. El cambio surte efecto en unos minutos.
Para otros proveedores habituales:
- Hostinger : hPanel > Avanzado > Configuración PHP, modifica memory_limit directamente.
- Infomaniak : panel de administración > Alojamiento Web > PHP > Configuración.
- SiteGround : Site Tools > Devs > PHP Manager, pestaña PHP Variables.
wp-config.php: solo como complemento
Encontrarás a menudo esta solución en primer lugar en los tutoriales. Consiste en añadir a wp-config.php:
define('WP_MEMORY_LIMIT', '256M');Lo que hace realmente esta línea: indica a WordPress cuánta memoria puede pedir a PHP. Pero PHP no puede superar el límite que le impone tu servidor. Si tu proveedor limita a 128M y pones 256M en wp-config.php, WordPress verá 256M en sus ajustes internos pero PHP seguirá deteniéndose en 128M.
Es, por tanto, útil como complemento de una modificación en el servidor, para asegurarte de que WordPress utiliza toda la memoria disponible. Pero no sustituye a los métodos anteriores.
Para aumentar también la memoria en la administración de WordPress (útil sobre todo en las importaciones de WooCommerce), añade debajo:
define('WP_MAX_MEMORY_LIMIT', '512M');Cuando aumentar la memoria no basta
Intervengo con regularidad en sitios donde el cliente ya ha subido la memoria a 1024M, o incluso 2048M, sin resultado. El error vuelve sistemáticamente. En esos casos no es un problema de límite: es un plugin o un script que funciona en bucle y consume todo lo que se le da, sea cual sea el valor configurado.
Para identificar al culpable, el método es sencillo:
- Desactiva todos tus plugins renombrando la carpeta por SFTP.
wp-content/pluginsaplugins-off - Recarga tu sitio. Si el error desaparece, la causa es un plugin.
- Vuelve a poner el nombre original de la carpeta y desactiva después los plugins uno a uno desde la administración hasta encontrar al culpable.
- Si el error persiste incluso sin plugins, prueba con un tema predeterminado de WordPress (Twenty Twenty-Four).
Para acelerar el diagnóstico, activa los registros de WordPress y consulta el archivo wp-content/debug.log. Verás exactamente qué archivo desencadena el error y en qué línea. Mi guía sobre cómo encontrar los registros de WordPress te explica cómo hacerlo.
Si tu sitio muestra otro mensaje de error, también explico cómo corregir el error Maximum execution time exceeded y el error 413 Request Entity Too Large.
Para ir más lejos, puedes consultar la página de WordPress sobre los errores más comunes (en inglés).
¿Hay que cambiar de proveedor o de plan?
Si tienes que subir la memoria PHP a 2 GB solo para que un sitio WordPress funcione, y a pesar de ello el error vuelve con regularidad, el problema ya no es la memoria. Tres pistas a examinar en este orden:
- Audita tus plugins. Un plugin mal programado puede saturar por sí solo un servidor bien dimensionado. Es el caso más frecuente que me encuentro en mantenimiento.
- Comprueba tu versión de PHP. Un sitio en PHP 7.4 consume notablemente más que uno en PHP 8.2 u 8.3. La actualización suele ser la primera palanca antes de cambiar de proveedor.
- Solo después, mira tu proveedor. Si estás en un alojamiento compartido low-cost y tu sitio es una tienda WooCommerce activa, quizá hayas alcanzado los límites estructurales del plan. En ese caso, pasar a un plan con más recursos asignados (el Cloud de o2switch, por ejemplo) resolverá el problema de raíz.
En resumen: antes de pagar más, comprueba qué consume realmente la memoria en tu sitio actual.
¿Tu sitio sigue dando error?
Si a pesar de los pasos de esta guía el error persiste, suele ser señal de un problema más profundo (plugin defectuoso, tema dañado, script malicioso). Intervengo a distancia para identificar la causa exacta y volver a poner tu sitio en línea.
Y si quieres evitar pasar por este tipo de situación en cada actualización, echa un vistazo a mi mantenimiento WordPress. Existe exactamente para eso.
Evitar que el error vuelva
Una vez corregido el error, algunos reflejos para no volver a caer en él:
- Limita el número de plugins activos. Cada plugin añade peso. Desactiva los que no uses realmente.
- Optimiza tus imágenes antes de subirlas. Las imágenes sin comprimir consumen mucha memoria cuando PHP las procesa. Una herramienta como Squoosh o un plugin como Imagify cumple su función.
- Actualiza PHP. Las versiones inferiores a 8.0 consumen notablemente más memoria que las recientes. Consulta mi guía para actualizar PHP en WordPress.
- Limpia tu base de datos con regularidad. Una base de datos recargada de revisiones, transients caducados o registros de plugins puede provocar picos de memoria al cargar.
- Vigila las actualizaciones. Una actualización fallida de un plugin o de un tema suele ser el detonante de la primera aparición de este error.
Preguntas frecuentes
Sobre la autora: Jennifer
Artículos relacionados