Cómo solucionar el error «Ha habido un error crítico en esta web.» en un sitio web con WordPress. Este error puede ser debido a varias causas, mostramos cómo solucionarlo para algunas de ellas y cómo desactivar uno o varios plugin desde el FTP o desde la administración web de WordPress.
- Error Ha habido un error crítico en esta web en WordPress.
- Motivo del error Ha habido un error crítico en esta web en WordPress.
- Cómo solucionar el error Ha habido un error crítico en esta web en WordPress.
- Desactivar todos los plugin de WordPress cuando no carga el sitio web ni la administración wp-admin.
Error Ha habido un error crítico en esta web en WordPress
Cuando un sitio web con WordPress muestra este error:
Y no llega a cargar, ni la página principal ni siquiera la de administración wp-admin, se suele deber a un plugin erróneo. Normalmente tras alguna actualización o instalación de un plugin que tiene algún fallo.
Motivo del error Ha habido un error crítico en esta web en WordPress
En primer lugar, las versiones actuales de WordPress, 5.9.1, incluyen una opción automática de comprobación de plugin, si alguno falla y hace que la web no cargue, WordPress enviará un mail al administrador del sitio, indicando el motivo del fallo y, casi siempre, el plugin que está generando el error. Un ejemplo de este correo electrónico de aviso:
En el mail podemos obtener información muy útil, como el nombre del plugin que está generando el problema, en nuestro caso «GDPR Cookie Consent». Incluso suele mostrar información más detallada del error, al final del mail:
1 2 3 |
Detalles del error ================== Se ha producido un error del tipo E_PARSE en la línea 1108 del archivo /usr/home/aprendeconpatricia/www/wp-content/plugins/cookie-law-info/admin/modules/cookie-scaner/cookie-scaner.php. Mensaje de error: syntax error, unexpected ')' |
En este caso vemos que el motivo es un error de sintaxis en un fichero PHP del plugin GDPR Cookie Consent. Ubicado en:
/www/wp-content/plugins/cookie-law-info
El propio mail incluye un enlace para intentar acceder al sitio web en modo recuperación, podemos intentar usarlo, pero no siempre funciona. En este error concreto dicho enlace para acceso en modo recuperación no ha funcionado.
Si queremos obtener más información del error, podremos activar el modo depuración del sitio web WordPress. Aunque esto NO lo recomendamos para un sitio público en producción, dado que el modo depuración suele mostrar información que puede ser utilizada para atacar nuestro sitio. Este modo sólo lo activaremos en un entorno de pruebas/desarrollo no público. Para activarlo editaremos el fichero wp-config-php del raíz de nuestro sitio web WordPress y agregaremos la línea:
define(‘WP_DEBUG’, true);
Activando este modo, al cargar la web, suele dar más información de los errores que se estén produciendo. Cuando hayamos recabado la información, es recomendable dejar a false el WP_DEBUG.
Cómo solucionar el error Ha habido un error crítico en esta web en WordPress
Si hemos conseguido acceder a la administración del sitio web, podríamos deshabilitar el plugin problemático. Pero cuando sucede este error, lo habitual es que no nos deje acceder al modo administrador. A continuación explicamos cómo solucionar el problema cuando no hay acceso al modo administrador.
Necesitaremos acceder al FTP del sitio web, por ejemplo usando Filezilla. Una vez conectados por FTP, accederemos a la carpeta /wp-content/plugin de nuestro sitio web:
En esta carpeta podremos observar que hay una subcarpeta por cada plugin. Si nos ha llegado el mail indicando el plugin anómalo, podremos renombrar la carpeta de dicho plugin y así cargará la web. En nuestro caso es la carpeta «cookie-law-info», como hemos comprobado en el correo electrónico:
Renombraremos esta carpeta, por ejemplo añadiendo «___» delante de «cookie-law-info»:
Y comprobaremos si ahora carga la página web. Si carga habremos averiguado el motivo, que es el plugin desactivado. Si sigue sin cargar habrá que ir renombrando más carpetas de plugin y repitiendo el proceso, hasta que cargue. Así averiguaremos el plugin erróneo.
En el caso de no haber recibido el mail de WordPress, el proceso será el mismo, iremos renombrando cada carpeta de plugin, probando si la web carga, y si carga sabremos que es el plugin de la carpeta renombrada, si no carga, seguiremos renombrando hasta que lo haga.
Desactivar todos los plugin de WordPress cuando no carga el sitio web ni la administración wp-admin
Otra opción más «drástica», pero también más rápida, es renombrar la carpeta /wp-content/plugin completa, de esta forma no cargará ningún plugin y así podremos acceder a la administración web de WordPress:
Tras renombrar la carpeta «plugin» a «__plugin», podremos comprobar que tenemos acceso a la administración web de WordPress (wp-admin). Al acceder nos mostrará un mensaje indicando que se han desactivado todos los plugin al no encontrarse la carpeta
- El plugin all-in-one-seo-pack/all_in_one_seo_pack.php ha sido desactivado debido a un error: El archivo del plugin no existe.
- El plugin cookie-law-info/cookie-law-info.php ha sido desactivado debido a un error: El archivo del plugin no existe.
- El plugin wp-user-avatar/wp-user-avatar.php ha sido desactivado debido a un error: El archivo del plugin no existe.
Una vez que tengamos acceso a la web de administración de nuestro sitio y hayamos accedido para que se desactiven los plugin desde WordPress, volveremos a renombrar la carpeta «_plugin» a su nombre original «plugin»:
Tras dejar el nombre de la carpeta plugin original, volvemos a acceder a la administración web de WordPress y comprobaremos que aparecen los plugin pero todos desactivados, esto era lo que queríamos conseguir:
Si algún plugin está pendiente de actualizar, lo recomendable antes de activarlo es actualizarlo, para que esté a la última versión, pulsando en «actualízalo ahora».
El siguiente paso será activar plugin a plugin, uno a uno, e ir probando si carga la web. Si activamos un plugin y falla la web sabremos cuál es el plugin anómalo y repetiremos el paso anterior de renombrar sólo la carpeta de dicho plugin. Así podremos activar el resto.
En nuestro caso, hemos activado All in One SEO y ProfilePress, y la web sigue cargando bien, pero al activar GDPR Cookie Consent, la web falla. Con ello hemos averiguado el motivo del error de carga de la web.
Una vez obtenido el plugin problemático, si resulta imprescindible para nuestro sitio web, tendremos que averiguar cómo solucionar el error. Esto es muy amplio, dado que depende del plugin, de los desarrolladores del mismo, de la versión del plugin, de la versión de WordPress, etc.. En nuestro caso, el problema de carga del plugin GDPR Cookie Consent se solucionó actualizándolo a la versión 2.1.1. Por lo que claramente ha sido un fallo de los desarrolladores, que liberaron una versión con un error de sintaxis en el código PHP.