4 consejos para arreglar un sitio de WordPress
Publicado: 2020-09-03Hace unos días me llamó un amigo y me dijo que le habían dado la tarea de mantener un antiguo proyecto de WordPress. Aparentemente, el sitio web no se había actualizado durante más de tres años y había problemas por todas partes. El pobre estaba totalmente atascado, porque no podía actualizar nada ahí: plugins, tema, contenido… nada funcionaba. Todas las acciones (aparte de navegar por el sitio en sí) provocaron que WordPress se bloqueara y devolviera un error.
Cuando tenemos un WordPress inutilizable que genera errores continuamente y no se puede actualizar, lo primero que debemos hacer es identificar por qué se está comportando de esa manera. Es decir, tenemos que encontrar al culpable. Por lo general, cualquier problema que pueda encontrar en un sitio de WordPress se debe a su tema o a uno (o más) de sus complementos.
Teniendo esto en cuenta, el procedimiento habitual para reparar un sitio de WordPress es identificar el complemento infractor, eliminarlo de la ecuación, actualizar todo y, finalmente, ver si podemos reinstalar y actualizar el complemento infractor en nuestro sitio web o debemos buscar un reemplazo. Hoy os voy a contar cuatro sencillos trucos para descubrir por qué falla una web y, así, poder solucionarlo.
Uso del registro de errores de nuestro servidor
Asumiendo la hipótesis de que es un plugin el que está provocando los errores que tenemos en nuestra web, lo primero que tenemos que hacer es validar dicha hipótesis. Existen diferentes fórmulas para hacerlo. Personalmente, me gusta comenzar mirando el registro de errores de mi servidor, que tiene su propia opción en cPanel:

Con suerte, el registro de errores no solo contiene un rastro de los errores que han ocurrido en nuestro sitio web, sino también información sobre “dónde” ocurrieron y, por lo tanto, quién fue el culpable. Por ejemplo, la semana pasada encontré el siguiente problema en el registro de errores de mi entorno de desarrollo:
appserver_1 | [Mon Aug 24 09:18:20.977541 2020] [php7:notice] [pid 1107] [client 172.20.0.2:34396] PHP Notice: register_rest_route was called <strong>incorrectly</strong>. The REST API route definition for <code>yoast/v1/get_head</code> is missing the required <code>permission_callback</code> argument. For REST API routes that are intended to be public, use <code>__return_true</code> as the permission callback. Please see <a href="https://wordpress.org/support/article/debugging-in-wordpress/">Debugg ing in WordPress</a> for more information. (This message was added in version 5.5.0.) in /app/.lando/wordpress/wp-includes/functions.php on line 5225, referer: http://nab5.lndo.site/wp-admin/edit.php El registro informa un aviso de PHP que se produjo en uno de los propios archivos de WordPress ( wp-includes/functions.php ), que no nos dice nada acerca de que "un complemento sea el culpable". Afortunadamente, si lee el mensaje completo, verá que describe lo que falló (es decir, una llamada a la función register_rest_route ) y nos da una pista de lo que podría estar mal: Yoast (vea cómo menciona " yoast/v1/get_head " ?).
Los registros de errores son la forma más fácil de averiguar rápidamente cuándo/si algo anda mal y, si es así, cuál es el motivo del error. En este ejemplo en particular, descubrí que tenía un problema con Yoast y, bueno, todo lo que tenía que hacer era actualizar el complemento a su última versión.
Desactivación de complementos desde el panel de WordPress
Desafortunadamente, no siempre es posible acceder al registro de errores de un sitio web para saber cuándo las cosas salieron mal. O, si tiene acceso al registro, es posible que esté incompleto. En estos casos necesitamos fórmulas alternativas para validar (o refutar) nuestra hipótesis inicial.
Suponiendo que nuestro sitio web falla debido a un complemento defectuoso, lo más fácil es desactivar todos los complementos y verificar si el error persiste. Si no es así, el culpable fue un complemento; si persiste, el problema está en otra parte.
Para hacer esto, vaya al Tablero de WordPress » Complementos , seleccione todos sus complementos activos y desactívelos en masa:

y verifique si el error aún ocurre. Si no es así, sabrá que el problema fue causado por uno de los complementos que acaba de desactivar. Ahora es el momento de descubrir cuál es exactamente.
Para identificar el complemento defectuoso, puede activarlos uno por uno y verificar cuándo aparece nuevamente el error. O, si quieres ir más rápido, puedes aplicar los siguientes pasos:
- Activa la mitad de tus complementos.
- Si vuelve a aparecer el error, el culpable está en la mitad que acaba de activar, por lo que puede activar la otra mitad de forma segura.
- Si el error no aparece, el culpable está en la otra mitad.
- Una vez que sepa en qué "grupo" se encuentra el complemento defectuoso, solo necesita concentrarse en ese y repetir el proceso. Active la mitad de ese grupo y desactive la otra mitad (es decir, ahora estaría revisando una cuarta parte del total), y vea si su sitio web funciona correctamente.
- Repite el proceso hasta que encuentres al culpable.
Una vez que sepa qué complemento está fallando, depende de usted cómo solucionar el problema. Es posible que deba ponerse en contacto con el desarrollador, intentar reparar el complemento usted mismo o incluso considerar reemplazarlo con una alternativa. Pero, al menos, ahora sabe lo que debe hacer para deshacerse del problema.

Copia de seguridad de su lista de complementos activos
¿Recuerdas a mi amigo del principio? Cuando estábamos investigando su sitio web, seguimos todos los pasos anteriores y desactivamos todos los complementos en su sitio web...
… ¡lo que resultó en una pantalla blanca de muerte!

Aparentemente, la web estaba llena de complementos personalizados y ajustes de temas con muchas dependencias cruzadas. Al desactivar los complementos, algunas de las funciones en las que se basaba el tema ya no estaban disponibles, lo que provocó un error fatal. Esta es claramente una mala práctica: un tema no puede depender de que un complemento esté activo. Si necesita algunas de las funciones proporcionadas por un determinado complemento, debe implementar controles de seguridad para validar si están disponibles o no.
De todos modos, el problema es que el sitio se cerró por completo y no pudimos reactivar los complementos usando el Tablero. Entonces, ¿cuál es la solución aquí? Bueno, para empezar, siempre deberías tener una copia de seguridad de tu sitio web… pero en este caso particular, hay una solución más fácil y rápida a la mano.
En su base de datos de WordPress, hay una tabla llamada wp_options . Allí, encontrarás una opción llamada active_plugins . Su valor es una matriz con todos los complementos activos. Entonces, antes de desactivar los complementos usando la acción masiva que mencioné antes, simplemente guarde este valor en un archivo de texto:

De esta manera, si "desactivar todos los complementos" termina en un WSOD poco probable (pero no imposible), puede reactivar todos los complementos restaurando la opción active_plugins en la base de datos.
Cómo desactivar complementos a través de FTP
Si sabes que tu problema lo está generando un plugin específico pero no tienes forma de desactivarlo desde el panel de control de WordPress, puedes hacerlo de forma segura a través de FTP.
Como ya sabes, los complementos no son más que un conjunto de archivos. Cuando instala un nuevo complemento en su sitio web, su código termina en la carpeta wp-content/plugins de WordPress. Aprovechando este conocimiento, podemos desactivar el plugin “eliminándolo” de dicha carpeta.
Ve al cPanel de tu servidor y busca la opción FTP:

Luego, utilizando el explorador de archivos FTP, busque la carpeta wp-content/plugins y localice su complemento:

Ahora, todo lo que tiene que hacer es eliminar el complemento o cambiar el nombre de su carpeta para que WordPress no pueda encontrarlo. De esta manera, si inicia sesión en su sitio de WordPress, WordPress ya no verá el complemento y no podrá cargar su código defectuoso, resolviendo así el problema que tenía.
Usar un tema predeterminado
Finalmente, si la hipótesis de que el problema fue causado por uno de sus complementos no es cierta, el siguiente paso es asumir que el culpable es su tema. En este caso, todo lo que tienes que hacer es instalar un tema predeterminado de WordPress (como Twenty Twenty) y ver si el problema desaparece o no. Si desaparece, ya sabes que hay algo mal con tu tema original; si no es así, eso es algo que tendremos que discutir en una publicación diferente.
Si, por cualquier motivo, no tiene acceso al panel de control de WordPress, puede instalar un nuevo tema en su sitio web cargándolo a través de FTP ( wp-content/themes ) y cambiar el tema activo usando la base de datos: simplemente modifique el template de opciones y stylesheet de estilo en wp_options . Por ejemplo, es posible que desee establecer ambas opciones en twentytwenty , suponiendo que ese sea el tema que cargó.
En resumen
Es poco probable que falle un WordPress estándar (sin complementos y sin un tema personalizado). Entonces, si tiene problemas en su sitio web, lo más probable es que el culpable sea uno de sus complementos o su tema. En el post de hoy hemos visto diferentes fórmulas para encontrar al culpable, quitárselo de en medio y recuperar la web. Espero sinceramente que no necesites usar ninguno de estos trucos... pero si lo haces, espero que te sean útiles.
¿Qué pasa con el sitio web de mi amigo? Bueno, no sé, algunas personas dicen que cambió de carrera...
Imagen destacada de Olia Nayda en Unsplash.
