Comprobar redirecciones
Una sola redirección es fácil de entender; tres o cuatro encadenadas, cada una agregada por un equipo distinto en un año distinto, es como los sitios pierden posicionamiento en buscadores y segundos de carga sin que nadie lo note. Esta API de cadena de redirecciones sigue una URL por cada salto que da y devuelve la cadena completa, no solo el destino final.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Cómo se acumulan las cadenas de redirección en la práctica
Nadie construye a propósito una cadena de cuatro saltos. Sucede migración a migración: la estructura de URLs cambia y recibe una redirección, luego el dominio pasa a https y recibe otra, después una herramienta de campaña o un CDN agrega una redirección de seguimiento encima, y cada adición es razonable vista de forma aislada. Años después el enlace original sigue funcionando, pero el navegador del visitante hace en silencio tres o cuatro saltos adicionales para llegar, y nadie recuerda por qué.
Qué devuelve el endpoint
Envíe una URL a POST /web/redirect-chain y la tarea sigue cada redirección en orden, registrando el código de estado, el destino y el tiempo de respuesta en cada salto, hasta llegar a la URL final que devuelve contenido real. En vez de una sola respuesta al final, obtiene el recorrido completo, útil para ubicar exactamente dónde una cadena creció un salto que no necesitaba.
Por qué importa el código de estado exacto de cada salto
Un 301 le dice a los buscadores y a los navegadores que el movimiento es permanente y que pueden guardarlo en caché y seguirlo directo la próxima vez; un 302 o un 307 dice lo contrario, que podría cambiar de vuelta, así que se vuelve a comprobar en cada visita. Una cadena construida por completo con redirecciones temporales cuando los movimientos en realidad eran permanentes significa pagar el costo de latencia de cada salto, para siempre, en cada solicitud.
Dónde encaja en el mantenimiento continuo
Como es asíncrona y se entrega por webhook firmado, la comprobación encaja de forma natural en una auditoría periódica del sitio, en una revisión de control de calidad tras una migración de dominio, o en un pipeline de herramientas de SEO que marque cualquier URL que tarde más de uno o dos saltos en resolverse. Ejecutarla con regularidad detecta cadenas que crecen en silencio con el tiempo, una redirección bienintencionada a la vez.
Cómo se ve un resultado saludable
Un solo salto, o dos como máximo, con un código de estado permanente es el objetivo para la mayoría de los enlaces; cualquier cosa más larga vale la pena rastrearla hasta su origen y colapsarla en una redirección directa, porque cada salto extra es pura latencia sin beneficio para el visitante.
Qué puede hacer con ella
Auditorías de enlaces tras una migración
Confirme que las URLs antiguas, tras una migración de dominio o plataforma, resuelven en un solo salto limpio en vez de rebotar por varias redirecciones heredadas.
Limpieza de redirecciones para SEO
Encuentre cadenas construidas con redirecciones temporales que deberían ser permanentes, para que los buscadores transfieran el valor del enlace sin pérdidas.
Control de calidad de enlaces de campaña
Rastree una URL de campaña acortada o con seguimiento por cada salto intermedio antes de usarla en un anuncio pagado o un boletín.
Auditorías de rendimiento del sitio
Identifique páginas que pierden tiempo de carga por saltos de redirección innecesarios acumulados durante años de cambios incrementales.
Preguntas frecuentes
¿Qué muestra realmente un verificador de cadena de redirecciones?
Cada salto entre la URL inicial y el destino final, incluyendo el código de estado, la URL de destino y el tiempo de respuesta de cada paso, no solo el resultado final.
¿Cuántos saltos de redirección son demasiados?
Uno o dos saltos con códigos de estado permanentes es normal; tres o más suele valer la pena investigarlo, porque cada salto añade latencia sin beneficio para el visitante.
¿Distingue entre redirecciones permanentes y temporales?
Sí, el código de estado devuelto en cada salto indica si fue una redirección permanente como el 301 o temporal como el 302 o el 307.
¿Es gratis usarla?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cómo recibo los resultados?
Mediante un webhook firmado cuando la tarea termina, recomendado para automatización, o un enlace firmado válido por 24 horas.
¿Se cobra una comprobación fallida?
No. Las tareas fallidas se reintentan automáticamente hasta tres veces y nunca se cobran; solo se facturan las comprobaciones completadas.
¿Cuál es el costo?
$0.002 por solicitud, un solo precio sin importar cuántos saltos tenga la cadena.
¿Puedo revisar cadenas de redirección para una lista grande de URLs?
Sí, envíe cada URL como su propia tarea asíncrona y dé seguimiento por task_id, lo que escala de forma natural a auditar la estructura de enlaces de un sitio completo.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/web/redirect-chain \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/redirect-chain", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/redirect-chain",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/redirect-chain", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/redirect-chain", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"url": "https://ejemplo.com"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.redirect_chain",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
timeout_sec | 30 |
max_crawl_pages | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |