Así está montado el GEO de sprintmarkt.com: los ficheros reales, línea a línea
Desmontamos el GEO de sprintmarkt.com fichero a fichero: robots.txt con 36 crawlers de IA, llms.txt de 268 líneas y schemas con precios tipados.
Respuesta directa: en sprintmarkt.com el GEO no es una estrategia, son tres ficheros que puedes abrir en tu navegador ahora mismo. Un robots.txt generado por código que permite explícitamente 40 user-agents (36 de ellos crawlers de motores generativos), un llms.txt de 268 líneas con 30 pares pregunta-respuesta fechados, y un bloque de schemas con un OfferCatalog de 10 ofertas con el precio tipado dentro. Este artículo los desmonta los tres: qué hay escrito dentro, qué decisión hay detrás de cada línea y qué errores nos costaron avisos en Search Console.
El motivo para molestarse cabe en dos datos de terceros: las referencias procedentes de buscadores de IA crecieron un 527 % en 2025 (Digital Agency Network, consultado en agosto de 2026), y el 89 % de los compradores B2B ya usa búsqueda por IA en algún punto de su proceso de compra (Digiday Research, consultado en agosto de 2026).
La parte conceptual está en otro artículo
Qué es el GEO, cómo recuperan y citan ChatGPT, Claude o Perplexity, qué factores correlacionan con ser citado, cómo se mide y qué errores te dejan fuera: todo eso está en Qué es el GEO y cómo funciona por dentro, y el caso concreto de Google en Cómo aparecer en los AI Overviews. Si vienes a entender el terreno, empieza por ahí.
Lo que no hay en ninguno de los dos es la fontanería: qué fichero se toca, qué se escribe exactamente dentro y por qué. Eso es lo que hay aquí abajo, con nuestro propio sitio como banco de pruebas, porque es la única implementación que podemos enseñar entera y verificable en dos clics.
Fichero 1: el robots.txt que no está escrito a mano
En sprintmarkt.com el robots.txt no es un fichero estático: lo genera src/app/robots.ts recorriendo un array de user-agents. Para cada uno emite el mismo bloque de tres líneas:
User-agent: GPTBotAllow: /Disallow: /api/El array tiene 40 entradas, de las cuales 36 son crawlers de motores generativos; las otras cuatro son herramientas de SEO y scraping que aprovechamos para declarar la misma política. Y aquí está el detalle que sorprende a quien abre el fichero: el bloque genérico User-agent: * ya permite todo con la misma regla, así que los 40 bloques por bot son técnicamente redundantes. Están a propósito. Hacen la política explícita y comprobable con un Ctrl+F, en vez de depender de que nadie añada más adelante un Disallow selectivo desde un plugin o un CDN.
| Bloque de la lista | User-agents | Por qué están ahí |
|---|---|---|
| Los evidentes | GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-Web, Claude-SearchBot, anthropic-ai, PerplexityBot, Perplexity-User | Los que cualquiera nombraría: OpenAI, Anthropic y Perplexity |
| Los que casi nadie añade | Google-Extended, GoogleOther, GoogleOther-Image, GoogleOther-Video, Applebot, Applebot-Extended, Bingbot, msnbot | Gemini, Apple Intelligence y Copilot van por user-agents distintos del clásico |
| Los de segunda fila | CCBot, cohere-ai, cohere-training-data-crawler, AI2Bot, ai2bot-dolma, Amazonbot, DuckAssistBot, YouBot, Diffbot, Bytespider, PetalBot, PanguBot, Timpibot, Omgilibot, ImagesiftBot, Kangaroo Bot, FacebookBot, Meta-ExternalAgent, Meta-ExternalFetcher | Hoy pequeños; añadirlos cuesta una línea |
| Los que no son IA | Scrapy, SemrushBot, AhrefsBot, MJ12bot | Los cuatro que completan los 40: herramientas de SEO y scraping |
Tres decisiones del fichero que sí cambian el resultado, y que están comentadas en el propio código:
Google-Extended no es Googlebot.: Bloquearlo saca tu contenido de Gemini y de los AI Overviews sin tocar tu SEO clásico, así que el daño no aparece en ningún informe de posiciones. Es la casilla que más gente desactiva «por privacidad» sin saber qué apaga./_next/static/ nunca se bloquea.: El comentario en robots.ts lo deja escrito: si tapas el CSS y el JS, el renderizador no puede pintar la página. Eso no te cuesta GEO, te cuesta indexación./api/.: Ahí no hay contenido citable y sí endpoints que nadie debería rastrear en bucle. Ninguna otra ruta está cerrada, ni siquiera para los cuatro bots que no son de IA.Cómo comprobar el tuyo en 30 segundos: abre tudominio.com/robots.txt y busca GPTBot. Si no aparece con Allow, o si hay un Disallow: / global, ya tienes tarea. El nuestro está en sprintmarkt.com/robots.txt y puedes copiarlo como plantilla.
Fichero 2: el llms.txt, 268 líneas escritas a mano
Es un Markdown en la raíz del dominio que resume qué eres y dónde está lo importante. No es un estándar oficial, y conviene decirlo: ninguna plataforma ha confirmado que lo use como señal. El nuestro está publicado en sprintmarkt.com/llms.txt y esta es su estructura real, sección a sección:
# Nombre y un blockquote > de una sola línea: con la descripción de la empresa en tres o cuatro frases: qué somos, dónde estamos, a quién servimos y en qué idiomas. Es lo único que muchos modelos leerán entero.Last verified y su fecha.Dos detalles que hacen la diferencia entre un llms.txt útil y uno decorativo. El primero, la fecha de última verificación: un modelo que duda entre dos fuentes se queda con la que está fechada. El segundo, que cada respuesta se sostenga sola: si extraes una Q&A del fichero y la pegas en un chat, tiene que seguir teniendo sentido sin el párrafo anterior. Las 30 nuestras están escritas con esa regla.
Y el aviso obvio: es un índice y un resumen, no un sustituto del contenido. Publicado vacío o relleno de marketing genérico no aporta absolutamente nada.
Fichero 3: los schemas, y dónde se emite cada uno
El schema no gana por sí solo, pero elimina la ambigüedad: le dice a la máquina qué es cada cosa sin obligarla a deducirlo del HTML. Esto es lo que emite nuestro sitio, y dónde exactamente:
| Schema | Dónde se emite | Qué resuelve |
|---|---|---|
Organization (@id #organization) | Todo el sitio | Identidad, logo, sameAs a redes y datos de contacto |
ProfessionalService (@id #business) | Precios y contacto | Dirección física en Valencia, geo, horarios, areaServed y priceRange |
OfferCatalog con 10 Offer | Dentro del ProfessionalService | Los precios reales, con priceCurrency, minPrice y unidad legible |
BlogPosting | Cada artículo del blog | author, datePublished, dateModified, wordCount, inLanguage y keywords |
FAQPage | Artículos con FAQ y páginas clave | Las Q&A que Perplexity y AI Overviews extraen tal cual |
BreadcrumbList | Cada artículo | Jerarquía del sitio |
¿Necesitas ayuda con tu proyecto?
Calcula tu presupuesto en 2 minutos con nuestra herramienta interactiva.
El detalle que casi nadie implementa es meter los precios dentro del schema. Cada oferta de nuestro OfferCatalog lleva un priceSpecification con el importe, priceCurrency: EUR, un minPrice y una unidad legible (project (from), monthly (from)). Así, «SEO Nacional + GEO, 1.200 €/mes» deja de ser una frase suelta en una página y pasa a ser un dato tipado que cualquier motor puede leer sin interpretarlo.
Y una trampa real, que a nosotros nos costó avisos en Search Console: no emitas dos FAQPage en la misma página. Si tu componente de FAQ ya lo genera, la plantilla de la página no debe volver a hacerlo; Search Console lo reporta como campo duplicado y deja de procesarlo. Lo tenemos avisado con comentarios en el código de la home y de las páginas de servicio que ya emiten su propio FAQPage, para no repetir el fallo.
Antes de dar nada por bueno, pasa el Rich Results Test de Google y el validador de Schema.org por cinco URLs representativas.
La tabla de precios, o cómo se escribe una cifra citable
Un modelo que tiene que responder «¿cuánto cuesta un chatbot de IA en España?» va a preferir la fuente que dice 1.125 € antes que la que dice «precio adaptado a cada proyecto». La vaguedad no es prudencia comercial: es autoexclusión. Por eso la tarifa está publicada en texto plano, y es la misma que cotiza el equipo comercial.
En /es/precios/ están los servicios principales de cada línea; el catálogo completo es más largo y se recorre entero desde la calculadora de presupuesto. Esto es lo que ve un modelo:
| Servicio | Precio de partida (España, sin IVA) |
|---|---|
| Web Corporativa Esencial (5-7 páginas, 7 días) | desde 1.200 € |
| Web Profesional a Medida | desde 3.500 € |
| Pack Lanzamiento Negocio | 3.500 € |
| Tienda Online Lanzamiento / Profesional | desde 1.875 € / 4.875 € |
| Pack E-commerce 360 | 6.500 € |
| Chatbot IA con RAG (web o WhatsApp) | desde 1.125 € |
| Automatización de procesos con IA | desde 3.750 € |
| Agente IA a medida | desde 13.500 € |
| Apps Express (MVP en 15 días) | desde 4.990 € |
| SEO Local | 600 €/mes |
| SEO Nacional + GEO | 1.200 €/mes |
| Gestión de Google Ads | 350 €/mes + inversión |
| Mantenimiento Básico / Pro / Premium | 60 € / 150 € / 350 € al mes |
| Consultoría digital e IA | 90 €/hora |
| Auditoría SEO + GEO (entrega en PDF) | 490 € |
Para Latinoamérica hay una columna propia en dólares, con México como referencia: web esencial 820 USD, chatbot IA 1.020 USD, SEO Local 410 USD/mes.
La regla interna que hace esto sostenible: todas las páginas y los schemas leen del mismo fichero de tarifas (src/lib/pricing.ts); el llms.txt y los artículos, que sí son texto escrito a mano, se revisan contra él en cada cambio de precio. Una fuente que se contradice a sí misma entre dos páginas es exactamente la que un modelo descarta.
Y un matiz que nos aplicamos a nosotros mismos, porque nuestra propia web usa «desde» por todas partes: «desde» está bien si va acompañado de un número. «Desde 1.200 €» es perfectamente citable. Lo que no se puede citar es «a medida» o «depende» a secas.
Lo mismo vale para los resultados. No digas «mejoramos mucho las ventas»; di que Rotulemos pasó a hacer el 60 % de su facturación online, con +240 % de ventas y un ROAS de 4,8x. Número, nombre y enlace: eso es lo que se puede citar.
El checklist ejecutable
Si solo te llevas una cosa del artículo, que sea esta tabla. El porqué de cada fila está en el artículo conceptual; aquí está el qué y el cuánto cuesta.
| # | Qué haces | Cómo compruebas que está bien | Esfuerzo |
|---|---|---|---|
| 1 | robots.txt con Allow explícito para crawlers de IA | Tu /robots.txt contiene GPTBot, ClaudeBot, PerplexityBot y Google-Extended | 1 hora |
| 2 | llms.txt en la raíz, con precios, casos, límites y Q&A fechadas | El fichero carga y cada respuesta se sostiene sola fuera de contexto | 3-4 horas |
| 3 | H2 = pregunta del usuario, respuesta en las dos primeras líneas | Copia un trozo suelto: ¿se entiende sin lo anterior? | 2 h por página |
| 4 | Organization, FAQPage, BlogPosting y OfferCatalog | Rich Results Test sin errores y sin FAQPage duplicado | 1 día |
| 5 | Cifras y precios concretos en el texto y en el schema | Busca «a medida» y «depende» a secas y sustitúyelos por números; «desde» vale si lleva cifra detrás | 1 día |
| 6 | Google Business Profile, NAP consistente, directorios de nicho | Tu nombre, dirección y teléfono idénticos en cinco sitios distintos | Continuo |
| 7 | 10 prompts fijos en 3 motores, logs de servidor y Search Console | Hoja mensual con quién aparece y quién no | 40 min al mes |
Dónde entramos nosotros
Todo lo anterior se puede hacer en casa: los tres ficheros son públicos y el checklist está arriba entero. Si prefieres que lo hagamos nosotros, hay dos formas:
robots.txt y de tus datos estructurados, propuesta de llms.txt escrita para tu negocio, lista priorizada de contenidos a reescribir y línea base de citas en ChatGPT, Perplexity y Google. Entrega en PDF. Es gratis si después contratas un plan.Somos un equipo de desarrollo, marketing y ventas repartido entre España y Canadá, así que quien te asesora habla con quien toca el código. Si prefieres empezar por lo barato, escríbenos y te decimos qué fichero te falta.
Preguntas frecuentes
Las dudas que más nos llegan cuando alguien abre estos ficheros y se pone a copiarlos.
Preguntas frecuentes
Respuestas directas a las dudas más comunes sobre este tema.
¿Puedo copiar vuestro robots.txt tal cual?
¿No es peligroso dejar que los crawlers de IA lean mi contenido?
¿Sirve de algo el llms.txt si todavía no es un estándar oficial?
¿Hace falta meter los precios dentro del schema, o basta con publicarlos en la página?
¿Cuánto se tarda en montar estos tres ficheros?
¿Tienes un proyecto en mente?
Cuéntanos tu idea y te ayudamos a hacerla realidad. Presupuesto sin compromiso.
Artículos relacionados
GEO 2026: guía definitiva para aparecer en ChatGPT, Claude, Perplexity y Google AI Overviews
Pillar GEO 2026 actualizado: qué es, los 36 bots IA que deberías conocer, llms.txt, schemas que las IAs sí leen, cómo medir citas y plan ejecutable para aparecer en ChatGPT, Claude, Perplexity y Google AI Overviews.
Cómo aparecer en los AI Overviews de Google: guía GEO 2026 paso a paso
Google ha reemplazado el snippet clásico por AI Overviews. Te explico qué señales optimizar (schema, EEAT, contenido factual, citas) para que tu pyme aparezca citada por la IA de Google, ChatGPT y Perplexity en 2026.
Por qué publicamos nuestros precios (y las 6 preguntas que deberías hacerle a una agencia que no lo hace)
Publicamos nuestros precios y explicamos por qué. Con las 6 preguntas que deberías hacerle a cualquier agencia que se esconde detrás del "depende".