--- title: "Agente: ¿Entiendes las palabras que salen de mi boca?" date: "2026-03-25" description: "Una lista práctica para hacer tu sitio web descubrible, legible y citable por agentes de AI y motores de respuestas — con un prompt listo para copiar y pegar." language: es url: "https://pablooliva.de/the-closing-window/es/ai-agent-discoverability/" markdownUrl: "https://pablooliva.de/the-closing-window/es/ai-agent-discoverability.md" translations: - language: en url: "https://pablooliva.de/the-closing-window/ai-agent-discoverability/" - language: ar url: "https://pablooliva.de/the-closing-window/ar/ai-agent-discoverability/" - language: de url: "https://pablooliva.de/the-closing-window/de/ai-agent-discoverability/" - language: zh url: "https://pablooliva.de/the-closing-window/zh/ai-agent-discoverability/" ---
## TL;DR Tu sitio web probablemente es invisible para motores de respuesta de AI como Perplexity. Al agregar un puñado de archivos estáticos (llms.txt, archivos markdown por post, JSON feeds) y algunas etiquetas HTML (Schema.org JSON-LD, enlaces hreflang, descubrimiento de sitemap), puedes hacer que tu contenido sea fácilmente descubrible, analizable y citable por agentes de AI. Nada de esto requiere un framework o servicio de terceros — solo plantillas que se ejecutan una vez y cubren cada post futuro.
Hace unas semanas, cuando empecé a escribir más sobre AI, pensé que lo que estaba publicando en la web debería ser fácilmente accesible por la misma tecnología sobre la que estaba escribiendo. Hice que Claude Code revisara la estructura de mi sitio web y me diera sugerencias sobre cómo hacerlo más amigable para agentes de AI. También agregué traducciones automatizadas a otros tres idiomas en mi proceso de publicación. Además de hacer el contenido más accesible para más personas, tiene el beneficio secundario de aparecer en búsquedas de agentes de AI en esos idiomas. Esta mañana me encontré con [el post de Julia Solorzano sobre optimización para motores de respuesta](https://juliasolorzano.com/blog/2026/03/16/answer-engine-optimization/), que me dio algunas ideas adicionales. Su post lo aborda desde un ángulo ligeramente diferente, y eso me hizo darme cuenta de que esta información podría ser útil para otros. Así que esto es lo que he aprendido: los agentes de AI y motores de respuesta (piensa en Perplexity) son cada vez más la forma en que las personas encuentran información. Si tu sitio no está configurado para ellos, podrías estar perdiéndote visitantes adicionales. Esto es lo que necesitas hacer, en orden de impacto. Si usas un agente de AI para programar, hay un prompt listo para pegar al final para implementar todo esto por ti. ## 1. Agrega llms.txt y llms-full.txt Sirve dos archivos de texto plano desde la raíz de tu dominio siguiendo el [estándar llms.txt](https://llmstxt.org/). - **`/llms.txt`** — Descripción del sitio seguida de una lista de cada página con título, URL, descripción y palabras clave. Lo suficientemente ligero para que cualquier agente lo obtenga en una sola petición. - **`/llms-full.txt`** — Misma estructura, pero incluye el contenido completo de la página en línea. Establece un límite de tamaño (100KB es razonable) y recurre a título + descripción para las páginas restantes cuando se exceda. Estos le dan a los agentes de AI una vista general rápida y estructurada de todo tu sitio sin necesidad de rastreo. ## 2. Sirve Markdown crudo para cada post Genera un archivo `.md` independiente para cada página publicada en un patrón de URL predecible (por ejemplo, `/blog/{slug}.md`). Incluye front matter YAML con título, fecha, descripción, idioma, palabras clave, URL canónica y cualquier enlace de traducción, seguido del cuerpo en markdown crudo. Configura tu servidor para servir archivos `.md` como `text/plain` para que se muestren en línea en los navegadores y sean trivialmente analizables por máquinas. Luego agrega una etiqueta de descubrimiento en el `` HTML de cada post: ```html ``` Esto permite que cualquier agente que lea tu HTML descubra la versión legible por máquinas sin conocer tu convención de URLs. ## 3. Agrega Schema.org JSON-LD ### BlogPosting en cada página de post Incrusta un esquema `BlogPosting` en `` con headline, fecha de publicación, URL, descripción, imagen y palabras clave. El autor debe ser una `Person` con `name`, `url` y enlaces `sameAs` a tus perfiles sociales (LinkedIn, GitHub, Bluesky, etc.). El publisher debe ser una `Organization` con el nombre de tu sitio. Esto ayuda a los motores de respuesta a atribuir contenido a ti y construir conexiones en el knowledge graph. ### Person en tu página de inicio Agrega un esquema `Person` independiente a tu página raíz con nombre, URL, título del puesto y enlaces `sameAs` a todas tus propiedades web. Esto le da a los motores de respuesta un nodo de identidad canónico para anclarte a través de la web. *El post de Julia Solorzano también recomienda un esquema `CollectionPage` con elementos `CreativeWork` para páginas de portafolio — vale la pena considerarlo si muestras proyectos.* ## 4. Proporciona feeds estructurados ### JSON Feed Sirve un endpoint [JSON Feed v1.1](https://www.jsonfeed.org/version/1.1/) con contenido completo tanto en HTML (`content_html`) como en texto plano (`content_text`), además de resumen, imagen, tags y adjuntos que enlacen al archivo `.md` de cada post. Agrega auto-descubrimiento en ``: ```html ``` ### Índice de posts Sirve un archivo `posts.json` que contenga todos los posts con metadatos: slug, título, fecha, descripción, categoría, imagen, palabras clave, URL del markdown y enlaces de traducción. Esto le da a los agentes un catálogo estructurado de todo sin analizar feeds. ### Atom/RSS Feed Un feed estándar Atom o RSS con contenido HTML completo. Muchos agentes todavía buscan esto primero. ## 5. Dale la bienvenida a los crawlers de AI en robots.txt Permite explícitamente los principales crawlers de AI por user-agent: ``` User-agent: GPTBot Allow: / User-agent: ClaudeBot Allow: / User-agent: PerplexityBot Allow: / User-agent: GoogleOther Allow: / User-agent: Amazonbot Allow: / User-agent: Applebot-Extended Allow: / User-agent: Meta-ExternalAgent Allow: / User-agent: Bytespider Allow: / User-agent: cohere-ai Allow: / ``` Incluye la URL de tu sitemap al final. La lista anterior cubre los principales a principios de 2026 — revisa periódicamente si hay nuevos crawlers. ## 6. Haz que tu sitemap sea descubrible de dos formas No dependas solo de robots.txt. Agrega una etiqueta link en `` en cada página: ```html ``` De esta forma, los crawlers que leen HTML de la página (no solo robots.txt) también pueden encontrar tu sitemap. ## 7. Escribe meta descriptions reales Cada página necesita un `` único en ``. Esta es la oración que los motores de respuesta usan para decidir si vale la pena citar tu página. No la dejes vacía, y no uses la misma descripción genérica en múltiples páginas. Si tus posts tienen palabras clave, agrega también `` y muestra esas palabras clave en tu Schema.org JSON-LD, feeds, llms.txt y front matter de `.md`. La consistencia a través de todas estas superficies refuerza tus señales de tema. Mantén las descripciones por debajo de 160 caracteres y hazlas específicas. ## 8. Traduce tu contenido y agrega enlaces hreflang Los motores de respuesta prefieren citar contenido que ya existe en el idioma consultado en vez de traducir inglés sobre la marcha. Si puedes traducir tus posts — incluso mediante traducción con AI con una revisión humana — hazlo. Cada idioma multiplica tu superficie en consultas específicas de ese idioma. Asegúrate de que tus páginas traducidas reciban el mismo tratamiento que las en inglés: sus propios archivos `.md` en URLs predecibles (por ejemplo, `/{lang}/{slug}.md`), inclusión en tus feeds y llms.txt. La traducción no debería ser un ciudadano de segunda clase — debería ser igual de descubrible y legible por máquinas que el original. Luego agrega etiquetas `` en `` para cada traducción para que los agentes de AI puedan descubrir todas las versiones de idioma desde cualquier página. ## Quick Reference | Feature | What to Add | Why | |---------|------------|-----| | llms.txt | Plain-text site overview at domain root | Fast agent discovery without crawling | | Per-post .md files | Raw markdown at predictable URLs | Machine-readable content | | Markdown link tag | `` | HTML discovery of .md files | | BlogPosting JSON-LD | Schema in `` on post pages | Structured authorship + content metadata | | Person JSON-LD | Schema on homepage | Canonical identity node | | JSON Feed | Feed endpoint with full content | Structured feed for agents | | Post index | `posts.json` with all post metadata | Full catalog without feed parsing | | Atom/RSS feed | Standard XML feed | Legacy agent compatibility | | robots.txt | Explicit `Allow` for AI crawlers | Clear permission signal | | Sitemap link | `` in `` | Dual-path sitemap discovery | | Meta descriptions | Unique per page, under 160 chars | Citation decision input | | Meta keywords | In HTML, JSON-LD, feeds, llms.txt, .md | Consistent topic signals | | Translations + hreflang | Full posts in target languages + `` | Surface area in non-English queries | --- Eso es todo. No se requiere framework, no se necesita servicio de terceros. La mayoría de estos son archivos estáticos y etiquetas HTML que cualquier generador de sitios estáticos puede producir. La parte más difícil es la configuración inicial — una vez que está hecha la plantilla, cada nuevo post obtiene todo esto automáticamente. ## Prompt para tu agente de AI Si usas un agente de AI para programar, pega el siguiente prompt para que audite tu sitio e implemente estas funcionalidades por ti. ``` Audit my website for AI agent discoverability and implement the following features. Analyze my existing setup first and skip anything already in place. 1. **llms.txt + llms-full.txt** — Generate two plain-text files at the domain root following the llms.txt standard (https://llmstxt.org/). llms.txt: site description + list of pages with title, URL, description, keywords. llms-full.txt: same but with full page content inline, with a 100KB size cap (fall back to title + description when exceeded). Both should auto-generate from existing content. 2. **Per-post markdown files** — For every published page, generate a .md file at a predictable URL (e.g., /blog/{slug}.md). Include YAML front matter (title, date, description, language, keywords, canonical URL, markdown URL, translation links) followed by the raw markdown body. Configure the server to serve .md as text/plain. Add `` in on every post page. 3. **Schema.org JSON-LD** — Add BlogPosting schema in on every post with: headline, datePublished, url, description, image, keywords. Author as Person with name, url, sameAs (social profile URLs). Publisher as Organization. Add a standalone Person schema on the homepage with name, url, jobTitle, sameAs links to all web properties. 4. **Structured feeds** — JSON Feed v1.1 endpoint with content_html, content_text, summary, image, tags, and attachments linking to .md files. Add feed auto-discovery in . A posts.json index with all posts and metadata (slug, title, date, description, category, image, keywords, markdown URL, translation links). Atom or RSS feed with full HTML content. 5. **robots.txt** — Explicitly Allow / for these user-agents: GPTBot, ClaudeBot, PerplexityBot, GoogleOther, Amazonbot, Applebot-Extended, Meta-ExternalAgent, Bytespider, cohere-ai. Include Sitemap URL. 6. **Sitemap discovery** — Add `` in on every page (in addition to robots.txt Sitemap directive). 7. **Meta descriptions + keywords** — Ensure every page has a unique (under 160 chars). Add where keywords exist. Surface keywords consistently in JSON-LD, feeds, llms.txt, and .md front matter. 8. **Translations + hreflang** — If the site has translations, ensure they get equal treatment: their own .md files, hreflang cross-references, inclusion in feeds and llms.txt. Add `` tags in for each translation. Present a plan showing what already exists vs. what needs to be added before making changes. ```