Skip to main content
Validación HTML

Recurso HTTP no recuperable. El estado HTTP del servidor remoto fue: 429.

Acerca de este problema HTML

El código de estado HTTP 429 se define en RFC 6585 y señala que un cliente ha enviado demasiadas peticiones en un período de tiempo determinado. Cuando el validador de W3C encuentra tu HTML, no solo analiza el marcado — también intenta recuperar recursos enlazados como hojas de estilos, scripts e imágenes para realizar una validación exhaustiva. Si alguno de esos recursos está alojado en un servidor que aplica límites de tasa (lo cual es común con CDNs, proveedores de API y plataformas de alojamiento populares), el servidor puede rechazar la petición del validador con una respuesta 429.

Esto no es un error de sintaxis en tu HTML. Tu marcado puede ser perfectamente válido. El problema es ambiental: el servidor remoto está rechazando temporalmente conexiones del validador. Sin embargo, debido a que el validador no puede recuperar el recurso, no puede verificar completamente todo sobre tu página, por lo que marca el problema.

Causas comunes

  • Validación repetida rápida: Ejecutar el validador muchas veces en sucesión rápida contra páginas que referencian los mismos recursos externos.
  • Límites de tasa compartidos: El servicio del validador de W3C comparte direcciones IP de salida, por lo que las peticiones de validación de otros usuarios pueden contar contra el mismo límite de tasa en el servidor remoto.
  • Limitación de tasa agresiva del lado del servidor: El servidor remoto o su CDN (ej., Cloudflare, AWS CloudFront) tiene reglas estrictas de limitación de tasa que bloquean rápidamente los clientes HTTP automatizados.
  • Muchos recursos externos: Una página que referencia numerosos recursos del mismo host externo puede disparar límites de tasa en una sola pasada de validación.

Cómo solucionarlo

Esperar y reintentar

Dado que 429 es una condición temporal, simplemente esperar unos minutos y revalidar suele ser suficiente. Algunos servidores incluyen un encabezado Retry-After en la respuesta 429 indicando cuánto tiempo esperar, aunque el validador puede no mostrar este detalle.

Reducir la frecuencia de validación

Si estás ejecutando validación automatizada (ej., en un pipeline de CI/CD), espacía tus peticiones. Evita validar docenas de páginas en sucesión rápida.

Alojar recursos localmente

Si controlas el sitio web, considera auto-alojar recursos críticos en lugar de depender de CDNs de terceros. Esto te da control total sobre la disponibilidad y elimina problemas de límites de tasa de terceros durante la validación.

Ajustar límites de tasa del servidor

Si eres propietario del servidor que está devolviendo 429, revisa tu configuración de limitación de tasa. Puedes querer incluir en lista blanca el user agent o rango de IP del validador de W3C, o relajar límites que son excesivamente agresivos para herramientas automatizadas legítimas.

Ejemplos

Página que puede disparar el problema

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>My Page</title>
  <link rel="stylesheet" href="https://cdn.example.com/styles/main.css">
  <script src="https://cdn.example.com/scripts/app.js"></script>
</head>
<body>
  <h1>Hello, world!</h1>
</body>
</html>

Si cdn.example.com limita la tasa del validador, tanto la obtención de la hoja de estilos como la del script podrían fallar con un 429, produciendo dos mensajes de “recurso HTTP no recuperable”.

Solución: Auto-alojar los recursos

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>My Page</title>
  <link rel="stylesheet" href="/css/main.css">
  <script src="/js/app.js"></script>
</head>
<body>
  <h1>Hello, world!</h1>
</body>
</html>

Al servir main.css y app.js desde tu propio dominio, eliminas la dependencia de los límites de tasa del servidor de terceros durante la validación.

Solución: Reducir dependencias externas

Si el auto-alojamiento no es factible, minimiza el número de recursos externos de un solo host para reducir la posibilidad de alcanzar límites de tasa:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>My Page</title>
  <link rel="stylesheet" href="https://cdn.example.com/bundle.css">
</head>
<body>
  <h1>Hello, world!</h1>
  <script src="https://cdn.example.com/bundle.js"></script>
</body>
</html>

Agrupar múltiples archivos en recursos únicos reduce el número total de peticiones que el validador necesita hacer al servidor externo, haciendo menos probables los errores de límite de tasa.

Encuentra problemas como este automáticamente

Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.

Ayúdanos a mejorar nuestras guías

¿Te ha sido útil esta guía?

¿Listo para validar tus sitios?
Inicia tu prueba gratuita hoy.