500 Internal Server Error: encuentra la causa y arréglalo

500 Internal Server Error es la respuesta genérica cuando falla el código o la configuración del servidor; la causa siempre está en el log de errores.

Comprueba el código de estado de una URL

500 Internal Server Error es la respuesta genérica del servidor de “algo se ha roto”. La solicitud era correcta; lo que falló fue el código o la configuración que debía responderla. Como es un cajón de sastre, un 500 casi no te dice nada sobre la causa, y la respuesta está casi siempre en el log de errores del servidor.

Definición

La RFC 9110, sección 15.6.1 dice que el servidor “encontró una condición inesperada que le impidió cumplir la solicitud”. Existen códigos 5xx más específicos para las pasarelas (502, 504) y para la falta de disponibilidad temporal (503); el 500 cubre todo lo demás.

Causas habituales

  • Errores de código: excepciones no capturadas, errores fatales de PHP, errores de sintaxis en un despliegue reciente.
  • Límites de recursos: “Allowed memory size exhausted”, límites de tiempo de ejecución, un disco lleno.
  • Un .htaccess roto: una directiva no válida o no admitida hace que Apache devuelva 500 en todas las solicitudes de esa carpeta.
  • Conflictos de plugins o temas tras una actualización; WordPress muestra entonces “Ha habido un error crítico en este sitio web”.
  • Fallos de la base de datos o de servicios que la aplicación no gestiona con elegancia.
  • Permisos incorrectos o variables de entorno ausentes tras una migración.

Impacto en el SEO

Según la documentación de Google sobre códigos de estado HTTP, los errores 5xx hacen que Googlebot reduzca el rastreo del sitio en proporción a cuántas URL fallan. Las páginas que ya están en el índice se mantienen un tiempo, pero las URL que devuelven errores de servidor de forma persistente se eliminan. Un fallo breve cuesta poco; días de errores en páginas importantes cuestan posiciones.

El robots.txt merece un cuidado especial. Si devuelve un 5xx, Google trata temporalmente todo el sitio como bloqueado. Si dura más de 30 días, Google recurre a su última copia en caché, o asume que no hay restricciones si no tiene ninguna. Search Console muestra estos problemas en “Error del servidor (5xx)” del informe Indexación de páginas y en la sección de estado del host de Estadísticas de rastreo.

Cómo solucionar un 500

Para propietarios de sitios

  1. Piensa en lo último que cambió (una actualización, un plugin nuevo, un archivo editado) y deshazlo.
  2. En WordPress, desactiva todos los plugins renombrando por FTP la carpeta wp-content/plugins y vuelve a activarlos uno a uno.
  3. Pide a tu hosting las entradas del log de errores del momento del fallo.

Para desarrolladores

Lee primero los logs:

tail -f /var/log/nginx/error.log
tail -f /var/log/apache2/error.log
journalctl -u php8.3-fpm --since "10 min ago"

En WordPress, registra los errores sin mostrárselos a los visitantes:

// wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);      // escribe wp-content/debug.log
define('WP_DEBUG_DISPLAY', false);

No imprimas nunca trazas de pila en páginas de producción (display_errors = Off). Para fallos temporales conocidos, como una base de datos que se está reiniciando, devuelve 503 con Retry-After en lugar de 500 para que los rastreadores sepan que deben volver.

Cómo comprobarlo

Después de cada despliegue, prueba una URL de cada plantilla clave (inicio, categoría, artículo, producto) con el comprobador de códigos de estado HTTP; una sola plantilla defectuosa puede romper miles de páginas a la vez. Para una visión más amplia, el rastreo de una auditoría SEO web saca a la luz los errores de todo el sitio. Una respuesta típica:

HTTP/1.1 500 Internal Server Error
Content-Type: text/html; charset=UTF-8
Cache-Control: no-store
Content-Length: 2671

Preguntas frecuentes

¿Un error 500 perjudica al SEO?

Uno breve no hace un daño duradero: Googlebot reduce el ritmo y vuelve. Los 500 persistentes en las mismas URL hacen que Google las elimine del índice, así que corrígelos con rapidez.

¿Por qué recibo un error 500 solo en algunas páginas?

Probablemente esas páginas usan una plantilla, un plugin, una consulta o un dato que falla. Compara una página rota con una que funcione y revisa las entradas del log de errores de la URL rota.

¿Cuánto tarda Google en descartar las páginas que devuelven 500?

Google no publica un plazo exacto. Su guía considera una ralentización temporal los errores que duran horas o uno o dos días, mientras que las URL que siguen fallando durante más tiempo se eliminan poco a poco.