Tecnología

Cómo generar un archivo llms.txt para tu sitio web Astro - Guía completa

Cómo generar un archivo llms.txt para tu sitio web Astro - Guía completa

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

Cuando se trata de hacer que tu contenido sea accesible para los modelos de lenguaje, hay una forma más sencilla que las complejas soluciones de rastreo, especialmente para los sitios generados estáticamente 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 los LLM en un formato limpio y estructurado.

¿Qué es llms.txt?

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

Los LLM no son muy buenos para navegar a través de múltiples páginas a través de enlaces. En cambio, los LLM son muy buenos para extraer contenido de una sola página y almacenarlo en su memoria. Aquí es donde llms.txt se vuelve invaluable.

Por qué las herramientas de rastreo como Crawl4AI pueden ser exageradas

Herramientas como Crawl4AI ofrecen poderosas capacidades de rastreo de sitios web para LLM. Si bien son ideales para generar llms.txt para sitios dinámicos, pueden ser exagerados para sitios estáticos.

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

Implementación de un Endpoint llms.txt en Astro

Aquí te mostramos cómo puedes generar archivos LLMs.txt para tu sitio de 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 agrega el siguiente código:

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

export const GET: APIRoute = async () => {
    try {
        // Fetch all content collections
        const [blogs, features, transcriptions, alternatives, help] = await Promise.all([
            getCollection("blog"),
            getCollection("features"), 
            getCollection("transcription"),
            getCollection("alternatives"),
            getCollection("help")
        ]);

        // Sort blogs by date (newest first)
        const sortedBlogs = blogs
            .filter(post => !post.data.draft)
            .sort((a, b) => new Date(b.data.date).getTime() - new Date(a.data.date).getTime());

        // Filter non-draft content
        const activeFeatures = features.filter(item => !item.data.draft);
        const activeTranscriptions = transcriptions.filter(item => !item.data.draft);
        const activeAlternatives = alternatives.filter(item => !item.data.draft);

        const content = `# Tu Nombre de Sitio Web - Guía de Contenido Completa

Este documento contiene el contenido completo de tu sitio web.

Sitio web: https://tusitio web.com
Última actualización: ${new Date().toISOString().split('T')[0]}

Contenido del blog

${sortedBlogs .map((post) => `#

${post.data.title}

URL: https://tusitio web.com/blog/${post.data.slug || post.id} Publicado: ${post.data.date} Categoría: ${post.data.category} Autor: ${post.data.author} Descripción: ${post.data.description}

${post.body}

---`).join(‘\n\n’)}

Secciones de contenido adicionales

${activeFeatures .map((feature) => `#

${feature.data.title}

URL: https://tusitio web.com/${feature.data.slug} Categoría: ${feature.data.category} ${feature.data.description}

${feature.body}

---`).join(‘\n\n’)}


Este contenido se proporciona para ayudar a los asistentes de IA a comprender las ofertas de tu sitio web y proporcionar información precisa.`;

    return new Response(content, {
        headers: { 
            "Content-Type": "text/plain; charset=utf-8",
            "Cache-Control": "public, max-age=3600" // Cache for 1 hour
        },
    });
} catch (error) {
    console.error('Error al generar llms.txt:', error);
    return new Response('Error al generar llms.txt', { status: 500 });
}

};


## Cómo funciona este código

Este código crea un endpoint de API que:

1. **Obtiene todas las publicaciones** de tus colecciones de contenido utilizando `getCollection()`
2. **Filtra el contenido de borrador** para incluir solo los artículos publicados
3. **Ordena el contenido por fecha** para mostrar el contenido más reciente primero
4. **Crea un archivo de texto estructurado** comenzando con el título de tu sitio
5. **Incluye para cada publicación:**
   - El título de la publicación como un encabezado
   - Un enlace directo a la publicación
   - Metadatos (fecha, categoría, autor, descripción)
   - El contenido completo de la publicación
6. **Maneja los errores con elegancia** con el registro de errores adecuado
7. **Establece los encabezados apropiados**, incluido el almacenamiento en caché para el rendimiento

## Personalización para la estructura de tu contenido

## Ajuste de los nombres de las colecciones

El ejemplo anterior utiliza múltiples colecciones. Si solo tienes una colección de blog, simplifícalo:

```typescript
export const GET: APIRoute = async () => {
    const posts = await getCollection("blog"); // Ajusta al nombre de tu colección
    
    const publishedPosts = posts
        .filter(post => !post.data.draft)
        .sort((a, b) => new Date(b.data.date).getTime() - new Date(a.data.date).getTime());

    const content = `# Tu Nombre de Blog

${publishedPosts
    .map((post) => `# ${post.data.title}

https://tusitio web.com/blog/${post.data.slug || post.id}

${post.data.description}

${post.body}
`).join('\n\n')}`;

    return new Response(content, {
        headers: { "Content-Type": "text/plain; charset=utf-8" },
    });
};

Agregar filtrado de contenido

Es posible que desees excluir ciertas categorías o incluir solo contenido destacado:

// Solo incluir publicaciones destacadas
const featuredPosts = posts.filter(post => post.data.featured && !post.data.draft);

// Excluir categorías específicas
const filteredPosts = posts.filter(post => 
    !post.data.draft && !['internal', 'private'].includes(post.data.category)
);

Beneficios de usar llms.txt

1. Descubribilidad mejorada de la IA

Las herramientas de IA pueden comprender rápidamente toda tu biblioteca de contenido sin rastrear varias páginas.

2. Mejor contexto para las respuestas de la IA

Cuando los usuarios hacen preguntas relacionadas con tu contenido, los modelos de IA tienen acceso a información completa y estructurada.

3. SEO para la era de la IA

A medida que la búsqueda evoluciona hacia resultados impulsados por la IA, tener contenido estructurado para el consumo de la IA se vuelve crucial.

4. Beneficios de rendimiento

La generación estática significa que tu archivo llms.txt se crea en tiempo de compilación, lo que proporciona tiempos de respuesta rápidos.

Prueba de tu implementación de llms.txt

Después de implementar el endpoint, pruébalo:

  1. Visita el endpoint directamente: https://tusitio.com/llms.txt
  2. Verifica la estructura del contenido para asegurarte de que todas las publicaciones estén incluidas
  3. Verifica que el formato sea limpio y legible
  4. Prueba con herramientas de IA pidiéndoles que analicen tu contenido de llms.txt

Mejores prácticas para llms.txt

Mantén el contenido actualizado

Actualiza tu llms.txt regularmente reconstruyendo tu sitio cuando publiques contenido nuevo.

Incluye metadatos relevantes

Agrega fechas de publicación, categorías y descripciones para ayudar a la IA a comprender el contexto.

Estructura el contenido claramente

Utiliza formatos de encabezado consistentes y separadores claros entre las secciones.

Supervisa el tamaño del archivo

Para sitios con cientos de publicaciones, considera paginar o filtrar el contenido para mantener el archivo manejable.

Conclusión

Crear un archivo llms.txt para tu sitio web de Astro es una forma sencilla de hacer que tu contenido sea accesible para los modelos de lenguaje de IA. Este enfoque aprovecha las colecciones de contenido de Astro para crear una vista estructurada y completa del contenido de tu sitio.

A medida que la IA se vuelve cada vez más importante para el descubrimiento de contenido, la implementación de llms.txt posiciona tu sitio web para una mejor visibilidad en el panorama de búsqueda impulsado por la IA. La implementación es simple, de buen rendimiento y fácil de mantener como parte de tu proceso de compilación de Astro.

Comienza a implementar llms.txt hoy mismo para asegurarte de que tu contenido esté listo para el futuro de la búsqueda y el descubrimiento impulsados por la IA.

Preguntas Frecuentes

¿Cuál es la diferencia entre llms.txt y sitemap.xml?

Mientras que sitemap.xml enumera tus páginas para los rastreadores de motores de búsqueda, llms.txt proporciona el contenido real en un formato optimizado para que los modelos de lenguaje lo comprendan y procesen.

¿Con qué frecuencia debo actualizar mi archivo llms.txt?

Tu archivo llms.txt se actualiza automáticamente cuando reconstruyes tu sitio de Astro, por lo que se mantiene actualizado con tu calendario de publicación de contenido.

¿Puedo incluir imágenes y contenido multimedia en llms.txt?

llms.txt está basado en texto, así que incluye descripciones de imágenes y contenido multimedia en lugar de los archivos en sí. Concéntrate en el contenido textual que la IA pueda procesar de manera efectiva.

¿Afectará llms.txt a mi SEO?

No, llms.txt no afectará negativamente al SEO tradicional. Está diseñado para complementar tu estrategia de SEO existente al hacer que el contenido sea accesible para las herramientas de IA.

¿Qué tamaño debe tener mi archivo llms.txt?

No hay un límite estricto, pero mantenlo razonable. Para los sitios con cientos de publicaciones, considera filtrar para incluir solo tu contenido más importante o reciente.

Andre Smith

Andre Smith

Experto en tecnología, productividad y soluciones de software. Apasionado por ayudar a los equipos a trabajar de manera más eficiente a través de herramientas y estrategias innovadoras.

Artículos Relacionados

Descubre más insights y consejos para aumentar tu productividad

Los mejores conversores gratuitos de audio a texto
ia

Los mejores conversores gratuitos de audio a texto

¿Cansado de transcripciones lentas e imprecisas? Probamos los 5 mejores conversores gratuitos de audio a texto para 2025. Encuentra las mejores herramientas gratuitas para transcribir MP3, entrevistas, conferencias y discursos en vivo.

7 de agosto de 2025 Leer más →
10 Mejores Herramientas de IA para Mujeres en 2025
ia

10 Mejores Herramientas de IA para Mujeres en 2025

Descubre las 10 mejores herramientas de IA diseñadas específicamente para mujeres en 2025. Desde productividad y bienestar hasta avance profesional, estas herramientas ayudan a las mujeres a trabajar de forma más inteligente y lograr más.

4 de agosto de 2025 Leer más →

Descubre Más Insights

Explora nuestro blog para más consejos de productividad, insights tecnológicos y soluciones de software.