Tus plugins no funcionan. Tu sitio no se está cargando. Sigues viendo el error «Tamaño de memoria permitido agotado» y sigue diciendo que aumentes tu límite de memoria PHP. ¿Qué es eso y cómo lo solucionas?

El límite de memoria de PHP existe para evitar que los recursos de RAM de tu sitio se desplacen hacia abajo. Pero a veces también puede causar problemas, como cuando instalas un plugin que necesita un poco más de energía y termina cortando el acceso a tu sitio.

Cuando te encuentras con la pantalla blanca de la muerte por falta de memoria, necesitas arreglar este asunto de inmediato. Entremos en el límite de memoria de PHP y cómo resolverlo si se alcanza el límite de recursos.

¿Qué es el límite de memoria PHP?

El límite de memoria PHP establece la cantidad máxima de memoria que cualquier script de tu sitio web que se puede utilizar. ¿Pero qué significa eso exactamente?

Tu sitio web es alimentado por servidores, que son sólo computadoras especializadas utilizadas para mantener el backend de un sitio web en funcionamiento. Al igual que los ordenadores normales, utilizan componentes como procesadores, almacenamiento y RAM, también conocidos como memoria.

La RAM es una de las partes más importantes de un servidor. Cada programa y aplicación ocupa un poco de memoria. Cuanto más intensivo es el programa, más memoria toma. Cuando se agote la memoria, tu sitio funcionará lentamente o incluso se negará a cargar.

Las aplicaciones web, como los plugins de WordPress, son una de las muchas cosas que pueden ocupar la memoria de tu servidor. Por lo general, estas aplicaciones ocupan un espacio muy pequeño, y nunca tendrás problemas a menos que tu servidor te haya dado muy poca memoria para trabajar.

Pero también hay un límite en la cantidad de memoria que un script de una aplicación PHP puede ocupar en tu servidor. Cuando uno de estos scripts sobrepasa el límite, es cuando empezarás a tener problemas.

Verás una pantalla blanca con un error, e incluso puede bloquear el acceso a todo tu sitio.

¿Por qué hay un límite de memoria?

Imagina que algo va mal en tu servidor. Tal vez un programa se atasque en un bucle infinito y siga ocupando cada vez más memoria, o un atacante te engañe para que instales algo que ejecute un script malicioso para acaparar todos tus recursos.

Cuando los procesos PHP se salen de control, el límite de memoria sirve para poner un alto a eso antes de que puedan bloquear todo tu servidor o consumir todos los recursos asignados para el mes.

La mayoría de los scripts PHP legítimos son muy pequeños. Cada script individual sólo debería ocupar una pequeña cantidad de RAM, a menos que tengas un programa inusual que necesite más recursos en un script de los que la mayoría de los programas tomarán en conjunto. Estos tipos de plugins ciertamente existen, pero son raros.

Si te estás quedando sin memoria, hay una buena posibilidad de que haya un programa PHP roto o malicioso, y entonces el error de límite de memoria se activa.

Pero a veces realmente estás usando un gran plugin que necesita memoria extra. Algunos hosts web también establecen el límite de memoria de PHP muy bajo, lo que puede causar que el error aparezca incluso cuando no estás instalando una aplicación de potencia excepcional.

De cualquier manera, rápidamentete encontrarás con el error de memoria agotada.

El error de la memoria agotada

Así que te has encontrado con el error de memoria agotada. Probablemente te encuentres con una pantalla blanca con un mensaje de error, ya sea en todo el sitio o al realizar ciertas funciones como enviar un formulario.

Error de límite de memoria agotado como aparece en WordPress
Error de límite de memoria agotado como aparece en WordPress

Este es un problema serio, especialmente cuando afecta a todo tu sitio web. Cada hora que pasa es una gran cantidad de visitantes perdidos.

El culpable es probablemente un plugin muy grande o mal configurado. Debido a que los plugins de WordPress están codificados en PHP, están sujetos al límite de memoria de PHP.

Puedes encontrar el plugin que causa el problema desactivando los plugins uno por uno hasta que se recupere el acceso a tu sitio. Una vez que lo hayas identificado, revisa la documentación y mira si dice cuánta memoria necesita para funcionar.

Puede que quieras enviar un ticket al desarrollador del plugin si no hay indicios de que se supone que es un plugin excepcionalmente potente, ya que podría ser un buggy. Recuerda, el límite de memoria de PHP sólo afecta a los scripts individuales, no al plugin en su conjunto. Así que hay una buena posibilidad de que un script se quede atascado en un bucle infinito o algún otro fallo.

El tema también podría estar en ti. Tal vez tu límite de memoria es demasiado bajo para que sólo el más pequeño de los plugins pueda funcionar correctamente. O tal vez estás tratando de instalar un plugin que requiere que levantes el límite más alto de lo normal.

En cualquier caso, deberías intentar aumentar el límite de memoria PHP. Vamos a mostrarte cómo hacerlo ahora.

¿Cómo aumentar el límite de memoria PHP en WordPress?

Antes de hacer nada, hay una forma fácil de comprobar cuál es el límite de memoria PHP actual sin tener que buscar en ningún archivo. Si estás ejecutando WordPress 5.2 o posterior, ve a Herramientas > Salud del sitio en tu backend.

Instala el plugin Health Check & Troubleshooting si no lo ves.

Ver información sobre la salud del sitio en WordPress
Ver información sobre la salud del sitio en WordPress

En la pestaña de info, verás tu límite de memoria PHP. Si ya está establecido bastante alto, uno de tus plugins podría estar roto.

Sin embargo, si encuentras que es muy bajo, tendrás que aumentarlo editando tu archivo wp-config.php.

Esto no siempre solucionará el problema. En última instancia, el límite de memoria de PHP es fijado por tu host web. A veces tu sitio está configurado para usar menos recursos de los que ofrece tu host, y ajustando tus archivos se puede arreglar esto. Pero si tu límite de código duro es demasiado bajo, no podrás aumentarlo, no importa lo alto que haya establecido manualmente el número.

Pero vale la pena intentarlo, así que vamos a editar ese archivo ahora.

¿Cuál es el límite de memoria PHP de Kinsta?

Los usuarios de todos los planes de Kinsta disfrutan de un límite de memoria PHP por defecto de 256 MB. Esto debería ser más que suficiente para el 99% de todos los plugins de WordPress y es de hecho mucho más de lo que la mayoría de los plugins deberían tener.

Si estás configurado con el alojamiento de Kinsta y tu sitio está configurado correctamente, nunca deberías encontrar un error de límite de memoria. El límite máximo se establece normalmente de forma automática en los archivos sin necesidad de que intervennir.

Podría valer la pena revisarlo y asegurarte de que no ha sido configurado inadvertidamente demasiado bajo en la configuración de WordPress. Es posible que algo haya cambiado el número y disminuido el número de recursos a los que tienes acceso.

Si todavía tienes problemas, siempre puedes contactar con el soporte de Kinsta y pedir ayuda para arreglar el problema. Podemos ayudar a identificar un archivo mal configurado que puede haber pasado por alto.

¿Cómo cambiar el límite de memoria de PHP a través de FTP?

Para editar el archivo wp-config.php, necesitarás acceder a tu sitio con FTP o SFTP. Esto te permite editar archivos internos sensibles que afectan el funcionamiento de tu sitio.

Sólo cambiarás una línea, así que debería ser fácil. Empieza instalando FileZilla u otro cliente FTP de tu elección. Es gratis, así que no te preocupes. Antes de empezar, también deberías hacer una copia de seguridad de tu sitio web. Es fácil romper algo accidentalmente mientras se editan los archivos principales.

Abre FileZilla y pon tus credenciales. Después de unos momentos, deberías conectarte a tu sitio.

Haz clic en la carpeta public y encuentra wp-config.php. Si no puedes encontrar public o public-html, puede llamarse root, www, o el nombre de tu sitio web.

Encontrar wp-config en FileZilla
Encontrar wp-config en FileZilla

Abre la wp-config. Ten cuidado de no editar nada excepto la línea de límite de memoria PHP, ya que es un archivo sensible y podría romper tu sitio web. Busca a través de él hasta que encuentres esta línea: define('WP_MEMORY_LIMIT', '256M');

Límite de memoria de WP como aparece en wp-config
Límite de memoria de WP como aparece en wp-config

Cambia el número que aparece allí, guarda el archivo y cierra FileZilla. ¡Todo listo!

¿Cómo cambiar el límite de memoria PHP en cPanel?

Algunos hosts no te permiten editar archivos por FTP. En su lugar, pueden darte acceso a cPanel. Si este es tu caso, no te preocupes, puedes cambiar el límite de memoria de PHP de esa manera también.

Primer paso: Ingresar a cPanel usando las credenciales proporcionadas por tu host. En la pantalla de inicio, verás una sección de Software con un botón de Seleccionar Versión PHP.

Seleccionando una versión PHP en cPanel
Seleccionando una versión PHP en cPanel

Haz clic en él y, en la parte superior de la pantalla, verás Cambiar a las opciones de PHP. Desplázate hacia abajo hasta que veas memory_limit con un menú desplegable. Haz clic en él y cámbialo a la configuración que desees. Haz clic en Aplicar y listo.

No todos tendrán la opción de seleccionar la versión PHP. En su lugar, puede que veas el editor de MultiPHP Ini. Si ese es el caso, tus pasos serán un poco diferentes.

MultiPHP Ini Editor en cPanel
MultiPHP Ini Editor en cPanel

Necesitarás hacer clic en eso y, en la siguiente ventana, en Configurar la configuración básica del INI de PHP, deberías abrir el menú desplegable y seleccionar tu dominio. Busca la sección memory_limit e introduce el número que quieras. Haz clic en Aplicar para guardar los cambios.

También podrías intentar usar el Administrador de Archivos de cPanel. Esto es muy similar a acceder a tu sitio a través de FTP. En la sección de Archivos de tu página de inicio, haz clic en Administrador de Archivos. Encuentra tu carpeta public/public-html (o como se llame) y abre wp-config.php.

Encuentra la línea WP_MEMORY_LIMIT como se indica en la sección anterior y cambia el número a lo que quieras. Guarda tus cambios y asegúrate de aplicarlos, y eso es todo lo que necesitas hacer.

¿Cuál debería ser el límite de memoria del PHP?

Cuando vayas a cambiar el límite de tu memoria, tu primer impulso podría ser fijarlo en 900 MB o algo así… tan alto como puedas. Pero esto puede ser en realidad una muy mala idea.

Si un script de tu sitio se rompe, podría salirse de control rápidamente y bloquear todo tu servidor. Incluso si tu sitio está alojado en un hardware potente, un script que consume toda la memoria podría causar serios problemas.

Los scripts mal configurados que son inusualmente exigentes, pero que no están lo suficientemente rotos como para causar problemas, también podrían pasar desapercibidos. La mayoría de los scripts PHP son muy pequeños, y el error de límite de memoria sirve como una señal de advertencia de que algo va mal en el backend. Ponlo demasiado alto y podrías haber estropeado los scripts empantanando tu sitio sin saberlo.

Deberías establecer el límite de memoria PHP tan bajo como puedas mientras permites que tu sitio funcione normalmente.

128 MB es una buena línea de base. Es una cantidad decente de memoria que se encargará de la mayoría de los plugins intensivos. Si sabes que vas a necesitar algo de potencia extra, 256 MB cubrirán incluso los plugins más pesados. Y si estás seguro de que tienes una verdadera potencia, 512 MB es el máximo absoluto al que deberías ajustarlo. En el 90% de los casos, nunca deberías necesitar aumentar el límite de memoria más allá de los 256 MB.

¿Qué pasa si cambiar el límite de la memoria no funciona?

Si después de editar tu archivo PHP sigues encontrando el error de memoria, uno de los dos problemas es el problema: tu host ha asignado muy pocos recursos, o hay un script PHP en tu servidor que ocupa demasiada memoria.

Una vez más, deberías revisar y desactivar tus plugins hasta que identifiques al culpable. Con 128-256 MB de memoria, ningún plugin debería ocupar tanto espacio sin mencionarlo en algún lugar de la documentación. Deshabilítalo y notifica a los autores del plugin sobre lo que pasó.

¿Sigues encontrando el error incluso después de que todos los plugins han sido desactivados? Debe haber algún conflicto u otra aplicación PHP causando el problema. Esto es más de lo que podrás manejar por tu cuenta, así que pide ayuda a tu host web.

Si el problema no es un plugin en absoluto, la culpa probablemente recae en tu host al establecer el límite de memoria demasiado bajo. Es probable que estés usando alojamiento compartido, lo cual es notorio por asignar una cantidad muy pequeña de memoria, lo cual es comprensible, ya que si un sitio está usando demasiado RAM, empantana el sistema entero para docenas de otros sitios web.

Tu única opción aquí es actualizarse a un plan que proporcione más recursos. Eso podría terminar siendo costoso, especialmente si sólo estás tratando de instalar un plugin intensivo en un nuevo sitio. Si aún no tienes muchos visitantes, todos los demás recursos obtenidos de la actualización no te ayudarán mucho.

También podrías cambiar a un host, como Kinsta, que proporciona más memoria en primer lugar.

Resumen

El límite de memoria de PHP existe por una razón muy legítima: no querrás que los procesos corruptos ocupen más memoria RAM de la que se supone que deben. Pero cuando llegas al límite y te encuentras con una pantalla blanca de muerte mientras usas un plugin legítimo, puede ser bastante molesto.

Al final, depende de tu host la cantidad de memoria PHP a la que tengas acceso. Si ponen el listón muy bajo, es imposible aumentarlo.

Sin embargo, a veces tu sitio web utilizará menos recursos de los que realmente tiene acceso. En ese caso, es posible aumentar la memoria. Intenta configurarlo a 128 o 256 MB (como opción predeterminada para todos los planes de Kinsta) ya que no quieres que sea demasiado alto.

Si ninguno de esos métodos funciona, es probable que sea la falta de recursos asignados lo que cause el problema, y no un entorno que se deba cambiar. Contacta con tu host y pregunta cómo obtener más, o cambia a un nuevo host como Kinsta que te proporcione más memoria de la que nunca necesitarás.