Validar un mapa de redirecciones
Detecte errores de redirección cuando el mapa aún es un archivo: en /a → /b → /c → /d, la ruta de /a da tres saltos y se marca para que apunte directo a /d. Ciclos, orígenes en conflicto y autorredirecciones se señalan fila por fila. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Mapeo
- source,target,status /a,/b,301 /b,/c,301 /c,/d,301
- Filas de redirección
- 3
- Delimitador detectado
- ,
Una hoja de redirecciones puede parecer correcta al revisar cada fila y aun así contener un ciclo que atrape rastreadores o una fuente enviada a dos destinos distintos. Pegue el mapa CSV o TSV para analizar el grafo completo antes del despliegue. El informe relaciona cada hallazgo con su registro, sigue cada ruta inequívoca hasta su destino terminal y se detiene expresamente cuando no existe un final honesto.
Revise el plan antes de mover el tráfico
Los fallos de redirección cuestan menos cuando el mapa todavía es un archivo. Señala rutas mal formadas, estados no admitidos, fuentes asignadas a destinos incompatibles y autorredirecciones. Como el análisis es local, no solicita direcciones de pruebas o producción ni modifica el mapa.
Puede incorporarlo a una revisión de migración, una lista de lanzamiento o un control automatizado sin revelar rutas todavía privadas a un tercero.
Distinga cadenas, ciclos y destinos terminales
Cada fuente utilizable se sigue hasta alcanzar un destino que ya no figura como otra fuente. Una ruta de un salto se marca como directa. Un ciclo es diferente: no tiene destino terminal.
Las fuentes ambiguas y las autorredirecciones tampoco reciben un destino inventado.
Aplique reglas conservadoras al CSV y las URLs
La entrada admite coma, punto y coma, tabulación o barra vertical, además de campos entre comillas, comillas escapadas y espacios alrededor del valor. La detección automática prefiere una cabecera con source y target; para exportaciones inusuales puede indicar el separador. La herramienta conserva mayúsculas de ruta, consultas y caracteres codificados, sin una normalización agresiva que pudiera juntar direcciones distintas.
Los límites de bytes y filas rechazan mapas excesivos antes del recorrido.
Qué puede hacer con ella
Revisión previa a una migración
Valide la exportación de la agencia, el gestor de contenidos o el inventario del rastreo antes de cambiar DNS, plantillas o reglas del servidor.
Calidad continua del mapa
Ejecute el mismo informe determinista en cada entrega e impida que fuentes contradictorias o ciclos lleguen a producción.
Aplanado de cadenas antiguas
Use el recorrido, los saltos y el destino terminal informados para sustituir trayectos múltiples por una redirección directa revisada.
Preguntas frecuentes
¿El validador visita las URLs de origen o destino?
No. Analiza el texto como un grafo sin conexión.
¿Qué ocurre si el mapa contiene un ciclo?
La resolución afectada se marca como cycle y muestra el recorrido repetido.
¿Qué códigos de redirección se admiten?
Acepta 301, 302, 307 y 308. Un valor vacío se interpreta como 301; cualquier otro se informa como estado no válido en su fila.
¿Puedo mezclar rutas relativas y URLs absolutas?
Sin esa base se presenta un aviso porque no es seguro asumir que una ruta pertenece al dominio de la URL absoluta.
¿La herramienta es gratuita?
La herramienta del navegador se ejecuta localmente y gratis en computadora y celular.
Herramientas relacionadas
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, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/seo/redirect-map-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mapping":"source,target,status\n/old-page,/new-page,301\n/new-page,/final-page,301"}'const res = await fetch("https://api.kit.forhosting.com/seo/redirect-map-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mapping": "source,target,status\n/old-page,/new-page,301\n/new-page,/final-page,301"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/redirect-map-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mapping": "source,target,status\n/old-page,/new-page,301\n/new-page,/final-page,301"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/redirect-map-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mapping":"source,target,status\\n/old-page,/new-page,301\\n/new-page,/final-page,301"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mapping":"source,target,status\n/old-page,/new-page,301\n/new-page,/final-page,301"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/redirect-map-validate", 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
{
"mapping": "source,target,status\n/old-page,/new-page,301\n/new-page,/final-page,301"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.redirect_map_validate",
"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
max_bytes | 1048576 |
max_rows | 10000 |
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. |
Notas técnicas
Revise el plan antes de mover el tráfico
El validador lee la fuente, el destino y un estado HTTP opcional de cada registro y construye el grafo dirigido que produciría la configuración al publicarse.
Distinga cadenas, ciclos y destinos terminales
Las rutas más largas se identifican como cadenas e incluyen el número de saltos, el recorrido completo y final_target, para que usted pueda aplanarlas de forma deliberada. Ante un bucle de dos páginas, uno más largo o una ruta que entra en él, la salida indica cycle y muestra el recorrido repetido, pero omite final_target.
Aplique reglas conservadoras al CSV y las URLs
Las fuentes y destinos pueden ser URLs absolutas HTTP o HTTPS o rutas que empiecen por barra. Añada base_url si necesita comparar ambos formatos en el mismo grafo.