Abres tu sitio y, en lugar de la página de inicio, aparece una frase en blanco y negro: «Ha habido un error crítico en esta web». A veces el escritorio de WordPress también deja de cargar. Es uno de los fallos más frecuentes y también de los que más se agravan con prisas: se desactivan plugins al azar, se restaura un respaldo sin saber de qué fecha o se cambia la versión de PHP «a ver si así».

La buena noticia es que el mensaje no es aleatorio. Detrás siempre hay un error fatal de PHP con nombre, archivo y línea. El trabajo consiste en leerlo antes de tocar nada.

Qué significa realmente el mensaje

Desde la versión 5.2, WordPress captura los errores fatales de PHP y, en lugar de mostrar una pantalla en blanco, enseña ese aviso genérico. Lo hace a propósito: el detalle del error puede revelar rutas del servidor o información sensible, así que no se muestra a los visitantes.

En la práctica, casi siempre es una de estas causas:

  • Un plugin o el tema llama a una función que ya no existe, o que todavía no existe, tras una actualización.
  • Dos plugins declaran la misma clase o función y chocan entre sí.
  • El hosting cambió la versión de PHP y algún componente no es compatible con ella.
  • Se agotó la memoria disponible para PHP en una tarea pesada: una importación, un respaldo o la generación de miniaturas.
  • Una edición directa en functions.php o en un archivo de plugin dejó un error de sintaxis.

Paso 1: revisa el correo del administrador

Cuando ocurre un error fatal, WordPress intenta enviar un mensaje al correo de administración del sitio con un asunto parecido a «Tu sitio está experimentando un problema técnico». Ese correo indica qué plugin o tema provocó el error y trae un enlace al modo de recuperación: una sesión especial en la que el componente que falla queda en pausa solo para ti, para que puedas entrar al escritorio y desactivarlo o actualizarlo.

Si el correo no llega, no significa que no se haya enviado. Muchos sitios no tienen bien configurado el envío de correo y el aviso se pierde. En ese caso, pasa al registro de errores.

Paso 2: activa el registro de errores sin mostrarlo en pantalla

Edita wp-config.php por FTP o desde el administrador de archivos del hosting y, antes del comentario que pide dejar de editar (en inglés, That's all, stop editing!), añade o ajusta:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Vuelve a cargar la página que falla y abre wp-content/debug.log. Busca la línea que empieza con PHP Fatal error. Tendrá una forma parecida a esta:

PHP Fatal error: Uncaught Error: Call to undefined function nombre_funcion()
in /wp-content/plugins/nombre-del-plugin/includes/archivo.php:42

La ruta te dice qué componente falla: plugins/nombre-del-plugin, themes/tu-tema o un archivo del núcleo. El mensaje te dice por qué. Muchos paneles de hosting también guardan su propio error_log; si debug.log no aparece, revisa ahí.

Cuando termines, vuelve a poner WP_DEBUG en false y borra el archivo de registro. Un debug.log olvidado y accesible desde el navegador es información gratuita para cualquiera que esté buscando debilidades en tu sitio.

Paso 3: aísla el componente sin perder configuraciones

Si el registro apunta a un plugin, no hace falta borrarlo. Basta con renombrar su carpeta dentro de wp-content/plugins/ (por ejemplo, de nombre-del-plugin a nombre-del-plugin-off). WordPress lo desactivará al no encontrarlo y sus ajustes seguirán en la base de datos.

Si no sabes cuál es, renombra la carpeta plugins completa, comprueba que el sitio carga y después devuélvele su nombre y ve desactivando de uno en uno. Con acceso por SSH, WP-CLI permite hacer lo mismo sin tocar carpetas:

wp plugin list --status=active
wp plugin deactivate nombre-del-plugin
wp --skip-plugins --skip-themes core verify-checksums

El último comando comprueba que los archivos del núcleo de WordPress no han sido modificados. Si alguno no coincide, el problema ya no es solo un error: puede haber una intrusión, y conviene tratarlo como tal.

Si la ruta del error apunta al tema, cambia temporalmente a un tema por defecto de WordPress renombrando la carpeta del tema activo. Si apunta a wp-includes o wp-admin, lo más probable es una actualización del núcleo incompleta, que se corrige volviendo a subir los archivos de la misma versión.

Paso 4: revisa la versión de PHP y la memoria

Si el error apareció «sin que nadie tocara nada», pregunta a tu hosting si cambió la versión de PHP. Es una causa habitual: el proveedor actualiza el servidor y un plugin sin mantenimiento deja de funcionar. La solución de fondo es actualizar o sustituir ese componente; volver a una versión antigua de PHP solo compra tiempo y te deja con un servidor sin parches de seguridad.

Si el mensaje dice Allowed memory size of ... bytes exhausted, el proceso se quedó sin memoria. Puedes subir el límite con define( 'WP_MEMORY_LIMIT', '256M' );, siempre que el plan de hosting lo permita, pero vale la pena averiguar qué tarea consume tanto. Un límite más alto oculta el síntoma; no corrige un proceso que se descontrola.

Lo que conviene no hacer

  • Restaurar un respaldo antes de leer el error. Si la causa es una actualización automática o un cambio de PHP, el respaldo restaurado volverá a romperse en cuanto se repitan las mismas condiciones, y habrás perdido los pedidos o mensajes recibidos desde esa fecha.
  • Reinstalar WordPress «desde cero». El error casi nunca está en el núcleo, y una reinstalación mal hecha puede borrar archivos subidos o configuraciones.
  • Dejar el sitio con plugins desactivados sin revisar qué hacían. Un plugin de seguridad, de caché o de pagos desactivado puede abrir otro problema más grave que el original.
  • Editar archivos directamente en producción sin copia. Antes de modificar cualquier archivo, guarda una copia del original.

Cuándo pedir ayuda

Si el registro señala un plugin que tu negocio necesita, si el error aparece en el checkout de una tienda o si encuentras archivos del núcleo modificados, ya no se trata solo de desactivar algo. Hay que corregir la incompatibilidad, revisar si hubo una intrusión y comprobar que nada más quedó afectado.

En nuestro servicio de soporte WordPress partimos siempre del registro de errores: leemos qué falló, te explicamos la causa y te confirmamos el alcance y el costo antes de intervenir.