Auditar enlaces internos
Todo sitio acumula páginas que ya nadie enlaza y páginas que concentran todo el valor de enlace sin devolver nada. Este endpoint recorre los enlaces de una página o de un conjunto de URLs y entrega un mapa claro de qué apunta hacia dónde, qué no apunta a ningún lado y qué nunca recibe un enlace.
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.
Lo que se rompe sin que nadie lo note
El enlazado interno se deteriora en silencio. Se renombra una categoría, se publica una página de campaña que nunca se incorpora al menú principal, se elimina una entrada antigua pero sus enlaces entrantes siguen vivos en otras doce páginas. Nada de esto genera un error de servidor, así que no aparece en un monitoreo normal de disponibilidad; simplemente va privando de rastreo y de señal de posicionamiento a partes enteras del sitio mientras un puñado de páginas acumula un valor de enlace que no necesita.
Qué devuelve la auditoría
Se envía una URL o una lista de URLs y la tarea extrae cada etiqueta a href de la página, resuelve rutas relativas y clasifica cada enlace como interno, externo o autorreferencial. Sobre un lote completo construye un panorama de páginas huérfanas que existen en el sitemap pero no reciben ningún enlace interno, y de sumideros de enlaces: páginas que acumulan muchísimos enlaces entrantes mientras envían muy pocos salientes, algo que suele delatar una plantilla de navegación o pie de página desbalanceada más que autoridad genuina.
De dónde viene esta práctica
El análisis de enlaces internos forma parte del SEO técnico desde que PageRank convirtió el grafo de enlaces en una señal de posicionamiento a finales de los años noventa, y la lógica de fondo no ha cambiado: una página sin ningún camino que lleve hasta ella es prácticamente invisible para un rastreador, sin importar qué tan bueno sea el contenido. Lo que sí cambió es la escala de los sitios actuales, donde miles de URLs se generan por plantilla y nadie verifica manualmente que cada una sea alcanzable.
Quién lo usa y con qué frecuencia
Especialistas en SEO técnico auditando una migración, desarrolladores que validan que una plantilla nueva no eliminó silenciosamente el módulo de artículos relacionados, y equipos editoriales haciendo una revisión trimestral de valor de enlace, todos lo usan de forma parecida: apuntarlo a una lista de URLs derivada del sitemap de forma periódica y comparar el número de páginas huérfanas en el tiempo. Como cada solicitud cuesta unas fracciones de centavo, correrlo semanalmente contra un catálogo completo sale más barato que una sola licencia de herramienta de rastreo manual.
Cómo encaja en una canalización
El endpoint es asíncrono por diseño: se recibe un task_id de inmediato y el mapa de enlaces completo llega al webhook cuando termina el rastreo, así que se integra en un trabajo nocturno o en una verificación posterior al despliegue sin mantener ninguna conexión abierta. Nunca se genera un resultado a partir de una solicitud fallida, y nada de lo enviado se conserva más allá del período indicado ni se usa para entrenar nada.
Qué puede hacer con ella
Auditoría posmigración
Al mover un sitio a un nuevo gestor de contenidos, se corre el verificador sobre el sitemap anterior para confirmar que cada página antes enlazada todavía tiene un camino interno hacia ella.
Detección de regresiones de plantilla
Se detecta el momento exacto en que un rediseño elimina en silencio el bloque de 'artículos relacionados' al observar un salto en el número de páginas huérfanas justo después del despliegue.
Revisión editorial de valor de enlace
Los equipos de contenido identifican páginas pilar que casi no reciben enlaces internos y agregan enlaces contextuales desde publicaciones nuevas para reforzarlas.
Auditoría de navegación y pie de página
Se identifican plantillas de pie de página o barra lateral que canalizan silenciosamente la mayor parte del valor de enlace del sitio hacia páginas utilitarias de bajo valor.
Preguntas frecuentes
¿Qué rastrea exactamente la API de auditoría de enlaces internos?
Analiza el HTML de cada URL enviada, extrae cada etiqueta de anclaje, resuelve rutas relativas y absolutas, y clasifica cada enlace como interno, externo o autorreferencial.
¿Puede encontrar páginas huérfanas en todo un sitio?
Sí; se envía un lote de URLs (normalmente tomado del sitemap) y el resultado muestra cuáles de ellas no reciben ningún enlace interno entrante.
¿Existe un plan gratuito?
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.
¿Cuánto cuesta cada solicitud?
0.002 dólares por solicitud, cobrados solo cuando el rastreo se completa con éxito; una solicitud fallida tras tres reintentos nunca se cobra.
¿Cómo recibo los resultados?
Por webhook firmado, la opción recomendada para automatización, o mediante un enlace firmado válido por 24 horas si prefiere consultarlo manualmente.
¿Sigue enlaces detrás de un inicio de sesión o generados con JavaScript?
Analiza el HTML entregado de la URL enviada; las páginas cuyos enlaces solo aparecen tras autenticarse o tras renderizado del lado del cliente deben enviarse ya pre-renderizadas.
¿Qué es un sumidero de enlaces?
Una página con una proporción desproporcionadamente alta de enlaces internos entrantes frente a salientes, provocada casi siempre por una plantilla global y no por una decisión editorial.
¿Puedo ejecutarlo de forma programada?
Sí, el endpoint es asíncrono y sin estado por solicitud, por lo que suele invocarse desde una tarea programada o un gancho posterior al despliegue sin configuración especial.
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/seo/internal-links \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/seo/internal-links", {
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/seo/internal-links",
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/seo/internal-links", 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/seo/internal-links", 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": "seo.internal_links",
"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.
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. |