Skip to content

Generando un archivo llms.txt para tu Sitio Astro

Published: at 11:30 AM

Cada día más y más personas usan ChatGPT, Perplexity y otras herramientas de IA para buscar y resumir contenido. Como se discutió en una de mis publicaciones anteriores sobre SEO a SAO, es solo cuestión de tiempo antes de que la mayoría de las visitas a sitios web y blogs provengan de agentes de IA.

Cuando se trata de hacer tu contenido accesible a modelos de lenguaje, hay una manera más simple que soluciones complejas de crawleo - especialmente para sitios generados estáticamente construidos con Astro. En esta publicación, te guiaré a través de la creación de un archivo llms.txt que expone el contenido de tu blog a LLMs en un formato limpio y estructurado.

¿Qué es llms.txt?

Un archivo llms.txt es conceptualmente similar a robots.txt pero diseñado específicamente para modelos de lenguaje. Proporciona una representación estructurada basada en texto de tu contenido que es fácil de parsear y entender para los LLMs.

Los LLMs no son muy buenos navegando a través de múltiples páginas mediante enlaces, en cambio, los LLMs son muy buenos extrayendo contenido de una sola página y almacenándolo en su memoria.

Herramientas de Crawleo como Crawl4AI pueden ser exageradas

Herramientas como Crawl4AI ofrecen potentes capacidades de crawleo de sitios web para LLMs, aunque son ideales para generar LLMs.txt para sitios dinámicos, son exageradas para sitios estáticos.

Para sitios Astro especialmente, donde el contenido típicamente se almacena como archivos markdown con frontmatter, ya tienes contenido perfectamente estructurado listo para ser expuesto directamente.

Implementando un Endpoint llms.txt en Astro

Así es cómo puedes generar archivos LLMs.txt para tu sitio Astro.

Crea un archivo en src/pages/llms.txt.ts (o src/pages/api/llms.txt.ts dependiendo de tu configuración de Astro). y pon el siguiente pedazo de código.

import { getCollection } from "astro:content";
import type { APIRoute } from "astro";

export const GET: APIRoute = async () => {
    const posts = await getCollection("blog"); // adjust "blog" to your collection name
    const content = `# Vinci Rufus Blog\n
    ${posts
            .map(
                (post) =>
                    `# ${post.data.title}\n\n
                https://www.vincirufus.com/postss/${post.slug}.md \n
                ${post.data.description} \n
                  ${post.body}
                }`
            )
            .join("\n\n")}`;
    return new Response(content, {
        headers: { "Content-Type": "text/plain; charset=utf-8" },
    });
};

Este código crea un endpoint API que:

  1. Obtiene todas las publicaciones de tu colección de blog
  2. Crea un archivo de texto comenzando con el título de tu blog
  3. Para cada publicación, incluye:
    • El título de la publicación como encabezado
    • Un enlace a la publicación
    • El contenido completo de la publicación

Construir, Ejecutar y Desplegar

Construye y ejecuta tu sitio web / blog usando los comandos habituales

pnpm dev o pnpm build

Tu archivo generado estará disponible en https://yourdomain.com/llms.txt.

Es así de simple. Una forma realmente simple de hacer que el contenido de tus sitios esté disponible para LLMs.


Previous Post
Patrones Emergentes de Interacción del Usuario en Aplicaciones Agénticas
Next Post
Ingeniería de Prompts—La Habilidad Crítica para Construir Flujos de Trabajo Agénticos Confiables