Cualquier persona que haya creado un sitio web o maneje es probable que en algún momento haya encontrado el error del título, ya sea en WordPress o bajo otro tipo de sitio. Para esta ocasión vamos a ver cómo podemos solucionarlo en WP, así que vamos a ver cómo arreglar el error “Allowed memory size of x bytes exhausted” en WordPress.
Al igual que cualquier otro sitio web, WordPress consume determinados recursos para ejecutar sus scripts, y entre estos recursos encontramos la memoria RAM. Para cualquier tarea que WordPress realice, una determinada cantidad de memoria RAM será utilizada, y ahí es donde nos encontramos con este problema, ya que el uso de la memoria RAM suele estar limitada de distintas formas.
WordPress está basado en PHP, así que el uso de RAM que WordPress tiene permitido está atado a la memoria que PHP tiene permitido usar, lo cual por lo general se suele configurar con una variable de PHP llamada “memory_limit”. Esta variable suele ser la principal responsable detrás de los errores de este tipo, aunque el origen también puede estar en otros lugares.
Lo único bueno de este tipo de error, es que en la mayoría de los casos se puede arreglar rápidamente. Lo malo es que primero tendremos que buscar el origen exacto, o bien recurrir al antigüo método de prueba y error si no podemos encontrar el origen concreto del problema. Veamos entonces cuáles son las posibles soluciones para arreglar el error “Allowed memory size of x bytes exhausted” en WordPress.
Cómo arreglar el error “Allowed memory size of x bytes exhausted” en WordPress
Dado que este error se produce cuando se agota la memoria de PHP que WordPress tiene disponible, su origen suele remontarse a dos lugares:
- Al parámetro memory_limit de PHP (o similar dentro del sitio).
- A los plugins de WordPress.
Para el caso de los plugins, la solución que primero podemos probar es desactivar aquéllos que no sean necesarios. A menudo sucede que WordPress puede estar sobrecargado de plugins innecesarios y esto hace que su consumo de memoria sea mayor de lo que debería, por lo tanto desactivar y borrar plugins que no se usen siempre es útil.
¿Pero qué sucede si esto no resuelve el error? ¿Y qué pasa si todos los plugins son necesarios y no podemos desactivar ninguno? Pues en este caso tenemos que atacar el segundo origen del problema: el parámetro memory_limit de PHP (y similares).
Algo muy importante que debemos tener en cuenta antes de incrementar el memory_limit de PHP es que el mismo puede estar limitado por nuestro propio plan de hosting. Hoy en día la mayoría de proveedores suelen dar límites razonables para esta variable, pero dependiendo de los consumos de nuestra web puede que no sea suficiente.
Si por ejemplo nuestro proveedor nos brinda un límite normal, digamos de 512MB de memoria de PHP, pero nuestro WordPress requiere más que eso, entonces nos toparemos con el error con frecuencia. En este caso por supuesto tenemos que recurrir al proveedor para asignar un mayor límite.
Alternativamente, si nuestro proveedor nos brinda límites mayores, tendremos que revisar la configuración de nuestra web para encontrar dónde se origina la limitación, porque este error puede producirse por la variable configurada en PHP pero también por variables similares configuradas dentro del sitio. ¿De qué forma vamos a proceder entonces?
Lo primero de todo es directamente aumentar la memoria PHP asignada a nuestra web. Esto podemos pedirlo al proveedor de hosting o bien podemos hacerlo por cuenta propia si tenemos acceso a cPanel, allí dentro debemos buscar la herramienta MultiPHP INI Editor, dentro de la cual usaremos el Modo Básico, seleccionamos nuestro dominio y buscaremos la variable memory_limit de PHP, la cual aumentaremos según consideremos necesario.
En general, un límite de por ejemplo 512MB (configurado como 512M, similar a la imagen) debería ser más que suficiente para cualquier WordPress, a excepción de los casos en que haya procesos particulares muy pesados corriendo. Así que simplemente configuramos la variable, guardamos el cambio y probamos el sitio de nuevo.
Si funciona, genial, pero en caso de que no funcione nos tocará adentrarnos un poco más en WordPress, porque lo más probable es que exista alguna limitación interna dentro del propio sitio que nos esté afectando.
Para este tipo de casos, vamos a editar el archivo wp-config.php de WordPress, lo cual podemos hacer por medio de FTP, cPanel o directamente por consola si tenemos acceso por allí. Al editar este archivo, vamos a buscar una línea que dice “That’s all, stop editing! Happy publishing” en inglés o bien en español dirá “¡Eso es todo, deja de editar! Feliz blogging.”
Por encima de esta línea, vamos a colocar la siguiente como en el ejemplo de abajo:
define( 'WP_MEMORY_LIMIT', '512M' );
De esta manera, estaremos configurado el límite de memoria interno de WordPress. Ahora simplemente guardamos el cambio, lo subimos al servidor según sea necesario y probamos si el sitio sigue produciendo el mismo error.
Si el sitio aún presenta el error, entonces puede deberse a la presencia de otros archivos en la raíz de WordPress, por ejemplo el .htaccess y el php.ini
php.ini es un archivo que guarda determinadas configuraciones de PHP, si tenemos cPanel este archivo cambiará automáticamente al usar el MultiPHP INI Editor mencionado previamente, pero si no tenemos cPanel o tenemos otro panel puede que sea necesario modificarlo a mano, en cuyo caso podemos configurar la variable de esta forma:
memory_limit = 512M
El archivo .htaccess, que por defecto es un archivo oculto, también puede contener reglas que estén afectado el límite de memoria, así que conviene revisarlo con ayuda de un programador, ya que es un archivo delicado y si tocamos algo incorrecto puede dar más problemas aún.
En caso de que no logremos solucionar el error con los métodos indicados, tendremos que recurrir al soporte técnico de nuestro proveedor de hosting, indicar los pasos que se han intentando y ver cómo nos pueden ayudar. Esto por supuesto es algo que va a variar de un proveedor a otro.
Debido a la naturaleza del error, la solución puede estar en distintos lugares, lo bueno como ya hemos dicho es que una vez encontrado el origen es fácil arreglarlo, por lo general basta con solo ajustar una línea para indicar cuál será el nuevo límite.
Conclusión
En esta oportunidad hemos visto cuál es la solución a uno de los errores más comunes dentro de WordPress. Se trata del error “Allowed memory size of x bytes exhausted”, el cual ocurre cuando la memoria de PHP que nuestro WordPress tiene disponible se agota, lo cual suele ser causado por un consumo excesivo de parte de algún script.
Para solucionar este error lo primero que se debe hacer es eliminar/desactivar plugins que no sean necesarios en el sitio, y posteriormente si el error persiste debemos configurar un límite de memoria de PHP más alto, ya sea desde un panel como cPanel, directamente dentro de WordPress o por medio de archivos como .htaccess y php.ini.