Error 500 Internal Server Error

Qué es un 500 Internal Server Error, cómo trata Googlebot los errores de servidor durante el rastreo, por qué los 500 persistentes provocan la desindexación y cómo diagnosticarlos y solucionarlos.

Publicado por primera vez: 28 jun 2026 · Última actualización: 6 ago 2026 · Avanzado
Idiomas

Un 500 Internal Server Error es un código de fallo genérico del lado del servidor: el RFC 9110 lo define como una condición inesperada que impidió al servidor atender la solicitud, y nada más; no dice qué falló, durante cuánto tiempo ni si un reintento funcionará. Un 500 aislado suele ser reintentado por Google, pero los 500 persistentes en todo el sitio reciben la respuesta documentada de Google: rastreo más lento y, con el tiempo, retirada del índice si los errores no se resuelven. John Mueller ha ofrecido una regla empírica aproximada y personal —una tasa de error por encima de aproximadamente el 1 % probablemente indique un problema real—, pero Google no publica ningún umbral estricto. Diagnostique primero desde los registros del servidor y después revise el informe "Server error (5xx)" de GSC; causas como los conflictos de plugins y el agotamiento de recursos son habituales en pilas tecnológicas concretas (WordPress en especial), no una lista universal.

TL;DR — El RFC 9110 define el 500 como una condición inesperada que impidió al servidor atender la solicitud: ese es todo el límite del código de estado en sí; la causa, la duración y la conveniencia de reintentar son diagnóstico, no semántica. La reacción documentada de Google es graduada: los 500s aislados suelen reintentarse; los 500s persistentes en todo el sitio provocan un rastreo más lento y, si no se resuelven, la retirada final del índice. Mueller ha ofrecido una regla empírica aproximada y personal —tasas de error por encima de aproximadamente el 1 % probablemente signifiquen que algo está roto—, pero eso no es un umbral documentado de Google, y la secuencia reintento → rastreo lento → retirada describe comportamientos documentados, no un temporizador fijo y sincronizado. Diagnostique primero desde los registros del servidor y después con el informe “Server error (5xx)” de GSC y el desglose “by response” de Crawl Stats. La distinción entre 500 y 503 importa: el 503 es el código sancionado de «vuelva más tarde», con una ventana de gracia de ~2 días; un 500 incontrolado no obtiene esa gracia.

Evidence for this claim RFC 9110 defines 500 as an unexpected condition encountered by the server that prevented it from fulfilling the request. Scope: web requests Confidence: high · Verified: RFC 9110: HTTP Semantics

Qué es realmente un 500

Empiece por la especificación, no por la jerga profesional. El RFC 9110 —el estándar de semántica HTTP— define un 500 Internal Server Error como una condición inesperada que impidió al servidor atender la solicitud. Ese es todo el límite de lo que le indica el código de estado en sí. No identifica la causa raíz, el componente que falla, cuánto durará el problema, si la misma solicitud tendría éxito en un reintento ni si la recuperación es probable. Todo lo que va más allá de «el servidor se topó con algo que no pudo manejar» es diagnóstico, no semántica del código de estado, y el diagnóstico vive en sus registros de errores del servidor, no en la especificación ni en el navegador.

Evidence for this claim A 500 response means the server encountered an unexpected condition that prevented it from fulfilling the request. Scope: RFC 9110 defines the generic response semantics; it does not diagnose the underlying server fault. Confidence: high · Verified: IETF: RFC 9110 §15.6.1 — 500 Internal Server Error

En la guía de códigos de estado HTTP de Ahrefs mantengo deliberadamente rotunda la definición dirigida a quienes trabajan en esto: el servidor “encounters some kind of issue and doesn’t have a better or more specific error code” (traducción) «se encuentra con algún tipo de problema y no tiene un código de error mejor o más específico». Es una glosa en lenguaje llano del mismo límite del RFC: sigue siendo un código genérico y sigue siendo un síntoma más que un diagnóstico.

Se sitúa en la familia 5xx junto al 502 (bad gateway), el 503 (service unavailable) y el 504 (gateway timeout) —todos del lado del servidor—, pero el 500 es el que significa «no se aplica ningún código mejor». Como el código de estado en sí no lleva ningún detalle de diagnóstico, recargar el navegador no dice nada sobre por qué ocurrió; los registros de errores de su servidor son la fuente fiable.

Cómo trata Googlebot un 500

El rastreador de Google es respetuoso por diseño: ajusta su ritmo al estado de salud de su servidor, y las respuestas 5xx son una de las señales que interpreta como «reduce la marcha». La documentación actual de Google confirma la forma de esa reacción: las respuestas 5xx y 429 provocan una reducción temporal de la frecuencia de rastreo (proporcional a cuántas URL están afectadas), y las URL que siguen fallando pueden acabar retiradas del índice, mientras que el contenido ya indexado se conserva entretanto a la espera de una actualización correcta. Evidence for this claim Google reduces crawling in response to 5xx errors and eventually removes persistently failing URLs from its index. Scope: Google documents the general 5xx progression; it does not provide a guaranteed retry or recovery timeline for an individual URL. Confidence: high · Verified: Google: How HTTP status codes affect Google's crawlers John Mueller ha descrito esa misma progresión con sus propias palabras, en una sesión de Google SEO Office Hours difundida a través de Search Engine Journal:

“We don’t have any strong thresholds on that. But essentially what happens with 500 errors is we’ll try to retry them. And if we continue to see …the 500 errors then we will …slow down crawling. And if we continue to see that there are 500 errors then we will drop those URLs from the index.” (traducción) «No tenemos umbrales estrictos al respecto. Pero, en esencia, lo que ocurre con los errores de servidor es que intentaremos reintentarlos. Y si seguimos viendo …los errores, entonces …reduciremos la velocidad de rastreo. Y si seguimos viendo que hay errores de servidor, entonces retiraremos esas URL del índice.»

Lea eso como una descripción de comportamientos documentados —reintento, rastreo más lento, posible retirada— y no como un temporizador fijo de tres pasos con transiciones o plazos garantizados; Google no publica umbrales exactos sobre cuándo una etapa pasa a la siguiente. Un 500 aislado en una sola URL suele reintentarse, y la siguiente obtención correcta suele zanjar el asunto, pero eso describe el caso habitual, no una garantía de que un fallo puntual no tenga ningún costo. El riesgo real y documentado está en los errores que no se resuelven.

Por qué los 500s en todo el sitio son peores que los aislados

Hay una dinámica más desagradable cuando una gran parte de su sitio devuelve 500s a la vez. La documentación actual de Google confirma que el recorte de la frecuencia de rastreo es proporcional a cuántas URL están afectadas: cuanto mayor sea la parte del sitio que falla, más se ralentiza el rastreo. Mueller ha expresado el razonamiento que hay detrás en términos más concretos, planteándolo como que Google sospecha que su propio rastreo podría ser parte de la sobrecarga:

“But if a large part of a site consistently has 500 errors and we might assume that maybe we’re causing the problem and we’ll slow down crawling of the whole site and at some point we’ll say well, it looks like these pages are really gone, we’re going to drop them.” (traducción) «Pero si una gran parte de un sitio tiene errores de servidor de forma constante, podríamos suponer que quizá nosotros estamos causando el problema y reduciremos la velocidad de rastreo de todo el sitio y, en algún momento, diremos: bueno, parece que estas páginas realmente han desaparecido, vamos a retirarlas.»

Trate ese encuadre causal concreto de «suponemos que lo estamos causando nosotros» como una caracterización propia de Mueller y no como una redacción tomada literalmente de la documentación oficial actual de Google: el mecanismo de fondo está documentado (más URL fallando, mayor reducción de la frecuencia de rastreo), aunque el razonamiento causal exacto sea más fácil de verificar en su propia declaración que en la documentación misma. En cualquier caso, vale la pena interiorizar el bucle de retroalimentación práctico: un rastreo agresivo bajo agotamiento de recursos puede provocar más errores 500s → Google reduce el rastreo de todo el sitio → y, si los errores persisten de todos modos, las páginas caen. También significa que un problema de 500 no siempre es un fallo de código: a veces es su servidor cediendo bajo carga concurrente que solo aparece con picos de rastreo o de tráfico.

¿Cuánto es «demasiado»?

No hay una línea clara: la propia documentación de resolución de problemas de Google no publica ningún umbral de tasa de error. Mueller ha ofrecido una regla empírica aproximada y personal en SEO Office Hours (de nuevo, difundida a través de Search Engine Journal, no una publicación oficial de Google):

“My feeling is if you’re seeing something more than one percent then that sounds like something is kind of broken.” (traducción) «Mi impresión es que, si observa algo por encima del uno por ciento, eso suena a que algo está medio roto.»

Trate el ~1 % como una prueba de olfato no oficial atribuida a Mueller, no como un límite documentado ni aplicado por Google. Por debajo probablemente esté bien; por encima, merece la pena investigar, pero no considere que cruzar el 1 % sea un detonante automático ni que quedarse por debajo sea una garantía. La única cifra que Google asume públicamente es la ausencia de una: “we don’t have any strong thresholds” (traducción) «no tenemos umbrales estrictos».

500 frente a 503: la distinción que importa

Aquí es donde mucha gente se equivoca. Un 503 Service Unavailable es la forma sancionada de decirle a un rastreador «estoy caído temporalmente, vuelve más tarde». Google lo trata como intencionado y le concede una ventana de gracia. La propia documentación de Google sobre resolución de problemas de rastreo es explícita:

Según Google, “Return 503 or 429 HTTP response status codes temporarily for Googlebot requests when your server is overloaded. Googlebot will retry these URLs for about 2 days. Note that returning ‘no availability’ codes for more than a few days will cause Google to permanently slow or stop crawling URLs on your site.” (traducción) «Para las solicitudes de Googlebot con el servidor sobrecargado, devuelva temporalmente los códigos de respuesta HTTP indicados. Googlebot volverá a probar esas URL durante unos 2 días. Si devuelve códigos de “no disponibilidad” más de unos días, Google ralentizará o detendrá de forma permanente el rastreo de las URL del sitio.»

El contraste: el 503 es intencionado y obtiene una gracia de reintento de ~2 días; un 500 incontrolado es involuntario y no obtiene esa gracia: simplemente se reintenta hasta que Google se rinde. Consecuencia práctica: para un mantenimiento planificado o una defensa deliberada frente a la sobrecarga, devuelva un 503 (idealmente con una cabecera Retry-After), no un 500 ni una página de error devuelta con 200. Nunca disfrace una caída real como un 200.

Cómo diagnosticar un 500

Trabaje por capas —aplicación/código, plataforma/CMS, infraestructura y recursos, y después configuración—, empezando por lo más barato y lo que más probablemente dé resultado. Los pasos marcados como (específico de WordPress) son práctica habitual en WordPress, no soluciones universales; adáptelos a la pila tecnológica que realmente utilice.

  1. Registros de errores del servidor. error.log / access.log (o el visor de registros de su plataforma). Haga coincidir las marcas de tiempo con las solicitudes que fallan. Ahí es donde aparecen el rastro de pila real, el error fatal de PHP o el fallo de conexión con la base de datos. Todo lo que viene después es adivinar hasta que los haya leído.
  2. GSC — informe “Server error (5xx)”. El informe Page Indexing (Informe “Indexación de páginas”) de Google Search Console señala las URL en las que Google está viendo errores 500. Después abra Crawl Stats y lea el desglose “by response” a lo largo del tiempo: así se distingue un incidente pasajero de un problema de disponibilidad real y sostenido.
  3. Bing Webmaster Tools. Sus alertas de errores de rastreo agrupan los Server Errors (5xx) y le dirigen a las URL concretas y a la herramienta Crawl Information.
  4. Reproduzca como un bot, no solo como un navegador. Una página puede devolver 500 para Googlebot y cargar bien para usted: por carga provocada por el rastreo, por una mala configuración de la detección de bots o del firewall, o por límites de capacidad que solo aparecen con tráfico de bots concurrente. Use URL Inspection (herramienta de inspección de URL) en GSC, Fetch as Bingbot o curl con un agente de usuario de bot para detectar fallos exclusivos de bots. «Funciona en mi navegador» no es una señal de que todo esté bien.
  5. Conflictos de plugins, temas o módulos (patrón específico de WordPress; adáptelo en otros casos). Haga primero una copia de seguridad: tenga siempre una vía de vuelta antes de empezar a desactivar cosas. Después desactive las extensiones y reactívelas de una en una para aislar la culpable, comprobando los permisos y la propiedad de los archivos que toque. Las propias guías de resolución de problemas de WordPress de los proveedores de hosting informan a menudo de este patrón, pero eso es una observación específica de esa pila, no una prueba de que sea la causa principal en todas partes; en otro CMS o en una aplicación propia, el equivalente es un conflicto de un módulo, paquete o middleware de terceros.
  6. Agotamiento de recursos. Límites de memoria de PHP, límites de conexiones a la base de datos, capacidad del alojamiento compartido, picos de tráfico o de rastreo. A menudo su proveedor de hosting puede confirmarlo desde su lado.
  7. Configuración y cambios recientes. Un .htaccess roto, una edición incorrecta de la configuración del servidor, un despliegue reciente o credenciales de base de datos equivocadas. Los cambios recientes son el lugar más rentable donde mirar.

Cómo solucionarlo (ajuste la solución a la causa)

Ajuste la solución a la capa que haya señalado el diagnóstico. Estos son patrones habituales de los que se informa en textos profesionales, no una lista ordenada ni universal de lo más probable en su pila concreta:

  • Lo causó la configuración o un despliegue → revierta el cambio; corrija el .htaccess, la configuración o las credenciales.
  • Agotamiento de recursos → suba los límites (memoria de PHP, conexiones a la base de datos) o mejore el plan de alojamiento; si el rastreo está provocando la sobrecarga, también es una conversación sobre la frecuencia de rastreo.
  • Conflicto de plugin o módulo → elimine o sustituya la extensión problemática.
  • Fallo de código → corrija el código y añada la gestión de errores que falta.
  • No consigue determinarlo → escale al proveedor de hosting con las marcas de tiempo exactas y las líneas de registro. No adivine en producción.

Cómo evitar que se repita

Monitorización y alertas sobre las tasas de 5xx, probar los cambios en un entorno de preproducción antes de que lleguen a producción, hacer pruebas de carga antes de picos de tráfico previstos y —si el propio rastreo de Googlebot es el detonante— gestionar la carga de rastreo (devolviendo 503/429 de forma deliberada durante una sobrecarga real, en lugar de dejar que el servidor emita errores 500s incontrolados).

Preguntas frecuentes

¿Un error 500 perjudica al SEO? El riesgo documentado tiene que ver sobre todo con la persistencia a escala. Los 500 aislados suelen reintentarse, sin ninguna penalización documentada por un incidente puntual; los 500 sostenidos en todo el sitio ralentizan el rastreo y pueden llevar a la desindexación.

¿Cuánto tarda Google en desindexar una página con un 500? No hay un plazo fijo. Google primero reintenta y reduce la velocidad de rastreo; la retirada del índice solo llega si los errores continúan. Corríjalo y, en general, las páginas vuelven cuando los rastreos tienen éxito de nuevo.

¿Por qué mi sitio devuelve 500 a Googlebot pero carga bien en mi navegador? Los 500 exclusivos de bots suelen indicar problemas de capacidad o de gestión de bots: carga provocada por el rastreo, reglas de firewall o de detección de bots, o límites que solo aparecen con tráfico de bots concurrente. Confíe en los registros, no en una comprobación manual con el navegador.

¿Pueden los 500s ralentizar el rastreo de todo mi sitio, y no solo de las páginas afectadas? Sí: la documentación de Google confirma que el recorte de la frecuencia de rastreo es proporcional a cuántas URL están fallando, de modo que una gran parte del sitio devolviendo 500s ralentiza el rastreo en todo el sitio. Mueller ha planteado además el razonamiento como que Google sospecha que su propio rastreo podría ser parte de la sobrecarga: es su propia caracterización, no una redacción tomada literalmente de la documentación oficial actual.

¿Qué causa un 500 en WordPress? En WordPress concretamente, los proveedores de hosting y la comunidad de WordPress informan con más frecuencia de conflictos de plugins o temas, de un .htaccess corrupto o de alcanzar el límite de memoria de PHP: eso es lo que se informa para esa plataforma, no una afirmación de que sean las causas principales universales de todos los 500. El orden de diagnóstico anterior (primero los registros, después qué cambió) es el mismo independientemente del CMS.

¿Es seguro reintentar automáticamente una solicitud tras un 500? Solo si ha comprobado antes el método y la idempotencia de la solicitud: el propio código de estado 500 no autoriza una política de reintentos. GET, HEAD, PUT y DELETE suelen ser seguros de reintentar porque son idempotentes (repetirlos no debería provocar efectos secundarios adicionales); un POST a secas normalmente no lo es, salvo que su API garantice explícitamente la idempotencia (por ejemplo, mediante una clave de idempotencia): reintentarlo a ciegas arriesga un pedido duplicado, un correo duplicado o un pago cobrado dos veces. Cuando reintente, use retroceso exponencial con jitter, limite el número de intentos y fije un presupuesto de reintentos para que un servidor con dificultades no reciba una tormenta de reintentos encima de lo que ya está fallando.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.