Cómo solucionar el error 500 Internal Server Error en WordPress (SysAdmin)
El temido error 500 WordPress es, sin duda, uno de los avisos más frustrantes que puede recibir un administrador de sistemas o un propietario de una web. Es un mensaje genérico que significa que algo ha salido mal en el servidor, pero no te dice exactamente qué es. La buena noticia es que, en la mayoría de los casos, se puede solucionar el error 500 sin necesidad de ser un gurú de la programación.
En esta guía extensa, vamos a desglosar paso a paso, y con un lenguaje muy claro, todas las técnicas de SysAdmin para diagnosticar y reparar este problema. Desde la revisión de archivos de configuración hasta el aumento de la memoria PHP en WordPress. Al final, tendrás un manual de referencia para aplicar en cualquier servidor Linux, ya sea con Apache, Nginx o paneles de control como cPanel o Syspanel.
¿Qué es exactamente el Error 500 Internal Server Error?
Antes de empezar a tocar archivos, es fundamental entender qué está pasando. El Internal Server Error es una respuesta HTTP genérica que devuelve el servidor cuando encuentra una condición inesperada que le impide completar la solicitud del navegador.
Imagina que el servidor es un restaurante. El error 500 es como si el camarero volviera a la mesa y dijera: "Lo siento, hay un problema en la cocina, pero no sé decirle exactamente cuál es". No es un error de tu página web (como el 404), sino un fallo del entorno que la ejecuta.
Las causas más comunes suelen ser:
- Archivos con permisos incorrectos.
- Errores de sintaxis en el archivo
.htaccess. - Límite de memoria de PHP agotado.
- Conflictos entre plugins o temas.
- Archivos corruptos del núcleo de WordPress.
- Problemas con la versión de PHP o módulos del servidor.
A continuación, te presento el proceso lógico para atacar el problema de raíz.
Paso 1: La Primera Línea de Defensa (y la más rápida)
Si tienes acceso al panel de administración de WordPress (a veces el error solo afecta al front-end), la solución puede ser más rápida de lo que crees.
### Desactivar todos los plugins
Este es el primer paso que debes probar, ya que es la causa más común del error 500 WordPress.
- Accede a tu panel de administración (
/wp-admin). - Ve a Plugins > Plugins instalados.
- Selecciona todos los plugins de la lista.
- En el desplegable "Acciones en bloque", elige Desactivar y pulsa "Aplicar".
Si esto soluciona el problema, sabrás que uno de los plugins es el culpable. Actívalos uno a uno hasta encontrar el que falla.
### Cambiar al tema por defecto (Twenty Twenty-Four)
Otro conflicto común es el tema. Ve a Apariencia > Temas y activa un tema por defecto de WordPress (como Twenty Twenty-Four). Si el error desaparece, tu tema tiene un error de código.
Paso 2: Acceso por FTP o Administrador de Archivos (SysAdmin)
Si no puedes acceder al panel de administración, necesitas acceder a los archivos del servidor. Puedes usar un cliente FTP como FileZilla o el administrador de archivos de tu panel de hosting. Si usas Syspanel, recuerda que el acceso se realiza por el puerto 2106 (aunque para FTP es el estándar 21, el panel de control es el que usa ese puerto).
### Renombrar la carpeta de plugins
Si no puedes entrar al panel, hazlo manualmente:
- Conéctate por FTP.
- Navega a
/wp-content/. - Busca la carpeta
pluginsy renómbrala aplugins_desactivados.
Esto desactivará todos los plugins de golpe. Si el error se soluciona, crea una carpeta nueva llamada plugins y ve moviendo los plugins de uno en uno desde plugins_desactivados para encontrar al culpable.
### Renombrar la carpeta del tema
De manera similar, navega a /wp-content/themes/. Busca la carpeta de tu tema activo y renómbrala (por ejemplo, añade _old al final). WordPress usará automáticamente un tema por defecto.
Paso 3: El Archivo .htaccess (El Sospechoso Habitual)
El archivo .htaccess es un archivo de configuración que controla el comportamiento de Apache. Un error de sintaxis aquí puede provocar un Internal Server Error inmediato.
### Cómo reiniciar el .htaccess
- Conéctate por FTP a la raíz de tu instalación de WordPress (donde están las carpetas
wp-admin,wp-content, etc.). - Busca el archivo
.htaccess. Si no lo ves, activa la opción de "Mostrar archivos ocultos" en tu cliente FTP. - Descárgalo a tu ordenador como copia de seguridad.
- Elimina el archivo del servidor (o renómbralo a
.htaccess_old).
Ahora intenta acceder a tu web. WordPress generará un .htaccess nuevo automáticamente. Si el error desaparece, el problema era ese archivo. Luego, ve a Ajustes > Enlaces permanentes en tu panel y pulsa "Guardar cambios" para regenerar las reglas.
### Verificar la sintaxis del .htaccess
Si quieres revisar el contenido antes de eliminarlo, busca líneas sospechosas, especialmente las que comienzan con RewriteCond o RewriteRule. A veces, al pegar código de tutoriales, se cuelan caracteres invisibles o saltos de línea incorrectos.
Paso 4: Aumentar la Memoria PHP de WordPress
Otra causa muy frecuente del error 500 WordPress es alcanzar el límite de memoria permitido para los scripts de PHP. Esto es especialmente común en sitios con muchos plugins o con un WooCommerce cargado.
### Modificar wp-config.php
Este es el método más directo y que todo SysAdmin conoce.
- Conéctate por FTP a la raíz de WordPress.
- Busca el archivo
wp-config.php. - Ábrelo con un editor de texto plano (como Notepad++ o Sublime).
- Añade la siguiente línea justo antes de la línea que dice
/* That's all, stop editing! Happy publishing. */:
define('WP_MEMORY_LIMIT', '256M');
- Guarda el archivo y súbelo de nuevo al servidor.
Esta línea fuerza a WordPress a usar 256 MB de memoria. Si tu servidor lo permite, puedes subirlo a 512M para sitios muy grandes.
[TIP] Si no encuentras la línea "That's all", añade la línea al final del archivo, pero asegúrate de que esté antes de la etiqueta
?>si existe.
### Modificar el php.ini
Si el método anterior no funciona, es que tu servidor tiene un límite más bajo a nivel de PHP. Deberás crear o editar un archivo php.ini en la raíz de tu sitio.
- Crea un archivo llamado
php.inien la carpeta raíz de WordPress. - Añade estas líneas:
memory_limit = 256M
max_execution_time = 300
max_input_vars = 5000
Sube el archivo y verifica. Si no funciona, tendrás que contactar con tu proveedor de hosting para que aumente el límite desde el servidor principal.
Paso 5: Revisión de Permisos de Archivos y Carpetas
Los permisos incorrectos son un clásico. Si un archivo tiene permisos demasiado restrictivos, el servidor no puede leerlo y lanza un error 500.
### Los permisos correctos en WordPress
- Carpetas (Directorios): Deben tener permiso
755. - Archivos: Deben tener permiso
644.
### Cómo cambiarlos por FTP
- Selecciona todos los archivos y carpetas de la raíz de WordPress.
- Haz clic derecho y elige "Permisos de archivo" (File Permissions).
- Introduce el valor
644para archivos y755para carpetas. - Marca la casilla "Recursivo" (Recurse into subdirectories) y elige "Aplicar a archivos" o "Aplicar a directorios" respectivamente. Tendrás que hacerlo dos veces.
Paso 6: Comprobar los Logs del Servidor (El Último Recurso)
Si nada de lo anterior funciona, es hora de ponerse el sombrero de detective. Los logs del servidor te dirán exactamente el error que se está produciendo.
### Dónde encontrar los logs
- cPanel: Suelen estar en la sección "Métricas" > "Errores" o en la carpeta
logsdentro de tu cuenta. - Syspanel (puerto 2106): Busca en la sección de "Registros" o "Logs" del sitio web.
- Acceso SSH: Si tienes acceso, ejecuta el comando:
tail -f /var/log/apache2/error.log
O para Nginx:
tail -f /var/log/nginx/error.log
### Interpretar el log
Busca la última línea que contenga "PHP Fatal error" o "mod_security". El mensaje te dirá exactamente qué archivo está causando el problema y en qué línea. Por ejemplo:
[error] PHP Fatal error: Allowed memory size of 67108864 bytes exhausted...
Esto confirma que es un problema de memoria. O:
[error] PHP Parse error: syntax error, unexpected '}' in /home/user/public_html/wp-content/themes/tu-tema/functions.php on line 45
Esto te indica que hay un error de sintaxis en el tema.
Paso 7: Soluciones Avanzadas para SysAdmins
Si los pasos anteriores no han funcionado, es probable que el problema sea más profundo en la configuración del servidor.
### Revisar la versión de PHP
WordPress es muy sensible a las versiones de PHP. Si has actualizado recientemente el servidor y el error apareció, puede que tu sitio no sea compatible con la nueva versión.
- En cPanel o Syspanel, busca el selector de versión de PHP.
- Prueba a cambiar a una versión anterior (por ejemplo, de PHP 8.2 a PHP 8.1 o 7.4) para ver si se soluciona.
### Verificar el límite de memoria del servidor
A veces, el límite de memoria no está en PHP, sino en el propio servidor. Ejecuta el comando free -m en SSH para ver la memoria RAM disponible. Si está al 100%, es que el servidor necesita más recursos.
### Deshabilitar mod_security
El módulo mod_security de Apache actúa como un firewall de aplicaciones web. A veces, bloquea peticiones legítimas y provoca un Internal Server Error.
- En cPanel, busca "ModSecurity" y desactívalo temporalmente para tu dominio.
- En Syspanel, busca la opción "Seguridad" o "WAF" y desactívalo.
- Por SSH, puedes crear un archivo
.htaccessen la raíz con la línea:
<IfModule mod_security.c>
SecRuleEngine Off
</IfModule>
Preguntas Frecuentes (FAQ) sobre el Error 500
Para finalizar, respondemos a las dudas más comunes que nos llegan al soporte técnico.
### ¿Por qué mi WordPress da error 500 después de actualizar un plugin?
Es muy común. El plugin puede tener un conflicto con el núcleo de WordPress o con otro plugin. Sigue el Paso 1 para desactivarlo todo y luego actívalo de nuevo.
### ¿El error 500 puede dañar mi base de datos?
No directamente. El error 500 es un fallo de ejecución, no de almacenamiento. La base de datos suele estar intacta, pero es recomendable hacer una copia de seguridad antes de realizar cambios drásticos.
### ¿Cuál es la diferencia entre error 500 y error 502?
- Error 500: El servidor ha fallado al procesar la solicitud (problema interno).
- Error 502: El servidor (proxy) no ha recibido una respuesta válida de otro servidor (por ejemplo, el de la base de datos o un proxy inverso).
### ¿Cuánto tiempo se tarda en solucionar el error 500?
Depende de la causa. Si es un plugin, en 5 minutos. Si es un problema de permisos o de memoria, en 15 minutos. Si es un fallo del servidor, puede tardar más si no tienes acceso SSH.
### ¿Debo contactar con mi proveedor de hosting?
Si has probado todos los pasos de esta guía y el error 500 WordPress persiste, sí. Es posible que haya un problema en el servidor que solo ellos pueden solucionar, como un fallo en el disco duro o una configuración errónea de Apache.
Resumen y Checklist Final
Para que no te pierdas, aquí tienes un resumen de los pasos a seguir en orden:
- Desactivar plugins (desde el panel o por FTP renombrando la carpeta).
- Cambiar el tema a uno por defecto.
- Eliminar o renombrar el
.htaccesspara regenerarlo. - Aumentar la memoria PHP (añadiendo líneas a
wp-config.phpophp.ini). - Verificar los permisos de archivos (644) y carpetas (755).
- Revisar los logs del servidor para encontrar el error exacto.
- Probar con otra versión de PHP o desactivar
mod_security.
Con esta guía, tendrás las herramientas necesarias para solucionar el error 500 en cualquier WordPress, sin importar si tu panel de control es cPanel, Plesk o Syspanel (recuerda, acceso por el puerto 2106). La clave es la paciencia y la revisión metódica. ¡No te desesperes, que tiene solución!
