Robots.txt y sitemaps como alternativa al llms.txt

Retrato de Carlos Sanchez

Por Carlos Sanchez

Autor invitado

September 21, 202625 min de lectura

Durante el último año los SEOs hemos sido bombardeados constantemente con el GEO y con supuestas nuevas reglas que “poco” tienen que ver con el SEO tradicional. Esta metralla de información sobre el GEO vienen de un tipo de personas que hacen afirmaciones con tanta rotundidad que hasta el SEO más experimentado puede llegar a dudar de si todos estos nuevos 'estándares' o implementaciones sirven realmente para algo o si su trabajo está obsoleto (aunque siga dando resultados).

Pero una cosa es cómo nos gustaría que funcionasen las cosas en el papel, y otra muy distinta es la realidad técnica.

Así que para salir de dudas me he dedicado a investigar, poniendo el foco en el famoso llms.txt (dejaremos para otro artículo el debate de reemplazar HTML por .md para la IA). En este artículo te enseño la cruda realidad que muestran los logs de mi web: por qué el robots.txt y el sitemap tienen ahora más relevancia que nunca, por qué al llms.txt no lo lee prácticamente nadie (con datos de Ahrefs) y un par de trucos para sacarle partido a todo esto.

El TL;DR o Resumen


  • El robots.txt y el sitemap son básicos que hay que trabajar con cariño y esfuerzo. Son lo primero que abre cualquier agente de IA.
  • Un sitemap declarado en el robots.txt es la única lista de URLs de tu web que tienes garantizado que un LLM va a leer.
  • El llms.txt no es un estándar porque nadie lo consume: el 97 % nunca se lee y ningún bot de IA lo busca por su cuenta.
  • Los SEOs necesitamos ver qué tienen en cuenta Google y las IAs, pero ellos también dependen de lo que hacen las webs.
  • La seguridad es más importante que nunca porque la IA es cada vez más usada por los “maleantes” para encontrar vulnerabilidades. El ejemplo listado de DeepSeek habla por sí mismo.

Qué es el LLMs.txt

El LLMs.txt es un archivo de texto que busca ser un nuevo estándar para posicionar en distintos LLMs.

Otra definición propuesta en 2024 por Jeremy Howard (cofundador de Answer.AI y fast.ai): un archivo Markdown en la raíz con un resumen de qué es la web y enlaces comentados a lo importante, para que los LLMs se orienten sin tener que rastrearlo todo. La idea, sobre el papel, es bonita.

A diferencia de lo que sugiere el nombre, no es un robots.txt para IAs: no controla nada ni bloquea nada. De hecho la propuesta real del llms.txt está en la web “oficial” https://llmstxt.org/ y en esta va a ser en la que me voy a centrar (tampoco cambia mucho el análisis en cualquier otro caso), ya que el “estándar” de como hacer este formato de resumen a la IA tiene tantas versiones y variantes como herramientas hay en el mercado.

En la propia web oficial se admite que fue especulación, pero ahora en la V2 (ahora es personal) pasamos al .md como alternativa al HTML. Es decir la misma web oficial del LLMs.txt afirma que NO es realmente útil.

De hecho lo que ha empujado su adopción es la especulación de que algún día lo harán, alentada por herramientas de SEO, CDNs, constructores de webs y plugins que tienen una casilla más que vender.

La cuestión es que un estándar no es un archivo con un nombre bonito ni un deseo al aire. Es un acuerdo entre quien publica y quien consume, y aquí falta la mitad del acuerdo: ninguna plataforma de IA importante se ha comprometido nunca a leerlo.

El robots.txt funciona porque la mayor parte de rastreadores oficiales lo respetan, y aun así cada uno de ellos lo interpreta de forma distinta (por ejemplo, Yandex y Google lo interpretan de forma muy distinta)

  • Un 28 % tenía un llms.txt (y es un techo, porque sus clientes son más técnicos que la media).
  • De esos 38.000 archivos, el 97 % no recibió ni una sola petición en todo el mes de mayo. Ni de bots, ni de humanos. Nada.
  • Del 3 % que sí recibió tráfico, el 96 % de las peticiones eran de bots, y el 77 % de esos bots no eran de IA: herramientas de auditoría SEO, rastreadores generales, perfiladores de tecnología y un 12 % de herramientas GEO, validadores de llms.txt e investigadores que estudian el archivo en vez de consumirlo. La industria auditándose a sí misma.
  • Los bots de recuperación en tiempo real (OAI-SearchBot, PerplexityBot y el buscador de Claude), es decir, los que deciden si te citan en una respuesta, sumaron un 1,1 % de las peticiones. Slackbot pidió más llms.txt que PerplexityBot, porque los SEOs comparten el enlace en Slack.
  • Y el dato definitivo: cero peticiones de bots de IA a llms.txt que no existían. Nunca lo buscan por su cuenta. Solo lo piden cuando un enlace, un índice o un usuario les dice que está ahí. Como absolutamente cualquier otra página que tenga un enlace.

A eso súmale que John Mueller lleva desde 2025 diciendo que ningún sistema de IA lo usa (lo llegó a comparar con la meta keywords) y que Google, en su guía para aparecer en la búsqueda con IA generativa, incluyó una sección literalmente titulada "mythbusting" para decir que no hacen falta archivos especiales.

¿Le queda algún uso? Sí, uno, y no es de SEO: los agentes de programación. GPTBot y Claude-Code fueron los dos bots de IA identificados que más lo pidieron en el estudio, por delante de cualquier bot de búsqueda o asistente. Cuando un desarrollador le pide a un agente que trabaje con una librería o una API, el agente se va a la documentación pública de esa librería y, si encuentra un llms.txt, lee el índice en Markdown y se ahorra tokens. Es decir, le sirve a webs de documentación para desarrolladores (y, si quieres, a tus propios agentes internos como índice de tu documentación, que es un uso legítimo pero que no tiene nada que ver con aparecer en ChatGPT). El propio Mueller lo llamó "una muleta temporal" para herramientas de código. Si tu web es la documentación de un producto para desarrolladores, adelante. Si vendes zapatillas, no.

De hecho yo en mis propios proyectos creo un .md con instrucciones y un HTML con la guía de marca y estilo para que no se salga de dichas instrucciones y lo oculto en producción para que los usuarios no accedan a información sensible.

Podríamos hacer una equivalencia SEO a lo que a día de hoy es el meta keywords. No sirve para nada y aun así muchos se empeñan en usarlo, aunque hay algunas webs que usan dicha keyword para búsquedas internas o su propio uso.

La pescadilla que se muerde la cola

Y lo cierto es que tiene toda la lógica del mundo que no lo lean. Una IA necesita basarse en las webs que hay y que tienen éxito para recomendar algo o dar una información, no en las que implementan el estándar más novedoso que nadie usa (y que, por tanto, no es un estándar). Los SEOs necesitamos ver qué tienen en cuenta Google y las IAs, pero Google y las IAs también dependen de lo que usan las webs para decidir qué es relevante. Y las webs, todas, usan robots.txt y sitemaps. Evidentemente las IAs se han basado en algo muy básico, que ya existía y que llevamos años optimizando.

Esto ha pasado siempre, incluso con Google. Cuando si ni Google, con todo su poder de mercado, consiguió que la web adoptara un formato a la fuerza, un archivo Markdown propuesto por una startup y empujado por plugins no lo va a conseguir.

Las empresas tecnológicas pueden intentar imponer nuevos estándares, pero depende de la adopción en internet si estas son acogidas o no, y viceversa.

Pongo varios ejemplos de estándares que han acabado sucediendo en internet a modo de curiosidad a lo largo de los años:

  • El código de respuesta 302 no estaba pensado en su momento para ser una redirección temporal, pero los webmaster así lo hacían y acabó siendo la forma oficial.
  • El estándar de encabezado http referer es con una R por error de escritura.
  • Google intentó imponer AMP a la fuerza (durante años solo se entraba en el carrusel de noticias del móvil con AMP), tuvo que ir hacia atrás y en 2021 lo quitó como requisito, porque las páginas que tenían AMP no eran necesariamente las que necesitaba el usuario.
  • La tecnología Flash además de por problemas de seguridad se dejó de usar porque Google no lo podía rastrear.
  • En las webs ponemos datos estructurados (jsons) con información de nuestra web porque Google puso ese estándar con schema para que le fuese más fácil rastrear las webs y funciona porque se implementó en masa.
  • Tecnologías como react, angular o vue tuvieron que sacar opciones de funcionar Server Side Rendering porque cuando salieron ni Google renderizaba correctamente JavaScript (también hay miga con esto en GEO)

Lo que pretendo decir con esto es que un estándar solo funciona cuando ambas partes se ven beneficiadas, las grandes compañías lo soportan y el gran público lo adopta.

En el caso del llms.txt lo que veo es mucho interés por quien ha fabricado herramientas en torno a dicho “estándar”. Pero no ha habido soporte de ninguna gran empresa de IA, y tiene sentido. Si son herramientas capaces de procesar la información que hay en una web, ¿por qué iban a confiar ciegamente en un archivo fácilmente manipulable?

Entiendo el atractivo, ojo. A la gente le gusta el camino fácil, y a las herramientas les encanta tener un "hack para IA" que enseñar en la lista de funcionalidades. Se vende y cala en los SEOs antes de que se pruebe y parece priorizar sobre las implementaciones y metodologías que siempre han funcionado, los básicos del SEO.

Análisis de Logs

Para investigaciones propias y la creación de este mismo artículo me he tirado semanas mirando Logs de distintos proyectos. Mi objetivo era comprobar qué hacen exactamente las inteligencias artificiales cuando entran en una web, es decir, cómo rastrean. Sinceramente me sorprendió que no fuesen ni las páginas con más tráfico ni la home, sino el robots.txt (depende de la IA) y los sitemaps, y la verdad que tiene sentido.

He hecho el experimento con distintas webs pero para mostrar los datos y resultados (muy similares entre todas) pondré de ejemplo mi humilde web personal.

Robots.txt, sitemaps y root/home para GEO

Páginas más rastreadas por el conjunto de bots de IA. El robots.txt se lleva 4.826 peticiones; la home ni siquiera entra en el top 8.

Estas capturas son de mi analizador de logs, filtrando únicamente el tráfico de bots de inteligencia artificial en sanchezdonate.net: 39.761 peticiones de 12 bots distintos, contra 3.024 URLs y desde 2.616 IPs. Un 9,3 % de todas las peticiones GET de la web se las llevan las IAs, que para la web de un consultor no está nada mal (o nada bien, según a quién le preguntes: al SEO o al servidor).

Si te fijas en el orden. Lo más pedido, con muchísima diferencia, es el robots.txt. Y entre el robots.txt y la home hay siete sitemaps: el de posts, el de servicios, el de curiosidades, un simple best-urls.txt con las URLs importantes del negocio a pelo, el wp-sitemap.xml que genera WordPress de serie y el sitemap index. Todos ellos por encima de la página principal, que se supone que es la puerta de entrada de cualquier web y que aquí aparece en el noveno puesto.

¿Por qué? Porque un bot bien hecho hace exactamente lo mismo que ha hecho siempre un rastreador de toda la vida: antes de pedir nada, comprueba qué puede pedir. Y cuando lee el robots.txt, se encuentra las líneas “Sitemap:” y tira de ellas para descubrir URLs de la forma más barata posible (presupuesto de rastreo, lo de siempre).

Tiene lógica, ya que al final un bot (y más de IA) quiere ver la página tal cual, no como el webmaster le quiera mostrar a la IA.

Si filtramos solo por OpenAI (GPTBot, OAI-SearchBot y ChatGPT-User juntos), que es con diferencia quien más rastrea, la foto es todavía más clara:

Páginas rastreadas por los bots de OpenAI: robots.txt (4.826), home (458) y después las páginas "lógicas" de la web. Las 4.826 peticiones al robots.txt del conjunto de IAs son suyas.

Y aquí viene lo curioso: las 4.826 peticiones al robots.txt son todas de OpenAI. Todas. Más de la mitad de las 8.816 peticiones que hacen sus bots a mi web son al robots.txt, lo que me hace pensar que lo comprueban prácticamente en cada visita (que es lo que haría un bot que entra a demanda, cuando un usuario pregunta algo, en vez de rastrear por rastrear). La página home se pide diez veces menos. Y después de la home vienen exactamente las páginas que un usuario pediría en una conversación: la del máster, el "sobre mí" (en inglés y en español) y artículos concretos. Es decir, ChatGPT va a los lugares lógicos donde está la información, que es algo que llevo repitiendo un tiempo: si le preguntan por la empresa, va al "sobre nosotros"; si le preguntan por un producto, a la ficha del producto. No va buscando por tu web un archivo con instrucciones.

Y si filtramos por Anthropic (ClaudeBot), la estrategia es la contraria. Ni rastro del robots.txt en su top 10 (lo lee una vez y sospecho que lo guarda en caché) y las diez URLs más rastreadas son sitemaps. Diez de diez. Se comporta como un rastreador clásico que construye su índice a partir de ellos.

ClaudeBot: las diez URLs más rastreadas son sitemaps, incluido un sitemap de pruebas en .txt que solo existe en el robots.txt.

Aquí hay un detalle que me encanta. /sitemap-test/sitemap-test.txt es un sitemap de pruebas: un archivo de texto plano con una URL por línea, que no está enlazado desde ningún sitio ni enviado a ninguna Search Console. Solo está declarado en el robots.txt. Y tiene 357 peticiones (más otras 359 en su versión con barra final).

También se pudo hacer una correlación de que las páginas más rastreadas eran las que aparecían en el Sitemap. Aunque no tengo pruebas de que estos rastreos impliquen necesariamente más menciones o apariciones en las fuentes. Imagino que ya dependerá del prompt y lo que considere la IA relevante. Pero si algo hemos aprendido del SEO y los procesos de rastreo, renderizado, indexación y posicionamiento, es que si bien el hecho de que te rastreen e indexen más no necesariamente conlleva a un mejor posicionamiento, si que es cierto que para estar posicionado debes estar indexado.

Por lo cual, haciendo un paralelismo, esta sería una estrategia para favorecer el rastreo de nuestra web, que por otro lado es para lo que se ha usado siempre la combinación de sitemaps y robots.txt

El robots.txt, el archivo que leen todos los rastreadores serios

El robots.txt nació en 1994. Es un archivo que lleva con nosotros todo este tiempo, que todo el mundo sabe leer, que todos los rastreadores conocen y que cualquier CMS del planeta sabe generar.

Cuando alguien monta un rastreador nuevo (y OpenAI, Anthropic o Perplexity no han hecho otra cosa), no se inventa un protocolo: coge el que existe. Por eso las IAs, que han aprendido de una web construida durante treinta años alrededor del robots.txt y los sitemaps, hacen exactamente lo mismo que hacía Google. Sería absurdo que hicieran otra cosa favoreciendo a los webmaster que dan con la tecla frente a webs que probablemente tengan más autoridad o respondan mejor a las intenciones de búsqueda.

No me quiero centrar en exceso sobre el robots.txt, para eso ya tienes la guía de robots.txt de Ahrefs, que resume muy bien la parte de bots de IA. Pero sí quiero recordar tres cosas que en la era de la IA se olvidan más que nunca:

  • Es un acuerdo entre caballeros, no un sistema de seguridad. Los bots legítimos por lo general lo respetan, pero sigue siendo un archivo txt de recomendación. Un cartel de normas de conducta que realmente ni impide ni pone ninguna sanción a quien se lo salte. Por lo que evidentemente los bots con malas intenciones lo van a ignorar. De hecho hay bots no perjudiciales como el de wayback machine que lo ignora deliberadamente. De hecho seguramente lo has ignorado alguna vez desde cualquier herramienta de SEO como Ahrefs de cara a tus auditorías
  • Controla el rastreo, no la indexación. Bloquear una URL en el robots.txt no la saca ni de Google ni de las respuestas de un LLM, que puede sacar tu información de las SERPs sin entrar en tu web. Para eso está el noindex, que solo funciona si dejas que la página se rastree.
  • Cada empresa de IA tiene varios user-agents con funciones distintas, y es fácil hacer el robots.txt mal y conseguir resultados inesperados (pasaba ya con los motores tradicionales, pues ahora más). OpenAI usa GPTBot para entrenar, OAI-SearchBot para su buscador y ChatGPT-User cuando un usuario le pide algo en tiempo real. Anthropic separa ClaudeBot, Claude-SearchBot y Claude-User. Google tiene Google-Extended, que ni siquiera es un rastreador, sino un interruptor para Gemini. Si bloqueas "a la IA" por miedo a que te roben el contenido, lo más probable es que te estés quitando a ti mismo de sus respuestas mientras tu competencia sigue apareciendo. Y ese tráfico vale la pena: Ahrefs cuenta que sus visitantes desde búsqueda con IA convierten 23 veces más que los de búsqueda orgánica tradicional. Desde el principio hice un artículo sobre lo absurdo que era bloquear un LLM en nuestra web.

Comentarios de robots.txt como estrategia de SEO

El robots.txt admite comentarios con almohadilla, cuando un bot pasa por las líneas con almohadilla las ignora.

Hasta hace unos años los robots.txt lo podían ver herramientas automatizadas o personas, pero ahora tenemos un jugador nuevo, que son herramientas con “capacidad de interpretación”.

Entonces, si ya tenemos comprobado que las IAs, al menos en cierta parte de su proceso rastrean los robots.txt en sus procesos de rastreo y aprendizaje, ¿por qué debemos asumir que leen el robots de la forma tradicional en lugar de interpretarlo?

No tengo pruebas, pero puestos a especular, podemos hacerlo sobre algo que sí que sabemos que rastrean las inteligencias artificiales. Se puede dejar contexto sobre la web (qué es, qué secciones importan, dónde están las fichas de producto), al fin y al cabo si lo pensamos, el robots.txt está destinado precisamente a dar información a los bots de nuestra web, y es un archivo estándar que ya existe de antes.

Algo así:

# Tienda online de material de escalada con envío a toda Europa.

# Las fichas de producto cuelgan de /producto/ y las guías de compra de /guias/

# Las URLs más importantes del negocio están en /urls-principales.txt

User-agent: *

Disallow: /carrito/

Disallow: /cuenta/

Disallow: /buscar?

Sitemap: https://tudominio.com/sitemap-index.xml

Sitemap: https://tudominio.com/urls-principales.txt

¿Puedo garantizar que un LLM lea esos comentarios y los tenga en cuenta? No. Nadie puede, y el que lo garantice (o niegue sin pruebas) está vendiendo humo. Lo que sí puedo garantizar, porque lo veo en los logs, es que el archivo lo van a abrir. Que ya es bastante más de lo que se puede decir del llms.txt.

Otra cuestión es si se gastan tokens en la lectura y comprensión de dicho robots.txt o se rastrea como cualquier rastreador sin aplicar lógica de IA dentro del mismo. Solo el tiempo y las pruebas podrán decirlo.

En cualquier caso puedo aplicar el mismo argumento que esgrimen los amplios defensores del llms.txt. Con el tiempo las IAs lo adoptarán (por lo pronto en mi caso lo leen por defecto los modelos que rastrean), pero en todas formas, aunque no funcionase, tampoco hace daño.

Sitemaps: el hermano al que nadie hace caso (y resulta que lo lee todo el mundo)

Si el robots.txt es el archivo más antiguo del SEO, el sitemap es el más ninguneado. Se genera una vez con el plugin de SEO de turno, se envía a Search Console y no se vuelve a mirar en años. De hecho en muchas webs he visto sitemaps estáticos generados una vez con SF o similares y a correr.

Sin embargo, lo que he podido comprobar en estos experimentos con logs de distintas webs, es que los sitemaps tienen un peso muy importante en las URLs rastreadas por los Bots de IA.

De hecho no hace falta un sitemap complejo con las reglas xml,lastmod como tal.

Se me ocurrió experimentar que si a Google le vale un archivo .txt (lo dice en su propia documentación) por qué no probarlo con la IA.

Así que lo experimenté en varias webs, y por ejemplo en la mía propia cree un archivo llamado best-urls.txt de mi web es un archivo de texto con una URL por línea: sin XML, sin lastmod, sin nada.

Solo está declarado en el robots.txt. En el ejemplo expuesto, tiene 920 peticiones de bots de IA, el doble que la home. Incluso probandolo con páginas huérfanas que solo cuelgan de dicho .txt también son rastreadas (frente a otras huérfanas que no aparecían en dicho archivo y nunca recibieron hits)-

No he medido el tiempo, pero es cierto que no es inmediato, se puede observar al cabo de los días.

He llegado a ver webs trabajando duramente su llms.txt, con su resumen y sus enlaces comentados con mimo, mientras descuidan totalmente los sitemaps y los básicos del SEO.

Resultando en un tipo de trabajo muy curioso donde se cuida el archivo que nadie pide y se abandona el que se lee cientos de veces, el que podemos garantizar que el LLM lo va a leer de forma natural. Supongo que por estrategia de venta de vender una “solución de marketing nueva” o funcionalidades pioneras en herramientas

¿Debería dejar de usar el llms.txt?

Podemos estar de acuerdo en que en cualquiera de los casos el llms.txt no hace daño. Y es algo muy lícito y parcialmente correcto. Realmente si hace daño de cara al tiempo perdido si ningún LLM lee el trabajo realizado.

Así que querido lector te propongo una implementación extra si aun así te empeñas en usar el llms.txt. Esta idea sería declararlo en el robots.txt como si fuera un sitemap:

Sitemap: https://tudominio.com/llms.txt

¿Por qué? Porque no puedo garantizar que los comentarios del robots.txt funcionen, ni siquiera que las URLs de un sitemap vayan a aparecer más en las respuestas de los LLMs. Lo que sí es inapelable es que los LLMs llegan antes a esas páginas, las rastrean y las leen.

Ya nos quedó claro con el otro artículo de Ahrefs que el llms.txt no va a ser leído por defecto, pues podemos hacer algo que no hace daño (que es tener un sitemap incorrecto, ya que de cara a Google y otros motores de búsqueda no cumpliría los criterios) y al menos nos garantizamos que los bots de los llms lo van a leer.

Un truco para Shopify (y para cualquier CMS que no te deje subir un .txt)


Si tienes una web en Shopify, los sitemaps son un quebradero de cabeza. Shopify genera el suyo automáticamente, no te deja subir archivos .xml ni .txt a la raíz, y si quieres un sitemap con solo las 40 colecciones que de verdad venden, no puedes. O eso parece.

Todo se basa en dos cosas que ya hemos visto: que Google acepta sitemaps en texto plano, con una URL por línea, y que los LLMs leen lo que haya declarado en el robots.txt sin fijarse en la extensión. Así que:

1. Crea una plantilla de página plana. En el editor de código del tema, dentro de templates, crea un archivo page.sitemap.liquid con esto:

{%- layout none -%}
https://tutienda.com/collections/coleccion-uno
https://tutienda.com/collections/coleccion-dos
https://tutienda.com/products/producto-estrella

El layout none es la clave: le quita a la página la cabecera, el pie, el menú y todo el tema. Lo que devuelve el servidor es texto plano con una URL por línea, aunque la URL de la página termine en /pages/sitemap y no en .txt.

Plantilla page.sitemap.liquid en Shopify: layout none y una URL por línea. Puedes crear tantas plantillas como sitemaps segmentados necesites.

2. Crea la página. En Tienda online > Páginas, crea una página y asígnale esa plantilla. Puedes crear tantas plantillas como sitemaps segmentados necesites: uno por país, uno por línea de producto, uno con las top ventas.

3. Declárala en el robots.txt. Edita el robots.txt.liquid (sí, en Shopify el robots.txt también se puede tocar; y ya que estás, revisa este fallo habitual en tiendas internacionales) y añade la página como sitemap, además del sitemap.xml automático:

Sitemap: https://tutienda.com/sitemap.xml
Sitemap: https://tutienda.com/pages/sitemap

Y ya está: cuela como sitemap. Search Console lo acepta como sitemap de texto (y por fin tienes una forma de ver la cobertura solo de lo que te importa), y en los logs los LLMs lo leen como leen cualquier otro sitemap.

Curiosidades de la IA al analizar los Logs.

Analizando logs para este artículo me he dado cuenta de otra cosa que no tiene que ver con el SEO, pero que no puedo dejar fuera. La IA no solo se está usando para mejorar la seguridad. Se está usando, y mucho, para atacar.

Mira lo que pide el bot de DeepSeek en mi web (IPs verificadas, no user-agents falsificados):

Peticiones del bot de DeepSeek: ni una página de contenido. .env y todas sus variantes, .git/config, .git-credentials, wp-config.php.bak...

No hay ni una sola página de contenido. Es un escaneo sistemático en busca de archivos que puedan exponer credenciales, y la lista completa que sale en mis logs (DeepSeek y Perplexity sobre todo) da para un artículo aparte. Una selección:

  • .env y todas sus variantes: .env.production, .env.bak, /app/.env, /@fs/.env, /laravel/.env, /docker/.env...
  • Restos de Git: .git/config, .git-credentials, .gitlab-ci.yml.
  • Copias de seguridad de configuraciones: wp-config.php.bak, wp-config.php.old, wp-config.php~, config.php.bak, configuration.php.bak.
  • Claves privadas y credenciales de nube: id_rsa, server.key, .aws/config, .s3cfg, gcp-credentials.json, serviceAccountKey.json, .htpasswd.
  • Endpoints de depuración de frameworks: /actuator/env, /_profiler, /telescope/requests, /phpinfo.php, /server-status.
  • Y lo más curioso: los archivos de configuración de las propias herramientas de IA con las que se programa hoy: .claude.json, .cursor/mcp.json, .codex/config.toml, .openai/config.json, .aider.conf.yml. Los mismos agentes que se usan para hacer vibe coding guardan ahí sus claves de API, y ya hay quien las busca en producción.

Lo llamativo no es que existan escáneres de vulnerabilidades. Lo llamativo es que ahora vienen desde la infraestructura de compañías de IA, con sus user-agents y sus IPs oficiales. Cualquiera puede pedirle a un agente que "compruebe si esta web tiene archivos expuestos", y el agente lo hace con una paciencia y una lista de rutas que ningún humano tendría.

Quería sacar este tema porque últimamente salen a la luz muchísimas vulnerabilidades en WordPress y numerosos hackeos.

Esto no se debe a que necesariamente (y haciendo las cosas bien) WordPress sea menos seguro, se debe a que es un CMS popular y las vulnerabilidades detectadas en una web a menudo están replicadas en otro.

De hecho al menos cuando es en un CMS así de establecido, todas estas vulnerabilidades son conocidas porque se avisan y se parchean. Pero que en WordPress se hagan visibles más errores, no significa que el resto de webs estén libres de ser hackeadas.

Así que, al margen del SEO: los .env, los .git y las copias de configuraciones no deberían estar dentro del directorio público (ni responder un 403: no deberían existir ahí), mantén el software actualizado y haz copias de seguridad continuamente para evitar problemas mayores.

Reflexiones finales

  • El robots.txt y el sitemap son básicos que hay que trabajar con cariño y esfuerzo, porque desde la irrupción de la IA cogen más relevancia incluso que antes. Son lo primero que abre cualquier IA, y los logs lo demuestran.
  • Un sitemap declarado en el robots.txt es la única lista de URLs de tu web que tienes garantizado que un LLM va a leer. Segmenta, limpia y añade uno con las URLs importantes del negocio, aunque sea un .txt.
  • El llms.txt no es un estándar porque nadie lo consume: el 97 % nunca se lee y ningún bot de IA lo busca por su cuenta. Si aun así lo tienes, decláralo como Sitemap en el robots.txt, y trátalo como código.
  • Cuidado con bloquear a las IAs en el robots.txt por miedo a que te roben información si quieres aparecer en ellas. Bloquea por user-agent y con criterio, y si un bot te tumba la web, bloquéalo desde el servidor, no desde el robots.txt.
  • Los SEOs necesitamos ver qué tienen en cuenta Google y las IAs, pero ellos también dependen de lo que hacen las webs. Y las webs, todas, tienen robots.txt y sitemaps. No busques el hack; haz bien lo de siempre.
  • La seguridad es más importante que nunca, porque la IA es una herramienta muy potente, también por los “Maleantes” por lo cual es muchísimo más fácil a día de hoy encontrar vulnerabilidades. También para bien, pídele a tu propia IA que te ayude a mejorar la seguridad de tu web.
Retrato de Carlos Sanchez
Publicado porCarlos Sanchez