WordPress ha habido un error critico en esta web (Soluciones y Ayuda 🔧)

wordpress ha habido un error critico en esta web

¡Clásico “Ha habido un error crítico en esta web” de WordPress! 😅
Ese mensaje aparece cuando se produce un fatal error de PHP. Aquí tienes causas típicas y cómo arreglarlo, de más rápido a más profundo.

🔍Diagnóstico rápido (qué mirar primero)

  1. Correo de “modo de recuperación”: WordPress suele enviar un email al administrador con un enlace para entrar y desactivar el componente que falló.
  2. Logs de errores: mira wp-content/debug.log (si existe), el error_log del hosting o el Visor de errores en cPanel/Plesk. Ahí verás la línea y el plugin/tema culpable.

🛠️ Soluciones express

1) Ver el error exacto

Activa el modo debug (temporalmente):

// en wp-config.php, antes de /* That's all, stop editing! */
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false); // así no muestras errores a visitantes

Luego reproduce el error y revisa wp-content/debug.log.

2) Conflicto de plugin/tema

  • Desactivar plugins por FTP/gestor de archivos: renombra wp-content/plugins a plugins.off.
    • Si la web vuelve, el problema está en un plugin. Restaura el nombre y renombra uno a uno hasta encontrar el culpable.
  • Cambiar de tema: renombra la carpeta del tema activo en wp-content/themes. WordPress cargará un tema por defecto (Twenty Twenty-Four, etc.).

Con WP-CLI (si lo tienes):
wp plugin deactivate --all
wp theme activate twentytwentyfour

3) Versión de PHP incompatible

  • Asegúrate de usar una versión soportada por tu versión de WP (actualmente 8.1/8.2/8.3 suelen ir bien).
  • En el panel del hosting cambia la versión de PHP e instala/extensiones necesarias (dom, curl, imagick, mbstring, intl, zip, json, mysqli, opcache).

4) Falta de memoria

Añade en wp-config.php:

define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Y, si puedes, súbelo también en php.ini/.user.ini:

memory_limit = 512M
max_execution_time = 120

5) .htaccess roto (en instalaciones Apache)

Restaura el .htaccess por defecto:

# WordPress estándar
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

6) Archivos de core corruptos

  • Reinstala WordPress desde Escritorio → Actualizaciones → “Reinstalar ahora”,
    o sube de nuevo todos los archivos de WP excepto wp-content y wp-config.php.

7) Problemas de base de datos

Activa la reparación:

define('WP_ALLOW_REPAIR', true);

Visita: /wp-admin/maint/repair.php y ejecuta “Repair Database”. Luego elimina esa constante.

8) Permisos de archivos

  • Carpetas: 755
  • Archivos: 644
  • wp-config.php: 400–440

9) Cachés y OPcache

  • Vacía cachés de plugin (WP Rocket, LiteSpeed, etc.), Object Cache (Redis/Memcached) y OPcache desde el panel del hosting.
  • Borra wp-content/object-cache.php si quedó un “drop-in” corrupto.

10) Malware o código inyectado

Si el error persiste sin causa clara y el log muestra archivos raros en wp-content/uploads o PHP ofuscado, escanea (MalCare, Wordfence, herramientas del hosting) y limpia.

💡Casos típicos y pistas

  • Actualicé un plugin/tema y rompió → vuelve a la versión anterior o espera parche; mientras, desactívalo.
  • Migré de servidor → revisa versión de PHP, extensiones y permisos.
  • White screen (pantalla en blanco) → casi siempre fatal error + caché: activa debug y limpia cachés.
  • Constructor (Elementor/Divi) peta tras actualizar PHP → desactiva add-ons, actualiza a versiones compatibles, sube memoria.

✅ Orden recomendado (checklist)

  1. Activa WP_DEBUG_LOG y revisa debug.log.
  2. Renombra plugins/ para descartar conflicto → identifica el culpable.
  3. Cambia al tema por defecto.
  4. Ajusta PHP (8.1–8.3) y memoria.
  5. Restaura .htaccess y limpia cachés.
  6. Reinstala core.
  7. Repara la base de datos y revisa permisos.

Si quieres, busca el error exacto del debug.log o del email de modo recuperación y puedes encontrar la solución precisa en dos minutos.

Scroll al inicio