Resolución del error de pantalla blanca de la muerte (WSOD) aumentando la memoria

La pantalla blanca de la muerte (WSOD) en WordPress suele ser consecuencia de errores fatales de PHP, agotamiento de memoria o conflictos entre plugins y temas. En este artículo, explicaré de forma técnica y práctica cómo identificar si el WSOD se debe a memoria insuficiente y cómo aumentarla de forma segura, con ejemplos reales, comandos y comprobaciones para servidores compartidos, VPS y entornos gestionados.

¿Por qué el WSOD puede estar ligado a límites de memoria?

WordPress ejecuta PHP y todas las extensiones, plugins y temas compiten por el mismo pool de memoria asignado a PHP. Cuando un proceso supera memory_limit o las funciones de WordPress consumen más memoria de la esperada (por ejemplo durante importaciones, copias de seguridad o procesos de imagen), PHP aborta la ejecución y el resultado puede ser una página en blanco. Otras causas pueden coexistir (errores de sintaxis, extensiones faltantes), por eso es clave validar antes de inflar recursos.

Comprobaciones iniciales: cómo diagnosticar que es un problema de memoria

1. Habilita el modo debug de WordPress

Edite wp-config.php y active el debug para capturar errores que muestren el motivo exacto:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false); // evita mostrar errores en producción

Esto generará wp-content/debug.log con mensajes útiles sobre errores fatales y límites de memoria.

2. Revisa los logs de PHP y del servidor

Busca entradas de tipo «Allowed memory size of X bytes exhausted» en los logs. Ejemplos de comandos:

tail -n 200 /var/log/apache2/error.log
# o
grep -i "memory" /var/log/php_errors.log || true

3. Comprueba el límite actual de memoria PHP

Desde línea de comandos:

php -r "echo ini_get('memory_limit').PHP_EOL;"

O crea un archivo phpinfo() y busca memory_limit. Para documentación sobre esta directiva, consulta PHP.net memory_limit.

Métodos seguros para aumentar la memoria en WordPress

Existen varias formas de aumentar la memoria. El método apropiado depende del tipo de hosting y del control que tengas sobre la configuración de PHP.

1. Modificar wp-config.php (recomendado como primer paso)

Añade estas líneas antes de /* That's all, stop editing! Happy publishing. */:

define('WP_MEMORY_LIMIT', '256M');
// Para procesos de administración más exigentes
define('WP_MAX_MEMORY_LIMIT', '512M');

WP_MEMORY_LIMIT solicita a WordPress asignar más memoria para peticiones normales; WP_MAX_MEMORY_LIMIT se aplica a tareas administrativas (cron, actualizaciones). No obstante, esto depende de la configuración de PHP del servidor: si memory_limit de PHP es menor, prevalecerá.

2. Ajustar php.ini (si tienes acceso)

Localiza el php.ini usado por tu servidor (puedes ver su ruta en phpinfo()) y modifica:

memory_limit = 512M

Después reinicia PHP-FPM o el servicio web: systemctl restart php8.1-fpm o similar. Para más detalles sobre directivas PHP, consulta la documentación de PHP.net.

3. Usar .user.ini o .htaccess cuando php.ini no es accesible

En entornos compartidos, puedes intentar:

# .user.ini
memory_limit = 512M

# o en .htaccess (si PHP corre como módulo)
php_value memory_limit 512M

Algunos proveedores ignoran estas directivas por seguridad; si no surte efecto, contacta con el soporte del hosting o aplica el ajuste en el panel de control de PHP del proveedor.

4. Aumentar recursos en entornos gestionados o contenedores

En servidores con PHP-FPM, ajusta el pool (p. ej. pm.max_children) para que no se saturen los procesos y consuman excesiva memoria por proceso. En Kubernetes o contenedores, incrementa las requests/limits de memoria del pod. Para estrategias de cacheo y reducción de carga, revisa las guías de rendimiento de Cloudflare Docs.

Buenas prácticas al aumentar la memoria

  • No asignes memoria ilimitada: fijar valores razonables (256–512M) evita consumo excesivo y mascarar problemas subyacentes.
  • Aumenta por etapas: cambia a 256M y prueba; si sigue fallando, sube a 384M/512M y vuelve a probar.
  • Combina con debugging: habilita logs y reproduce la acción que provocó el WSOD para capturar el stack trace.
  • Monitorea consumo a largo plazo con herramientas de servidor o APM para detectar procesos que fugan memoria.

Qué hacer si aumentar la memoria no resuelve el WSOD

Si tras incrementar memoria el sitio sigue en blanco, sigue estos pasos:

  • Desactiva plugins: renombra wp-content/plugins temporalmente para detectar conflictos.
  • Cambia a un tema por defecto: renombra la carpeta del tema activo para forzar TwentyXX y comprobar si el tema era la causa.
  • Restaurar desde backup si fue un cambio reciente que provocó el error.
  • Revisa versiones de PHP: algunas funciones requieren PHP 7.4+ o 8.x. Verifica compatibilidad.

Ejemplo práctico: diagnóstico rápido

Supongamos un sitio en VPS. Pasos concretos:

  • Ejecuta php -r "echo ini_get('memory_limit').PHP_EOL;" — si devuelve 128M, incrementa.
  • Agrega en wp-config.php define('WP_MEMORY_LIMIT','256M'); y revisa wp-content/debug.log.
  • Si sigue fallando, edita /etc/php/8.1/fpm/php.ini y pon memory_limit=512M, luego systemctl restart php8.1-fpm.
  • Reproduce la acción causante (importar, generar sitemap, backup) y revisa /var/log/php8.1-fpm.log o /var/log/nginx/error.log para errores «exhausted».

Prevención y optimización para evitar futuros WSOD

Incrementar memoria es un parche necesario en muchos casos, pero no debe sustituir optimizaciones estructurales:

  • Optimiza imágenes y activa lazy-loading para reducir procesos de generación de imágenes.
  • Usa cache a nivel de aplicación y proxy (Varnish, Cloudflare) para reducir número de ejecuciones PHP: Cloudflare Docs.
  • Reduce plugins innecesarios y reemplaza plugins pesados por alternativas más eficientes.
  • Planifica tareas cron fuera del tráfico pico (usar WP-Cron real mediante cron del sistema).

Conclusión

El WSOD por agotamiento de memoria en WordPress es frecuente y, en la mayoría de casos, solucionable aumentando la memoria PHP de forma ordenada y segura. Comienza por diagnosticar con WP_DEBUG y logs, aumenta memoria gradualmente (wp-config, php.ini o .user.ini) y combina esos cambios con optimizaciones de rendimiento y revisión de plugins/temas. Si trabajas en entornos gestionados o con restricciones, coordina los cambios con tu proveedor o ajusta parámetros de PHP-FPM y recursos del contenedor. Para entender mejor las directivas de PHP y su impacto, revisa la documentación en PHP.net y optimiza el tráfico con guías profesionales como las de Cloudflare. Con estos pasos tendrás una ruta clara para eliminar el WSOD por memoria y prevenir recurrencias, manteniendo el sitio estable y seguro.