· 11 min de lectura

Los 5 archivos mas imporatntes para mejorar el SEO para buscadores y LLMs en este 2026.

¿Te gusto este contenido? Únete a la comunidad de Indie Builders y descubre las mejores formas de crear un producto digital. clic aquí

tl;dr Cinco archivos de texto plano, todos en la raíz del dominio, deciden buena parte de cómo te ve el mundo automatizado: .htaccess controla el servidor (Apache), robots.txt les dice a los crawlers qué pueden tocar, sitemap.xml les dice qué existe, y el par llms.txt / llms-full.txt es la nueva capa pensada específicamente para que un LLM entienda tu sitio sin tener que renderizar HTML. Ninguno de los cinco “hace SEO” por sí mismo — son la señalización de tráfico que permite que el SEO (clásico o de IA) funcione bien.

Cuando un crawler — el de Google, el de Bing o el de un modelo de lenguaje que está respondiendo una pregunta de un usuario — llega a tu dominio, no aterriza directamente en tu contenido. Primero negocia con un puñado de archivos de configuración y descubrimiento que viven en la raíz: /robots.txt, /sitemap.xml, y, desde hace poco, /llms.txt. Si el sitio corre sobre Apache, hay un sexto actor invisible: .htaccess, que decide cómo responde el servidor antes de que cualquiera de los anteriores entre en juego.

Este post recorre los cinco que pediste, en el orden en que un crawler los encontraría: primero el servidor, luego las reglas de acceso, luego el mapa del contenido, y al final la capa nueva pensada para IA.

Manifiesto de ética de siempre: estos archivos son declarativos, no defensivos. robots.txt es una petición de buena fe — un crawler mal portado puede ignorarlo por completo, y bloquear por user-agent nunca sustituye a la seguridad real del servidor. Lo que sí logran, cuando se usan bien, es decirle claramente a los actores que cooperan (que son la inmensa mayoría) qué esperas de ellos.


1. .htaccess: la puerta antes de la puerta

.htaccess es un archivo de configuración del servidor web Apache, que se coloca dentro de un directorio y aplica reglas a ese directorio y a sus subdirectorios, sin tener que tocar la configuración global del servidor (Apache HTTP Server — .htaccess Tutorial). Es lo primero que se evalúa, antes de que el navegador o el crawler vean una sola línea de HTML.

Usos típicos relevantes para SEO:

# Redirigir todo a HTTPS y a la versión sin "www"
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301,NE]

# Redirección 301 de una URL vieja a una nueva (preserva el "link juice")
Redirect 301 /blog/post-viejo /blog/post-nuevo

# Página 404 personalizada
ErrorDocument 404 /404.html

# Forzar compresión para que el crawler gaste menos presupuesto de rastreo
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>

Por qué importa para SEO: las redirecciones 301 mal hechas (o ausentes) son una de las causas más comunes de pérdida de link equity tras una migración o un cambio de URLs; un 404 sin manejar le da al crawler una señal de sitio descuidado; y servir contenido sin comprimir desperdicia el tiempo de rastreo que un motor de búsqueda le asigna a tu dominio (tu crawl budget).

Nota para este sitio: davidcastillo.dev corre sobre Astro generando HTML estático, servido desde una plataforma que no es Apache, así que no hay un .htaccess en este repositorio — el equivalente funcional (redirecciones, headers, compresión) lo gestiona la plataforma de hosting o astro.config.mjs. Si migraras a un VPS con Apache, este archivo sería tu primera parada.

2. robots.txt: el primer acuerdo con cualquier crawler

robots.txt le dice a los crawlers qué URLs pueden solicitar en tu sitio. Su propósito principal no es ocultar contenido de los resultados de búsqueda — para eso existe noindex — sino evitar que los bots sobrecarguen el servidor pidiendo páginas que no aportan valor de indexación (filtros, búsquedas internas, áreas de admin) (Google Search Central — Introducción a robots.txt).

Así se ve el de este sitio (public/robots.txt):

User-agent: *
Allow: /

User-agent: GPTBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: anthropic-ai
Allow: /

User-agent: PerplexityBot
Allow: /

# ...más bots de IA listados explícitamente

Sitemap: https://davidcastillo.dev/sitemap-index.xml

Dos cosas que vale la pena notar:

  1. La directiva Sitemap: conecta este archivo con el siguiente. Es el puente formal entre “qué puedes rastrear” y “dónde está todo”.
  2. Los bots de IA tienen user-agents propios y distintos entre sí. Anthropic, por ejemplo, separa explícitamente ClaudeBot (entrenamiento), Claude-User (cuando un usuario le pide a Claude que visite una página) y Claude-SearchBot (indexación para respuestas de búsqueda) — bloquear uno no bloquea los otros (Claude Help Center — cómo bloquear el crawler de Anthropic). OpenAI hace lo mismo con GPTBot (entrenamiento), OAI-SearchBot (búsqueda) y ChatGPT-User (navegación en vivo durante una conversación) (OpenAI — Crawlers).

La consecuencia práctica: si quieres aparecer citado cuando alguien le pregunta algo a ChatGPT o a Claude, pero no quieres que tu contenido se use para entrenar el próximo modelo, ya no es una sola decisión — es una por cada bot, y robots.txt es donde se declara.

# Ejemplo: permitir indexación/respuestas, bloquear solo entrenamiento
User-agent: ClaudeBot
Disallow: /

User-agent: Claude-SearchBot
Allow: /

3. sitemap.xml: el mapa que evita que algo se pierda

El protocolo Sitemaps es un formato XML para listarle a los motores de búsqueda las URLs de tu sitio disponibles para rastreo, con metadatos opcionales como la última fecha de modificación (sitemaps.org — Protocolo). No garantiza indexación, pero sí garantiza descubrimiento: una página enlazada en el sitemap no depende de que el crawler la encuentre siguiendo enlaces internos.

En Astro, el sitemap no se escribe a mano — lo genera la integración oficial en build time:

// astro.config.mjs
import sitemap from '@astrojs/sitemap';

export default defineConfig({
  site: 'https://davidcastillo.dev',
  integrations: [mdx(), sitemap(), react()],
});

Con eso, cada npx astro build produce sitemap-index.xml y sitemap-0.xml con todas las rutas estáticas del sitio (Astro Docs — @astrojs/sitemap), y robots.txt apunta a ese índice. Es la razón por la que, en este proyecto, nunca hay que actualizar el sitemap manualmente al publicar un post nuevo: el glob loader de src/content.config.ts detecta el archivo Markdown, Astro genera la ruta, y la integración lo añade al sitemap automáticamente en el siguiente build.

Por qué importa para SEO clásico: en sitios grandes o con contenido nuevo frecuente (como un blog), el sitemap acelera drásticamente cuánto tarda Google en encontrar una página nueva, aunque la decisión final de indexarla siga dependiendo de la calidad del contenido.

4. llms.txt y llms-full.txt: el robots.txt de la era de los LLMs

Aquí está la pieza más nueva del conjunto. llms.txt es una especificación propuesta por Jeremy Howard (Answer.AI) para resolver un problema muy concreto: un LLM que necesita entender tu sitio para responder una pregunta tiene una ventana de contexto limitada, y el HTML real está lleno de navegación, scripts y CSS que no aportan nada al modelo (llmstxt.org — The /llms.txt file). La especificación define dos archivos complementarios:

  • /llms.txt — un índice curado y conciso: nombre del sitio, un resumen en blockquote, y enlaces organizados por sección (en Markdown, con encabezados H2).
  • /llms-full.txt — la versión expandida: el contenido completo (o casi) en un solo archivo, para que un modelo lo consuma de una sola pasada sin tener que navegar enlace por enlace.

El llms.txt de este sitio (public/llms.txt) sigue exactamente ese formato:

# David Castillo - Ingeniero IoT & Indie Hacker

> Sitio personal de David Castillo Calle. Ingeniero en Electrónica y
> Telecomunicaciones con 4 años en desarrollo backend, arquitectura IoT
> e integraciones fintech...

## Navegación Principal
- [Inicio](https://davidcastillo.dev/) - Página principal
- [Blog](https://davidcastillo.dev/blog) - Artículos sobre tecnología...

## Publicaciones Destacadas del Blog
### IA & Herramientas de Desarrollo
- **[¿Cuándo usar las herramientas de Claude?](...)** - Casos de uso...

Es, literalmente, un resumen ejecutivo del sitio escrito para una audiencia no humana. Dato importante: este sitio todavía no tiene un /llms-full.txt — solo el índice curado. Para un blog de este tamaño no es grave (el índice ya enlaza a cada post), pero si el catálogo de contenido sigue creciendo, generar el -full automáticamente en build time (concatenando el cuerpo de cada entrada de la colección blog) sería el siguiente paso natural.

¿Realmente lo usan los modelos hoy?

Aquí hay que ser honesto: a mediados de 2026, la adopción de llms.txt por parte de los proveedores de modelos como mecanismo de fetch explícito sigue siendo limitada y dispar — no es un estándar reconocido formalmente por Google, OpenAI o Anthropic del mismo modo que robots.txt lo es por todos los motores de búsqueda desde hace décadas. Lo que sí es real e inmediato es lo otro: que los crawlers de entrenamiento e indexación de esas mismas empresas (GPTBot, ClaudeBot, PerplexityBot) respetan robots.txt, y que tener un llms.txt bien escrito cuesta minutos y no tiene downside — es una apuesta razonable de bajo costo sobre hacia dónde va el ecosistema, no una solución mágica ya garantizada.

5. Cómo se conectan los cinco

Pensado como un flujo, no como cinco piezas sueltas:

ArchivoAudienciaPregunta que responde
.htaccessEl servidor mismo”¿Cómo debo responder antes de servir nada?”
robots.txtCualquier crawler (buscador o IA)“¿Qué partes del sitio puedo pedir?”
sitemap.xmlCrawlers de buscadores”¿Qué URLs existen y cuándo cambiaron?”
llms.txtLLMs que responden preguntas en vivo”¿Cuál es el resumen ejecutivo de este sitio?”
llms-full.txtLLMs que necesitan el contenido completo”Dame todo el contenido en un solo lugar”

robots.txt es el único de los cinco que autoriza; los demás (sitemap.xml, llms.txt, llms-full.txt) solo informan, asumiendo que el acceso ya fue concedido. Por eso el orden de prioridad al auditar un sitio es siempre el mismo: primero verificas que robots.txt no esté bloqueando por accidente algo que sí quieres indexado (el error más común y más costoso), y solo después te preocupas por enriquecer sitemap o llms.txt.

6. Reflexiones y conclusiones

  1. Estos archivos no mejoran tu ranking por sí mismos — eliminan fricción. Ningún robots.txt perfecto compensa contenido mediocre, igual que ningún .htaccess arregla una mala arquitectura de información. Lo que hacen es asegurarse de que el contenido bueno que ya tienes sea encontrado, entendido y no descartado por accidente.
  2. El crawling de IA fragmentó lo que antes era una sola decisión. Antes “permitir o no a los buscadores” era binario. Hoy hay al menos tres preguntas independientes por cada proveedor de IA: ¿puede entrenar con mi contenido?, ¿puede citarlo en una respuesta en vivo?, ¿puede indexarlo para su propio buscador? robots.txt con user-agents específicos es la única herramienta que permite responder cada una por separado.
  3. llms.txt es una apuesta, no un hecho consumado. Vale la pena tenerlo — cuesta poco y el ecosistema claramente se mueve en esa dirección — pero no lo confundas con robots.txt o sitemap.xml, que son estándares maduros con soporte garantizado desde hace años.
  4. Auditar esto toma diez minutos y se le hace a cualquier sitio, no solo a uno nuevo. Revisa /robots.txt, abre tu sitemap-index.xml y confirma que tu post más reciente está ahí, y pregúntate si tu llms.txt describe el sitio como es hoy o como era hace un año.

La pregunta de fondo, otra vez, no es técnica sino de intención: ¿a quién quieres dejar entrar, a quién quieres mostrarle todo, y a quién prefieres no alimentarle un modelo de entrenamiento? Estos cinco archivos son donde esa intención se vuelve configuración.

7. Lista de referencias

Servidor y control de acceso

Sitemaps

Crawlers de IA y llms.txt

En este blog


#SEO, #robots.txt, #llms.txt, #Sitemap, #Crawlers de IA, #Astro,

Ver en GitHub | Realizar un PR