# 503 Service Unavailable al hacer scraping: qué significa y cómo solucionarlo

> 503 Service Unavailable a través de un proxy: sobrecarga del objetivo, mantenimiento, página de desafío o segmentación muy limitada. Cómo saber cuál es y solucionarlo.

- URL: https://crawlrelay.com/es/docs/errors/503-service-unavailable/
- Última actualización: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Código de estado HTTP (5xx, error servidor): el mensaje exacto en cada herramienta, las causas probables en orden y la solución que funciona.

**Respuesta rápida — ¿Qué significa 503 Service Unavailable con un proxy?**

**503 Service Unavailable** significa que el servidor no puede atender la petición ahora mismo, por sobrecarga, mantenimiento o regla protectora. Con los proxies residenciales de CrawlRelay, lee el encabezado `Retry-After` y el cuerpo de la respuesta: un 503 por mantenimiento o sobrecarga se resuelve con el tiempo, mientras que una página de desafío indica que el sitio está filtrando tráfico automatizado y deberías reducir la velocidad.

## 503 Service Unavailable en pocas palabras

| Atributo | Valor |
| --- | --- |
| Error | 503 Service Unavailable |
| Tipo | Código de estado HTTP (5xx, error servidor) |
| Enviado por | El sitio web objetivo, su CDN o el proxy cuando no tiene salida disponible |
| Definido en | RFC 9110, section 15.6.4 (Retry-After: section 10.2.3) |
| ¿Reintentar? | Sí, después del Retry-After o una demora progresiva |
| Primera comprobación | Busca un encabezado Retry-After y si el cuerpo es una página de desafío de CDN |

## ¿Qué significa 503 Service Unavailable?

La RFC 9110 define el 503 como una condición temporal. El servidor está activo pero no quiere o no puede atender esta petición ahora, y puede indicar cuándo volver con `Retry-After`.

En la práctica, tres situaciones comparten este código: un sitio realmente sobrecargado o en mantenimiento, una CDN que muestra una página de desafío al tráfico que considera automatizado, y un gateway proxy sin salida disponible para segmentación muy limitada. El cuerpo y los encabezados los diferencian.

## ¿Cómo se ve a 503 en Python, curl, Node.js y navegadores?

El mismo fallo se muestra de forma diferente en cada herramienta. Estos son los mensajes que debes buscar en tus registros:

- **Python requests / httpx:** `status_code == 503`, a veces con `Retry-After`
- **Scrapy:** reintentos por defecto (503 está en `RETRY_HTTP_CODES`)
- **curl:** `HTTP/2 503`, a menudo con encabezado `server:` nombrando la CDN
- **Navegadores:** una página de mantenimiento o intersticial de verificación

## ¿Qué causa a 503?

Lo más probable al principio:

- **Sobrecarga o mantenimiento** en el objetivo, a menudo con `Retry-After`.
- **Una página de desafío** que una CDN sirve a clientes que quiere verificar, con estado 503 o 403.
- **Tu propia carga**, cuando tu crawler es una gran parte del tráfico del sitio.
- **Segmentación limitada**, como una ciudad pequeña, cuando no hay salidas disponibles en ese momento.
- **Una caída upstream** en la CDN o región cloud que usa el sitio.

## ¿Cómo diagnostico a 503 paso a paso?

1. Lee `Retry-After` y el encabezado `server`, luego revisa el título HTML del cuerpo.
2. Carga la página en un navegador desde el mismo país para ver lo que ve una persona.
3. Pausa tu crawler unos minutos y prueba una petición: si pasa, tu carga fue el disparador.
4. Amplía la segmentación al nivel país y compara.

*Prueba la URL que falla con curl (puerto HTTP, modo detallado)*

```bash
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL
```

## ¿Cómo soluciono a 503?

- **Espera y reintenta** con el retraso `Retry-After` o un backoff exponencial.
- **Reduce tu carga** en ese host: menos solicitudes paralelas, demoras más largas, caché.
- **Trata una página de desafío como señal de parada** para esa velocidad. No uses herramientas para resolver CAPTCHA ni disfrazar el navegador para pasarla; reduce la tasa y contacta el sitio si necesitas acceso.
- **Amplía la segmentación** cuando el 503 viene con un filtro de ciudad limitado.

*Python: reintentar con Retry-After, backoff exponencial y jitter*

```python
import random
import time

import requests

PROXY = "http://USERNAME:PASSWORD@gw.crawlrelay.com:7777"
PROXIES = {"http": PROXY, "https": PROXY}
RETRY_STATUSES = {429, 502, 503, 504}


def fetch(url, attempts=5, timeout=(10, 30)):
    for attempt in range(attempts):
        try:
            r = requests.get(url, proxies=PROXIES, timeout=timeout)
        except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
            r = None  # dropped exit, reset or timeout: a new connection gets a new exit
        if r is not None and r.status_code not in RETRY_STATUSES:
            return r
        retry_after = r.headers.get("Retry-After", "") if r is not None else ""
        if retry_after.isdigit():
            wait = int(retry_after)
        else:
            wait = min(60, 2 ** attempt) + random.uniform(0, 1)
        time.sleep(wait)
    raise RuntimeError("giving up on %s after %d attempts" % (url, attempts))
```

## ¿Debo reintentar después de a 503?

Reintenta un 503, pero con paciencia. Usa `Retry-After` si está presente; de lo contrario, retrocede exponencialmente desde unos segundos hasta uno o dos minutos. Si un host devuelve 503 a la mayoría de solicitudes por más de unos minutos, ponlo en pausa y vuelve más tarde. Cuenta las páginas de desafío separadamente de las caídas reales en tus registros.

## ¿Cómo se aplica 503 Service Unavailable a CrawlRelay?

CrawlRelay envía tu solicitud a través de una IP residencial seleccionada para coincidir con tu segmentación. La segmentación a nivel país usa el conjunto más amplio de salidas; la segmentación a nivel ciudad es más limitada. Si los 503 aparecen solo con un filtro por ciudad, prueba la misma solicitud solo con el país antes de cambiar algo.

Gateway: `gw.crawlrelay.com`, puerto 7777 (HTTP, HTTPS a través de CONNECT) y puerto 7778 (SOCKS5). Formato de usuario: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Relacionado: [429 Too Many Requests](https://crawlrelay.com/es/docs/errors/429-too-many-requests/) · [502 Bad Gateway](https://crawlrelay.com/es/docs/errors/502-bad-gateway/) · [504 Gateway Timeout](https://crawlrelay.com/es/docs/errors/504-gateway-timeout/).

## 503 Service Unavailable: preguntas que hacen los desarrolladores

### ¿Por qué recibo 503 solo a través del proxy y no en casa?

O bien el sitio trata tu tráfico proxy de forma diferente, mostrando a menudo una página de desafío, o tu segmentación es tan limitada que las salidas escasean. Compara el cuerpo de la respuesta en ambos casos. Una página de desafío significa desacelerar; un mensaje corto de proxy con segmentación limitada significa ampliar el filtro de ubicación.

### ¿Es un 503 lo mismo que estar bloqueado?

No. Un 503 real es temporal y se resuelve con el tiempo. Una página de desafío servida con 503 es un filtro, y usualmente significa que tu ritmo o patrón parece automatizado. Reduce la concurrencia y añade demoras. Si el sitio no quiere acceso automatizado, respeta eso y busca una API o datos con licencia.

### ¿Cuántas veces debo reintentar un 503?

De tres a cinco veces con retroceso exponencial es un límite razonable para una URL. Más allá, pausa todo el host en vez de reintentar URLs individuales, porque un sitio en problemas no mejora más rápido con reintentos. Registra el host y hora para poder retomarlo luego.

## Otros errores de proxy en esta referencia

- [401 Unauthorized vs 407](https://crawlrelay.com/es/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/es/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/es/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/es/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/es/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/es/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/es/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/es/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/es/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/es/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/es/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/es/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/es/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/es/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/es/docs/errors/ssl-wrong-version-number/)

**Proxies residenciales con documentación que cubre los casos de fallo** CrawlRelay proxies residenciales de 0,50 US$/GB, tráfico que nunca expira. [Ver precios](https://crawlrelay.com/es/pricing/) · [Inicio rápido](https://crawlrelay.com/es/docs/)

---

CrawlRelay: CrawlRelay es un servicio de proxies residenciales rotativos y proxies móviles 4G/5G para desarrolladores, ideal para scrapers y pipelines de datos de IA: tráfico prepago sin vencimiento desde 0,50 US$/GB, pagado con criptomonedas, sin subir documentos de identidad. Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas.
