Solución al error 500 en WordPress: Guía para SysAdmin
¡Hola! Soy tu técnico de soporte amigable. Hoy vamos a desglosar uno de los errores más temidos y al mismo tiempo más comunes al gestionar sitios web: el temido Error 500 en WordPress. Si ves una pantalla en blanco o un mensaje genérico de "Error interno del servidor", no entres en pánico. Este artículo es tu guía completa para diagnosticarlo y solucionarlo, pensada para administradores de sistemas (SysAdmin) que trabajan con WordPress, ya sea en cPanel, Syspanel (HestiaCP) o cualquier panel de control.
Vamos a ir paso a paso, desde lo más básico hasta técnicas avanzadas de depuración. Al final, serás capaz de identificar la causa raíz y restaurar tu sitio en minutos.
¿Qué es el Error 500 en WordPress y por qué ocurre?
El error 500 es un código de estado HTTP genérico que significa "Error interno del servidor". Básicamente, el servidor web (Apache, Nginx, LiteSpeed) está recibiendo una petición, pero algo sale mal en el proceso y no puede completarla. A diferencia de un error 404 (página no encontrada), el error 500 indica un problema en la configuración del servidor, en el código de WordPress, en un plugin o en un tema.
Las causas más comunes incluyen:
- Archivo .htaccess corrupto o con reglas incorrectas.
- Límite de memoria PHP excedido.
- Plugin o tema incompatible o con errores.
- Permisos de archivos incorrectos.
- Problemas con la versión de PHP o extensiones faltantes.
- Scripts que consumen demasiados recursos (timeout).
[INFO] No te asustes si ves la pantalla en blanco. WordPress tiene un modo de depuración oculto que te mostrará el error real. Lo activaremos más adelante.
Paso 1: Primeros auxilios – Lo que puedes hacer desde el panel de control
Antes de meternos en código, prueba estas soluciones rápidas. No requieren acceso SSH y muchas veces resuelven el problema.
1.1. Renombrar la carpeta de plugins (desactivación forzada)
Los plugins son la causa número 1 del error 500. Si no puedes acceder al panel de administración de WordPress, hazlo desde el panel de control (cPanel, Syspanel, etc.).
- Accede a tu panel de control (cPanel, Syspanel, Plesk, etc.).
- Ve al Administrador de archivos o File Manager.
- Navega a la carpeta
public_html(owwwohtdocs, según tu configuración). - Busca la carpeta
wp-content. - Dentro de
wp-content, busca la carpetaplugins. - Renómbrala a algo como
plugins_desactivados. Esto desactivará todos los plugins a la vez.
Si el error desaparece, sabes que el problema está en uno de los plugins. Luego puedes ir renombrándolos de vuelta uno por uno para identificar al culpable.
1.2. Cambiar temporalmente al tema por defecto (Twenty Twenty-Four)
Un tema con errores también puede provocar el error 500.
- En el mismo Administrador de archivos, ve a
wp-content/themes. - Busca la carpeta de tu tema activo (por ejemplo,
mi-tema-personalizado). - Renómbrala a algo como
mi-tema-personalizado_backup. WordPress automáticamente usará el tema por defecto (Twenty Twenty-Four o similar).
Si el sitio se recupera, el problema está en tu tema. Puedes reinstalarlo o contactar al desarrollador.
1.3. Restaurar el archivo .htaccess por defecto
Un .htaccess corrupto es otra causa común.
- En el Administrador de archivos, busca el archivo
.htaccess(puede estar oculto; activa la opción "Mostrar archivos ocultos"). - Renómbralo a
.htaccess_backup. - Ve a Ajustes > Enlaces permanentes en el panel de WordPress (si puedes acceder) y haz clic en "Guardar cambios" para regenerarlo. Si no puedes acceder, crea un nuevo
.htaccesscon el contenido básico:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Sube este archivo a la raíz de tu sitio.
[TIP] Si usas Syspanel (HestiaCP), el acceso al Administrador de archivos está en el puerto 2106 (ejemplo:
https://tudominio.com:2106). Dentro, busca "File Manager".
Paso 2: Activar el modo debug de WordPress (la clave del diagnóstico)
Si los pasos anteriores no funcionan, necesitas ver el error real. WordPress oculta los errores por defecto, pero podemos activar el modo debug.
2.1. Editar el archivo wp-config.php
- En el Administrador de archivos, localiza
wp-config.phpen la raíz de tu instalación. - Ábrelo con un editor de texto (no uses WordPad ni editores que añadan formato).
- Busca la línea que dice:
define('WP_DEBUG', false);(si no existe, la añadiremos). - Cambia esa línea por las siguientes (puedes pegarlas justo antes de la línea
/* That's all, stop editing! Happy publishing. */):
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
Explicación:
WP_DEBUG: Activa el modo depuración.WP_DEBUG_LOG: Guarda todos los errores en un archivo llamadodebug.logdentro de la carpetawp-content.WP_DEBUG_DISPLAY: Lo ponemos enfalsepara que los errores no se muestren en pantalla (evita problemas visuales).@ini_set: Suprime la salida de errores en pantalla por si acaso.
- Guarda el archivo y recarga tu sitio. Si el error persiste, ahora tienes un registro.
2.2. Leer el archivo debug.log
- Ve a la carpeta
wp-contenten tu servidor. - Busca el archivo
debug.log. Si no existe, recarga la página con error y vuelve a mirar. - Ábrelo. Verás líneas como:
[02-Oct-2024 15:30:00 UTC] PHP Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 20480 bytes) in /home/user/public_html/wp-content/plugins/mi-plugin/funciones.php on line 45
Este mensaje te dice exactamente qué está fallando: un plugin, un tema, falta de memoria, etc. Anota el archivo y la línea.
[WARNING] IMPORTANTE: Cuando termines de depurar, vuelve a poner
WP_DEBUGenfalsey elimina o vacía el archivodebug.log. Si lo dejas activo en producción, ralentizará tu sitio y podría exponer información sensible.
Paso 3: Soluciones específicas según el error en debug.log
Una vez que tienes el error real, el camino es más claro. Aquí tienes las soluciones para los casos más frecuentes.
3.1. Error de memoria PHP (Allowed memory size exhausted)
Es muy común. Tu script necesita más memoria de la que tiene asignada.
Solución: Aumentar el límite de memoria PHP
- Desde wp-config.php: Añade esta línea antes del
/* That's all... */:define('WP_MEMORY_LIMIT', '256M'); - Desde cPanel/Syspanel: Ve a Seleccionar versión de PHP (o MultiPHP Manager) y busca la opción
memory_limit. Cámbiala a256Mo512M. - Desde .htaccess: Añade esta línea:
php_value memory_limit 256M - Desde php.ini (si tienes acceso): Busca
memory_limity cámbialo.
[INFO] Si usas Syspanel (HestiaCP), puedes editar el
php.inidesde el panel enAjustes > PHP. Recuerda que el panel de administración está en el puerto 2106.
3.2. Error de timeout (Maximum execution time exceeded)
El script tardó demasiado en ejecutarse.
Solución: Aumentar el tiempo máximo de ejecución
- wp-config.php:
set_time_limit(300);(300 segundos = 5 minutos). - php.ini:
max_execution_time = 300. - .htaccess:
php_value max_execution_time 300.
3.3. Error de plugin o tema específico (Fatal error en un archivo .php)
El debug.log te dirá algo como: Fatal error: Uncaught Error: Call to undefined function... en un archivo de un plugin.
Solución: Desactivar/eliminar ese plugin o tema
- Si ya renombraste la carpeta
plugins, ahora ve renombrándolos de uno en uno (por ejemplo,plugin1->plugin1_activo) y recarga el sitio hasta que el error reaparezca. Ese es el culpable. - Una vez identificado, puedes:
- Actualizarlo (si hay versión nueva).
- Reemplazarlo por otro similar.
- Eliminarlo desde el panel de WordPress (si puedes acceder) o borrando su carpeta desde el Administrador de archivos.
3.4. Error de permisos de archivos
Si el error menciona "Permission denied" o "failed to open stream", los permisos están mal.
Solución: Corregir permisos
- Los directorios deben tener permisos
755. - Los archivos deben tener permisos
644. - El archivo
wp-config.phpdebe ser640o600por seguridad.
Puedes hacerlo desde el Administrador de archivos (clic derecho > Permisos) o por SSH:
find /ruta/a/tu/sitio -type d -exec chmod 755 {} \;
find /ruta/a/tu/sitio -type f -exec chmod 644 {} \;
chmod 640 wp-config.php
[WARNING] No le des permisos 777 a nada a menos que sepas exactamente lo que haces. Es un agujero de seguridad enorme.
Paso 4: Soluciones avanzadas (SysAdmin con SSH)
Si nada de lo anterior funciona, toca ponerse técnico.
4.1. Verificar los logs del servidor web
Además del debug.log de WordPress, el servidor web tiene sus propios logs.
- Apache/Nginx: Normalmente están en
/var/log/apache2/error.logo/var/log/nginx/error.log. Si usas Syspanel, revisa la sección "Logs" en el panel (puerto 2106). - cPanel: En "Metrics > Errors".
Busca el error exacto. A veces el problema está en la configuración de PHP-FPM, en un módulo de Apache que falla, o en un límite de recursos del servidor.
4.2. Probar con una versión diferente de PHP
WordPress es compatible con PHP 7.4, 8.0, 8.1, 8.2 y 8.3. Si tu sitio usa una versión antigua (7.3 o inferior) o una muy nueva con plugins no compatibles, puede dar error 500.
- En cPanel: Ve a "Seleccionar versión de PHP" y prueba con una versión superior o inferior.
- En Syspanel: En el panel principal (puerto 2106), ve a "Ajustes > PHP" y cambia la versión para el dominio afectado.
4.3. Revisar el límite de archivos abiertos (ulimit)
Si tu sitio tiene muchos archivos o un plugin que abre muchas conexiones, el sistema operativo puede cerrar el proceso.
- Por SSH: Ejecuta
ulimit -n. Si es muy bajo (por ejemplo, 1024), puedes aumentarlo en/etc/security/limits.confo en la configuración de PHP-FPM.
4.4. Deshabilitar temporalmente el caché de WordPress y del servidor
A veces un plugin de caché (como W3 Total Cache o WP Super Cache) guarda versiones corruptas de las páginas.
- Limpia la caché desde el panel de WordPress (si puedes acceder).
- Borra manualmente las carpetas
wp-content/cacheywp-content/w3tc(o las que genere tu plugin). - Si usas caché a nivel de servidor (Varnish, Redis, etc.), reinícialo o purga su contenido.
FAQ: Preguntas frecuentes sobre el error 500 en WordPress
¿Puedo solucionar el error 500 sin acceso al panel de administración?
Sí. Todos los pasos anteriores (renombrar plugins, temas, editar wp-config.php, restaurar .htaccess) se pueden hacer desde el Administrador de archivos de tu panel de control (cPanel, Syspanel, etc.). No necesitas entrar a WordPress.
¿El error 500 daña mi sitio o mi base de datos?
No, el error 500 es solo un fallo en la ejecución. No corrompe la base de datos ni elimina archivos. Una vez solucionado, tu sitio vuelve a la normalidad. Sin embargo, si el error persiste por mucho tiempo, puede afectar tu SEO (Google lo penaliza).
¿Qué hago si el debug.log está vacío?
Si activaste el debug y el archivo debug.log no aparece o está vacío, puede ser que:
- El error ocurra antes de que se cargue WordPress (por ejemplo, en el archivo .htaccess o en la configuración del servidor).
- Los permisos de la carpeta
wp-contentno permiten escribir el log. Dale permisos 755 awp-contenty 644 al archivodebug.log(si existe). - El error es de tipo "500 Internal Server Error" pero no es un error de PHP (por ejemplo, un error de configuración de Apache). Revisa los logs del servidor web.
¿Puedo usar un plugin para solucionar el error 500?
Irónicamente, si tienes el error 500, no puedes instalar ni activar plugins. Una vez que recuperes el acceso, puedes instalar plugins de mantenimiento como "Health Check & Troubleshooting" que te ayudarán a diagnosticar problemas futuros.
¿Cómo evito que vuelva a ocurrir?
- Mantén WordPress, temas y plugins actualizados.
- Usa un buen hosting que no limite recursos de forma excesiva.
- Realiza copias de seguridad periódicas.
- Antes de actualizar un plugin o tema, hazlo en un entorno de pruebas (staging).
- Aumenta el límite de memoria PHP de forma preventiva (256M es un buen valor).
Conclusión: Ya eres un experto en solucionar el error 500
Hemos recorrido todas las causas y soluciones posibles para el error 500 en WordPress. Desde los trucos rápidos (renombrar plugins) hasta el diagnóstico profundo con debug.log y los logs del servidor. Recuerda siempre:
- No entres en pánico. Es un error común y solucionable.
- Activa el modo debug para ver el error real.
- Identifica la causa (memoria, plugin, tema, permisos).
- Aplica la solución específica.
- Desactiva el debug cuando termines.
Si después de todo esto el error persiste, contacta a tu proveedor de hosting. Ellos tienen acceso a los logs del servidor a nivel de sistema y pueden identificar problemas de configuración que escapan a tu control.
Espero que esta guía te haya sido de gran ayuda. Si tienes alguna duda, déjala en los comentarios (si los tienes) o consulta con tu equipo de soporte. ¡Buena suerte y que tu sitio vuele sin errores!
