Generador llms.txt
Genera un llms.txt (spec llmstxt.org) para informar a los crawlers LLM. Form o importación de sitemap.xml.
Secciones (H2)
Importar desde sitemap.xml
Solo URLs <loc>. Título adivinado del último segmento
llms.txt
⬇ llms.txtColócalo en la raíz: https://example.com/llms.txt
📖 Dónde se suele tropezar
Genera un índice en Markdown de tu sitio para modelos de lenguaje, siguiendo el formato propuesto en llmstxt.org, con importación masiva desde sitemap.xml. Es una convención propuesta, no un estándar del W3C ni del IETF: nadie garantiza qué rastreadores lo leerán, si es que alguno lo hace. Más que algo que publicas esperando un resultado, en la práctica se parece más a el ejercicio de producir una página que explique qué contiene realmente tu sitio.
| Caso | Qué ocurre | Qué hacer |
|---|---|---|
| Los títulos importados del sitemap son simples slugs | Un sitemap.xml sólo contiene elementos <loc>, es decir, URLs, así que los títulos únicamente pueden deducirse mecánicamente del último segmento de la ruta: /tools/cidr/ se convierte en cidr. Ahí surge el problema de fondo: un llms.txt que es una lista de URLs sin descripciones no vale casi nada como índice, porque ningún lector, humano o modelo, puede saber qué entrada mirar. A esas alturas no dice nada que sitemap.xml no dijera ya. |
Escribe una frase por línea diciendo qué permite hacer la página: [Calculadora CIDR](/tools/cidr/): calcula el número de hosts y el rango de direcciones de una subred. Añadir lo que el título por sí solo no transmite es el sentido entero del formato. Y no hace falta listar todas las páginas; de hecho recortar a las veinte o cincuenta que son verdaderas puertas de entrada funciona mucho mejor como índice, porque una lista de mil líneas no transmite prioridad alguna y viene a decirle al lector que se lo lea todo. El criterio para incluir algo es si ayuda a ver qué abarca el sitio. |
| Lo has publicado y nada parece leerlo | Primero, no ver efecto alguno es lo normal: leer llms.txt queda por completo a criterio del rastreador y no hay mecanismo que te avise de que ocurrió. Pero antes de eso, un número sorprendente de sitios sencillamente no sirven el archivo. Las causas habituales son un fallback de SPA que devuelve index.html para /llms.txt, una CDN que no espera la extensión .txt y responde 404, o un Content-Type igual a application/octet-stream que lo convierte en una descarga. Poder verlo en tu navegador no equivale a que un rastreador pueda recuperarlo. |
Compruébalo con curl -I https://example.com/llms.txt: quieres un 200 y un Content-Type de text/plain o text/markdown. Ejecuta también curl -s ... | head -5 para confirmar que el cuerpo no es HTML: un fallback de SPA salta al instante así. Ya puestos, comprueba que robots.txt no bloquee de forma amplia la raíz del sitio. Los navegadores meten cachés y service workers por medio, así que haz el diagnóstico con curl, no con el navegador. |
| Creer que sustituye a robots.txt | llms.txt no es control de acceso. Es un catálogo de lo que te gustaría que se leyera; omitir una página no la bloquea, y listarla no equivale a consentir su uso para entrenamiento. El error también se da en sentido contrario: ni publicarlo hace que los modelos lean tu sitio, ni no publicarlo los mantiene lejos. Los rastreadores siguen guiándose por robots.txt y por la estructura real de enlaces, igual que antes. |
Si quieres controlar los rastreadores de IA, hazlo en robots.txt, donde puedes nombrarlos uno a uno: User-agent: GPTBot, ClaudeBot, PerplexityBot, Google-Extended. Los dos archivos cumplen funciones completamente distintas, así que tener ambos es la configuración correcta: robots.txt dice qué se puede rastrear y llms.txt qué merece la pena mirar dentro de eso. Ten en cuenta que la lista de nombres de bots no para de crecer, así que lo que escribas hoy quedará desfasado; cuenta con revisarlo. |
llms.txt y llms-full.txt son archivos distintos. El primero es un índice: URLs con una línea de descripción cada una. El segundo es una edición de texto completo que incluye el cuerpo de cada página y puede alcanzar varios megabytes. Haz primero el índice y plantéate la versión completa sólo si de verdad tienes documentación técnica que quieras que se ingiera. El problema operativo real es el envejecimiento: un índice escrito a mano siempre se pudre, y un llms.txt lleno de enlaces rotos es peor que no tener ninguno, porque entrega al lector un mapa equivocado. El único montaje que aguanta es generarlo desde sitemap.xml en CI y dejar sólo las descripciones en manos humanas. Junto a eso, comprueba los enlaces rotos en cada despliegue: que se genere no significa que sea correcto, y las páginas que fusionaste o borraste dejan sus enlaces atrás.
📖 Cómo usar
-
1
Datos del sitioNombre y resumen obligatorios
-
2
Añade secciones y enlacesH2 grupos + [Title](URL): desc
-
3
Descarga y coloca en raízhttps://example.com/llms.txt -> 200 = OK
❓ Preguntas frecuentes
¿Qué es llms.txt?
¿Diferencia con llms-full.txt?
¿Diferente de robots.txt?
🐛 ¿Encontró un problema con esta herramienta?
Gratis, sin registro. Incluso solo los pasos para reproducir ayudan. Los informes van directamente al operador y se usan para corregir.
¡Gracias por tu reporte!
Tu reporte llegó al operador y se usará para mejorar.