Sukora
Auditoría · 29 de julio de 2026
Vendemos un producto que dice a las pymes si aparecen en Google y en las respuestas de la IA. Le pasamos nuestro propio análisis a nuestra web y el resultado fue humillante: ocho fallos, y tres de ellos nos los provocamos nosotros mismos mientras arreglábamos los otros.
Nuestro robots.txt —el fichero que dice a los rastreadores dónde pueden
entrar— prohibía el paso a GPTBot, ClaudeBot, CCBot, Bytespider, Google-Extended y
Applebot-Extended. Nadie de nuestro equipo lo escribió: lo generaba automáticamente
nuestro proveedor de CDN, con esa lista puesta por defecto.
Es decir: la web de un producto cuyo argumento de venta es «que la IA te recomiende» les estaba cerrando la puerta a las IA. Si vendes visibilidad en asistentes, esto es el equivalente a una panadería con la persiana bajada.
Cómo comprobarlo en tu web, en diez segundos: abre
tudominio.com/robots.txt y busca «GPTBot» o «ClaudeBot». Si detrás de
alguno pone Disallow: /, estás fuera de esa vía. Muchos CDN lo activan sin
preguntar.
Google Search Console lo marcaba como «1 archivo con un error grave». Al abrirlo: cuarenta y una líneas que Google no reconoce como válidas, porque el CDN incluía unas directivas propias que no forman parte del estándar.
| robots.txt | Tamaño | Errores |
|---|---|---|
| El generado por el CDN | 3.966 bytes | 41 |
| El nuestro, escrito a mano | 2.405 bytes | 0 |
Conviene decirlo porque es contraintuitivo: un robots.txt más largo no es mejor. No es contenido, son instrucciones. Cada línea de más es una línea donde equivocarse.
Nuestra portada está hecha con React. El HTML que sale por el cable era, literalmente, un contenedor vacío: todo el texto lo pinta JavaScript en el navegador. Medido: 0 caracteres de texto visible.
Aquí hay un matiz que casi nos lleva a arreglar el problema equivocado. Comprobamos en Search Console cómo veía la página el rastreador de Google, y la captura mostraba la portada entera: Google ejecuta el JavaScript y lo ve todo. Nuestra primera hipótesis era falsa.
Pero los rastreadores de los asistentes de IA, en general, no ejecutan JavaScript. Para ellos nuestra web no tenía ni una frase. Después de pre-renderizar el HTML:
| Texto legible sin JavaScript | Antes | Después |
|---|---|---|
| Portada | 0 | 24.813 caracteres |
/sitemap.xml respondía correctamente… con el HTML de la portada. No es que
faltara: es que cualquier ruta desconocida devolvía la página de inicio, así que Google
pedía el mapa del sitio y recibía una web.
Esto es peor que un error 404. Un 404 se reintenta; una respuesta correcta con el contenido equivocado parece válida y nadie la revisa.
Search Console decía «4 páginas indexadas» y sonaba bien. No lo era: eran la misma página cuatro veces.
http://dominiohttp://www.dominiohttps://www.dominiohttps://dominio
La versión con www respondía directamente en vez de redirigir, así que Google
las trataba como cuatro páginas distintas y repartía entre ellas la poca autoridad que
tiene un dominio nuevo. Se arregla con una redirección permanente.
Los datos estructurados son el resumen que una página le da a las máquinas sobre sí misma.
El nuestro declaraba "price": "0".
Es el dato más fácil de extraer de toda la página, así que cualquier asistente que la leyera respondería «Sukora es gratuito». Justo lo contrario de nuestro argumento, que es costar 29,90 € frente a los 800–2.500 € al mes de una agencia. Lo poníamos porque el primer análisis sí es gratis — pero un precio suelto de cero no dice eso: dice que el producto no cuesta nada.
Declarábamos un bloque de preguntas frecuentes con tres preguntas… que no existían en ninguna parte de la web. Las trece reales estaban en la página, pero el resumen para máquinas llevaba otras tres, escritas a mano.
Marcar como pregunta frecuente algo que el visitante no ve es una violación explícita de las políticas de datos estructurados de Google. Y lo escribimos dos líneas debajo de un comentario nuestro que advertía exactamente de no hacerlo.
Nuestra portada tiene un desplegable con dieciséis entregables. Solo el primero llegaba al HTML: los otros quince se creaban al hacer clic. Para un buscador y para una IA, quince descripciones ya redactadas y revisadas no existían.
Se arregla con un cambio de una línea: renderizar siempre el contenido y ocultarlo con CSS en vez de no crearlo.
Tres de los ocho fallos los provocamos nosotros ese mismo día. Al pre-renderizar la portada, cada dirección inventada pasó a servir la portada entera —24.000 caracteres duplicados en cada URL falsa—. Los datos estructurados y las preguntas inventadas también son nuestros, de esa misma mañana. Una auditoría después de tocar cosas no es opcional: es parte de tocarlas.
Dábamos por hecho que React nos hacía invisibles para Google. Era falso, y comprobarlo costó dos minutos. Si no llegamos a mirar la captura del rastreador, habríamos dedicado el día a arreglar algo que funcionaba.
Abrimos la puerta a los rastreadores de IA y les pusimos contenido legible. Pero nuestro servidor no registraba las visitas, así que no había forma de saber si entraban de verdad. Activar ese registro fue la última tarea del día, y probablemente la más importante: es la diferencia entre medir y suponer.
| Qué | Antes | Después |
|---|---|---|
| Rastreadores de IA | Bloqueados | Permitidos |
| Texto legible sin JavaScript | 0 | 24.813 |
| Errores en robots.txt | 41 | 0 |
| Sitemap | No existía | Enviado |
| Versiones indexadas de la portada | 4 | 1 |
| Precio declarado a las máquinas | 0 € | 4,90–210,90 € |
| Preguntas frecuentes declaradas | 3 inventadas | 13 reales |
| Rutas inventadas | Servían la portada | 404 |
Qué no vamos a prometerte. Nada de esto trae visitas por sí solo. Arreglar la casa no hace que venga gente: hace que, cuando venga, encuentre algo. Nuestro dominio tiene semanas y cero enlaces entrantes; lo honesto es decir que esto se nota en meses, no en días, y que la parte que de verdad trae tráfico es publicar cosas que la gente busque.