Error 500 Internal Server Error: qué es, causas y cómo solucionarlo paso a paso
El error 500 es el más temido por cualquier propietario de web. A diferencia de otros errores HTTP que dan pistas sobre qué ha fallado, el 500 solo dice «algo ha ido mal en el servidor» sin especificar qué. Esa vaguedad es lo que lo hace frustrante. En este artículo te explico todas las causas posibles, ordenadas de más a menos frecuente, y cómo resolver cada una.
Qué significa exactamente el error 500
Internal Server Error significa que el servidor ha encontrado una situación inesperada que le ha impedido completar la petición. Es un código genérico: el servidor sabe que algo ha fallado pero no puede o no quiere dar más detalles al navegador por razones de seguridad.
Lo que el usuario ve depende del servidor y de la configuración: una página en blanco, un mensaje «500 Internal Server Error», o en WordPress una pantalla blanca sin texto (el famoso White Screen of Death).
Diferencia entre error 500 y otros errores de servidor
| Código | Nombre | Significado |
|---|---|---|
| 500 | Internal Server Error | Fallo genérico en el servidor |
| 502 | Bad Gateway | El servidor intermedio recibió respuesta inválida |
| 503 | Service Unavailable | Servidor sobrecargado o en mantenimiento |
| 504 | Gateway Timeout | El servidor no respondió a tiempo |
El 500 es el único que indica un fallo interno de la aplicación o configuración, no un problema de capacidad o red.
Causas más frecuentes del error 500
1. Error en el archivo .htaccess
Es la causa número uno en hosting con Apache o LiteSpeed. El .htaccess es un archivo de configuración que WordPress, PrestaShop y otros CMS modifican constantemente. Una línea mal escrita o una regla incompatible provoca un 500 inmediato.
Cómo comprobarlo: renombra el archivo .htaccess a .htaccess_bak mediante FTP o el gestor de archivos de cPanel. Si la web vuelve a cargar, el problema está ahí. Regenera el .htaccess desde WordPress en Ajustes → Enlaces permanentes → Guardar cambios.
2. Límite de memoria PHP agotado
WordPress y sus plugins consumen memoria PHP en cada carga. Si el límite configurado es demasiado bajo (64 MB es insuficiente en 2026), el proceso muere a mitad de ejecución y el servidor devuelve un 500.
Cómo solucionarlo: añade esta línea al wp-config.php:
php
define('WP_MEMORY_LIMIT', '256M');
O edita el php.ini desde cPanel → Selector de PHP:
ini
memory_limit = 256M
3. Plugin o tema defectuoso
Un plugin con código incompatible con tu versión de PHP o con un conflicto con otro plugin puede provocar un error fatal que resulta en 500. Es especialmente frecuente tras actualizaciones masivas.
Cómo comprobarlo: desactiva todos los plugins accediendo por FTP a /wp-content/plugins/ y renombra la carpeta completa a plugins_bak. Si la web carga, reactiva los plugins uno a uno hasta encontrar el culpable. Para el tema, activa temporalmente un tema por defecto de WordPress (Twenty Twenty-Four).
4. Permisos de archivos incorrectos
Los archivos y carpetas de tu web deben tener permisos específicos. Si son demasiado permisivos o demasiado restrictivos, el servidor puede negarse a ejecutarlos.
Los permisos correctos en la mayoría de hostings:
- Carpetas: 755
- Archivos PHP: 644
- wp-config.php: 600
Cómo corregirlos: desde el gestor de archivos de cPanel, selecciona todos los archivos y usa la opción «Cambiar permisos» de forma recursiva. También puedes hacerlo por SSH:
bash
find /public_html -type d -exec chmod 755 {} \;
find /public_html -type f -exec chmod 644 {} \;
5. Versión de PHP incompatible
Si tu hosting ha actualizado la versión de PHP y tu WordPress o sus plugins no son compatibles con ella, el resultado es un 500. Es especialmente frecuente al saltar de PHP 7.x a PHP 8.x sin comprobar la compatibilidad de los plugins.
Cómo solucionarlo: desde cPanel → Selector de PHP, prueba a cambiar a una versión anterior (PHP 8.1 es la más estable para WordPress en 2026) hasta que puedas actualizar los plugins incompatibles.
6. Tiempo de ejecución PHP agotado
Scripts que tardan demasiado en ejecutarse (importaciones masivas, generación de imágenes, operaciones pesadas en base de datos) pueden superar el max_execution_time y provocar un 500.
ini
max_execution_time = 120
max_input_time = 120
7. Base de datos corrupta o inaccesible
Si WordPress no puede conectar con la base de datos o encuentra tablas corruptas, puede devolver un 500 en lugar del mensaje de error específico de base de datos. Desde phpMyAdmin (cPanel → Bases de datos → phpMyAdmin), selecciona todas las tablas de WordPress y ejecuta «Reparar tabla».
Cómo leer los logs para encontrar la causa exacta
El log de errores es tu mejor aliado. En cPanel:
Opción 1: Métricas → Errores (muestra los últimos errores del servidor)
Opción 2: Gestor de archivos → /logs/error_log o /home/usuario/logs/
Opción 3: Activa el modo debug de WordPress añadiendo al wp-config.php:
php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Los errores se guardarán en /wp-content/debug.log sin mostrarse al visitante.
Busca en el log líneas con PHP Fatal error, Allowed memory size o Maximum execution time. El mensaje de error y el archivo donde ocurre te dirán exactamente qué está fallando.
Error 500 solo en el panel de administración de WordPress
Si la web pública funciona pero el admin de WordPress da 500, el problema suele estar en un plugin del área de administración o en el límite de memoria. Prueba a:
- Acceder a
/wp-admin/con un plugin de caché desactivado - Aumentar el límite de memoria PHP a 256 MB o más
- Desactivar plugins desde FTP como se explica arriba
Error 500 tras migrar la web
Si el 500 apareció después de una migración, las causas más habituales son:
- Rutas absolutas en el código que apuntan al servidor anterior
- Credenciales de base de datos incorrectas en el
wp-config.php - Versión de PHP diferente entre el servidor de origen y el destino
- Permisos incorrectos después de subir los archivos
Comprueba el wp-config.php y asegúrate de que DB_HOST, DB_NAME, DB_USER y DB_PASSWORD son los correctos del nuevo servidor.
Cuándo el error 500 indica un problema de hosting
Si has comprobado todo lo anterior y el 500 sigue apareciendo, o si aparece de forma aleatoria sin cambios en el código, el problema puede estar en la infraestructura del servidor:
- Servidor con recursos insuficientes que mata procesos PHP antes de que terminen
- Versión de PHP mal configurada por el proveedor
- Módulos PHP desactivados que tu aplicación necesita
- Fallos en el servidor de base de datos
En estos casos, el soporte técnico del hosting debe revisar los logs del sistema, no solo los de la aplicación. Un buen proveedor puede identificar si el problema está en la infraestructura en minutos.
En BlumHost el soporte está disponible 24/7 en español por ticket y mail. Si tienes un 500 que no consigues resolver, abre un ticket con el log de errores y lo revisamos contigo.
👉 Ver planes de Hosting en España desde 2€/mes
Preguntas frecuentes
¿El error 500 borra mis datos? No. El error 500 es un fallo en la ejecución, no en el almacenamiento. Tus archivos y base de datos están intactos. El problema es que el servidor no puede procesar la petición, no que haya perdido datos.
¿Cuánto tiempo puede tardar en resolverse un error 500? Depende de la causa. Un .htaccess corrupto se resuelve en minutos. Un conflicto de plugins puede tardar más si hay muchos instalados. Un problema de infraestructura del servidor requiere intervención del proveedor.
¿El error 500 afecta al SEO? Si dura poco tiempo, el impacto es mínimo. Google reintenta el crawl en horas. Si se prolonga días, puede afectar a la indexación de las páginas afectadas.
¿Cómo evito futuros errores 500? Mantén WordPress, plugins y temas actualizados. Prueba las actualizaciones en staging antes de aplicarlas en producción. Configura backups diarios para poder revertir rápidamente si algo falla.
¿El error 500 puede ser causado por un ataque? Sí. Algunos ataques de fuerza bruta o inyección de código pueden provocar errores 500. Si el error apareció de repente sin cambios en la web, revisa los logs de acceso buscando peticiones masivas desde una misma IP.
