Saltar al contenido
Ilustración del flujo entre una página HTML, una cabecera de descubrimiento, llms.txt y una versión Markdown
IA para el trabajo

Ejemplo práctico de `llms.txt` v2: Markdown, descubrimiento y validación

Cómo publicar un índice útil, descubrirlo desde HTML o cabeceras y detectar enlaces desactualizados. Un `llms.txt` útil describe un sitio real, enlaza páginas públicas relevantes y se mantiene sincronizado. La relación `rel="describedby"` y la versión Markdown hacen visible el camino de descubrimiento.

Por · Equipo de contenido y revisiónPublicado: 6 min de lectura

Puntos clave

Los puntos que más importan

  • Un `llms.txt` útil describe un sitio real, enlaza páginas públicas relevantes y se mantiene sincronizado.
  • La relación `rel="describedby"` y la versión Markdown hacen visible el camino de descubrimiento.
  • Validar el estado HTTP no basta: hay que comprobar que el contenido siga representando la promesa del enlace.

Un llms.txt no se vuelve útil sólo por existir en la raíz de un sitio. Debe describir un sitio real, enlazar páginas públicas relevantes y mantenerse sincronizado con ellas. Para una escuela de inteligencia artificial, eso significa presentar con claridad qué ofrece, dónde está su información pública y cómo comprobar que los enlaces siguen funcionando.

AIClases es una escuela online en español para aprender herramientas, crear proyectos y automatizar tareas reales. Su índice público aclara también un matiz importante: los certificados de finalización dependen de los requisitos de cada curso. Esa precisión importa porque un índice breve no debería convertir una condición concreta en una promesa universal.

Diagrama del flujo de descubrimiento entre una página HTML, una cabecera HTTP, llms.txt y una página Markdown

El descubrimiento funciona mejor cuando la página, la cabecera y el documento enlazado cuentan la misma historia.

Un ejemplo mínimo que se puede leer

La primera versión no necesita ser larga. Necesita ser honesta, estable y fácil de recorrer. Este ejemplo de estructura usa páginas reales de AIClases. Es una muestra mínima, no una copia del índice completo: contexto antes del primer H2 y listas de enlaces bajo cada H2.

# AIClases

> Escuela online de inteligencia artificial en español para aprender herramientas, crear proyectos y automatizar tareas reales. Los certificados de finalización dependen de los requisitos de cada curso.

Incluye solo información pública, relevante y estable. Revisa la selección cuando cambien las rutas o la oferta.

## Páginas públicas

- [Inicio de AIClases](https://aiclases.com/): presentación de la escuela.
- [Cursos de AIClases](https://aiclases.com/cursos): temarios y condiciones actuales de acceso.

La estructura sigue la convención de v2: un título H1, una descripción corta en blockquote y listas bajo encabezados H2. El valor está en la selección. Un sitemap puede enumerar muchas rutas; este documento sirve para explicar cuáles representan mejor el sitio y cómo se relacionan entre sí.

Ilustración de una estructura mínima de llms.txt con título, resumen y grupos de enlaces públicos

Una curación pequeña y bien agrupada suele ser más útil que una lista extensa sin contexto.

Markdown como compañero del HTML

El HTML sigue siendo la página principal para las personas. El Markdown puede ser una representación más sencilla del mismo contenido para herramientas que prefieren texto plano. La relación entre ambos debe ser explícita y no contradictoria.

En una página que publique una versión Markdown, el HTML podría declarar:

<link
  rel="alternate"
  type="text/markdown"
  href="/blog/ejemplo-llms-txt-markdown-validacion-2026.md"
>

El sitio también puede anunciar un índice o una representación alternativa mediante cabeceras HTTP:

Link: <https://aiclases.com/llms.txt>; rel="describedby"; type="text/plain"
Link: <https://aiclases.com/blog/ejemplo-llms-txt-markdown-validacion-2026.md>; rel="alternate"; type="text/markdown"

Esos fragmentos son patrones de implementación, no una afirmación de que cada sitio publique hoy las dos rutas. La regla práctica es más simple: sólo declares una relación si el recurso existe, responde desde la URL anunciada y representa el mismo tema que la página que lo enlaza. Un enlace Markdown que termina en una página HTML genérica añade fricción y puede hacer que el lector descarte todo el camino.

La relación describedby comunica que el recurso describe la página; alternate comunica que ofrece una representación alternativa. La especificación también deja espacio para las convenciones de ruta: puede haber un archivo .md junto al HTML o una ruta equivalente documentada por el sitio. Lo que no cambia es la necesidad de consistencia.

Validación reproducible con curl y fetch

Antes de publicar, guarda una comprobación que otra persona pueda repetir. El estado 200 es el primer filtro, no la prueba completa. Revisa también el tipo de contenido, las redirecciones y el texto que realmente llegó.

set -eu

BASE="https://aiclases.com"
INDEX="$BASE/llms.txt"

curl -fsS -D headers.txt -o llms.txt "$INDEX"
grep -qi '^content-type: text/plain' headers.txt
grep -q '^# AIClases' llms.txt

printf 'Índice validado: %s\n' "$INDEX"
curl -fsSI "$BASE/" | sed -n '1,8p'

Para un índice propio, el chequeo puede extenderse a los enlaces que contiene. Este ejemplo no intenta interpretar todo Markdown; sólo extrae URLs absolutas y confirma que cada una responda:

const base = "https://aiclases.com";
const indexResponse = await fetch(`${base}/llms.txt`);

if (!indexResponse.ok) {
  throw new Error(`Índice no disponible: ${indexResponse.status}`);
}

const index = await indexResponse.text();
const links = [...index.matchAll(/https?:\/\/[^\s)>]+/g)]
  .map(([url]) => url.replace(/[.,;]+$/, ""));

for (const url of [...new Set(links)]) {
  const response = await fetch(url, { redirect: "follow" });
  if (!response.ok) {
    throw new Error(`${url} respondió ${response.status}`);
  }
  console.log(`${response.status} ${url}`);
}

En producción conviene guardar la fecha, la URL final después de redirecciones y el hash del documento validado. Así puedes distinguir un cambio de contenido de un cambio de transporte. También puedes ejecutar una prueba separada para cada relación HTML o cabecera que declares; de nada sirve que el índice esté correcto si el descubrimiento apunta a un recurso inexistente.

Curación y drift: dos problemas distintos

La curación es una decisión editorial: qué páginas merecen entrar, cómo se agrupan y qué descripción ayuda a entenderlas. El drift ocurre después, cuando el sitio cambia y el índice conserva una promesa que ya no coincide con la página enlazada.

Un enlace roto es el caso más evidente. El más peligroso devuelve 200 pero cambió de propósito. Por ejemplo, si una línea promete el catálogo de cursos y la ruta ahora muestra una pantalla genérica, el chequeo HTTP pasa aunque la selección dejó de ser útil. Por eso conviene comparar tres cosas: la URL, el título o descripción que la acompaña y el contenido visible que recibe el lector.

Comparación visual entre un enlace de llms.txt que coincide con su página y otro que muestra una advertencia de desactualización

El drift aparece cuando el estado HTTP sigue siendo correcto, pero la promesa del enlace ya no describe la página.

AIClases ya publica un índice en /llms.txt. El archivo es una ayuda para lectores y herramientas. Su presencia no garantiza indexación ni posiciones en búsquedas con IA. Esa es una buena frontera editorial: informar qué se ofrece y cómo recorrerlo sin prometer un resultado que el archivo no puede controlar.

Un mantenimiento razonable puede ser mensual o dispararse después de una migración de rutas. En cada revisión:

  • elimina enlaces que ya no son públicos o relevantes;
  • confirma que las páginas principales siguen respondiendo y conservan el tema anunciado;
  • revisa que el idioma, el nombre del producto y la descripción sigan actualizados;
  • comprueba que la versión Markdown, el HTML y las cabeceras no se contradigan;
  • registra el cambio para que la siguiente persona sepa qué se verificó.

La prueba no tiene que convertirse en una plataforma compleja. Un script pequeño, una revisión de pull request o una tarea de mantenimiento bastan si dejan evidencia y fallan cuando aparece un enlace desactualizado.

Dos conexiones útiles dentro del sitio

El hub de comparaciones de AIClases es un ejemplo actual de páginas programáticas agrupadas por una intención de decisión: comparar herramientas. Puedes usarlo para comprobar si cada página aporta una diferencia útil antes de incluirla en un índice. Una plantilla repetida no justifica que todas sus URLs entren en llms.txt.

La guía llms.txt, GEO y LEO para tu marca ayuda a separar descripción verificable, contenido citable y observación de cómo un asistente representa una marca. Este artículo aporta el ejemplo y la validación técnica; no abre una segunda página para competir con ese enfoque.

Para seguir

La especificación de llms.txt v2 explica el formato y el propósito del archivo; sus cambios recientes detallan las relaciones de descubrimiento; y la especificación de agent-readiness reúne recomendaciones prácticas sobre enlaces, cobertura y validación.

Para practicar con un punto de partida concreto, abre ChatGPT para Principiantes, un curso gratuito. Si ya lo dominas, consulta los temarios actuales y las opciones de acceso. Las condiciones de certificados dependen de cada curso.

ChatGPT para Principiantes

Consulta las lecciones, los ejercicios disponibles y las condiciones de acceso en la página de este curso.

Ver el curso gratuito

Fuentes

Referencias externas

  1. The /llms.txt file, v2— llms-txt
  2. Cambios de llms.txt v2— llms-txt
  3. /llms.txt · Website Spec— The Website Specification

Siguiente curso recomendado

ChatGPT para el Trabajo

Curso intensivo de ocho clases para transformar pedidos, archivos y datos en comunicaciones, contenido, investigación, análisis y planes profesionales verificables. 8 clases. Este curso por US$20, en un solo pago. También está incluido en el acceso a toda la escuela.

La matrícula incluye todos los cursos actuales y los nuevos que publiquemos, libros, prompts y materiales. Paga en 6 o 12 cuotas (desde US$9 al mes) o US$80 en un pago.

Help & support