Blog
eCommerce

¿Cómo funciona Query Fanout en la IA? Guía completa

En 2025, la forma de buscar información en Internet ha cambiado radicalmente. Google AI Mode, ChatGPT y otros sistemas de IA ya no muestran simples listas de enlaces, sino que descomponen la consulta en docenas de subpreguntas relacionadas, buscan respuestas en múltiples fuentes simultáneamente y las sintetizan en una respuesta completa. Si tienes una tienda online, creas contenidos o trabajas en GEO, entender el mecanismo de desglose de consultas no es una opción, sino una necesidad para que tu marca sea visible en la era de la búsqueda potenciada por IA.

diagrama que muestra el desglose de una pregunta en el modo Google AI en 3 preguntas más específicas

Fundaciones

¿Qué es exactamente Query Fanout?

El fanout de consultas es el mecanismo por el que la inteligencia artificial (por ejemplo, Google AI Mode, ChatGPT, chatbots de comercio electrónico) entiende y procesa las consultas de los usuarios. El sistema automáticamente desglosa una pregunta en varias subpreguntas relacionadas entre sí y busca en diversas fuentes para luego sintetizar los resultados en una única respuesta global.

La palabra "fanout" significa abrirse en abanico, distribuir - aquí: distribución de una consulta a múltiples canales de búsqueda, como Google, Bing o agregadores de datos como Semly.

Ejemplo: Vacaciones en el Mar Báltico

Tecleas en Google AI Mode: "dónde ir con tu familia al mar Báltico, presupuesto 1 179,50 EUR para una semana"

En una búsqueda tradicional, el sistema buscaría las páginas que contienen la palabra clave exacta. En la búsqueda fanout, el sistema hace exactamente eso:

Reconocer las intenciones:

  • Solicitantes: familia con hijos
  • Finalidad: vacaciones junto al mar
  • Restricción: presupuesto de 5.000 libras semanales
  • Ubicación: Mar Báltico (parte marítima polaca)
  • Horario: indefinido, pero sugiere vacaciones de verano

Desglose en subpreguntas:

  • "El alojamiento más barato del Báltico para familias"
  • "Casas rurales en el Báltico 1 179,50 EUR por semana"
  • "Dónde ir barato a la playa con niños en julio"
  • "Atracciones para niños en la playa"
  • "Qué ciudad es popular en el Báltico 2025"
  • "Cómo llegar barato al mar Báltico en familia"
  • "Vacaciones en el Báltico sin comida: opciones económicas"
  • "Las mejores playas para niños en el mar Báltico"
  • "Dónde alojarse con un niño en la costa - foro"
  • Julio o agosto en el Mar Báltico: ¿dónde es más barato?

Búsqueda simultánea:

Búsqueda simultánea: Cada una de estas preguntas se envía simultáneamente a distintas fuentes: portales de reservas, blogs de viajes, foros, sitios web de complejos turísticos, YouTube, reseñas en Google Maps.

Síntesis:

Síntesis: el sistema recopila extractos de todas las fuentes, los organiza (por ejemplo, los más populares/más recomendados aparecerán más arriba) y los presenta al usuario en forma de: "En el mar Báltico lo mejor está en Darlowo, aquí están los balnearios populares con precios, aquí está la playa para niños, y aquí las opciones de acceso".

¿Por qué introdujo Google Query Fanout?

Historial de cambios en la búsqueda

Google ha operado de la siguiente manera durante muchos años:

  1. El usuario introduce las palabras clave
  2. El algoritmo busca páginas que contengan estas palabras
  3. Las clasifica por popularidad y relevancia
  4. Muestra una lista de enlaces

Esto funcionaba bien para preguntas sencillas ("¿Cuánto pesa un elefante?"). Pero cuando las preguntas se volvieron más complejas ("¿Qué coche me conviene si conduzco mucho por la ciudad, tengo dos hijos, me gusta ahorrar combustible pero también quiero fiabilidad y comodidad?"), el modelo tradicional empezó a fallar

Cuando el sistema reconoce que una pregunta requiere un razonamiento avanzado, activa nuestra versión del modelo Géminis. Divide la pregunta en diferentes subtemas y envía varias consultas en paralelo en su nombre. En lugar de ofrecerte una lista de enlaces, el sistema busca los mejores fragmentos de texto, tablas e imágenes de cada una de estas fuentes y elabora una respuesta coherente para ti.
Elizabeth Reid, Directora de Búsqueda de Google, Google I/O 2025

Ventajas prácticas para el usuario

  1. Respuesta rápida - sin pasar por muchas páginas
  2. Integridad - se abordan todos los aspectos de la cuestión
  3. Comparaciones - el sistema compara automáticamente las opciones
  4. Opiniones - el sistema encuentra experiencias de otros usuarios
  5. Actualización - la respuesta contiene la información más reciente
Compruebe si la IA puede ver su tienda

Realizar una auditoría gratuita

¿Cómo funciona técnicamente Query Fanout?

Paso 1: Reconocimiento de intenciones

Cuando un usuario escribe una pregunta, el sistema de IA no se fija primero en las palabras, sino en la intención que hay detrás de la pregunta.

Ejemplo para una tienda de electrónica:

Pregunta: "Qué cámara de vídeo para un vlogger principiante"

Intención reconocida:

  • Categoría de producto: cámaras
  • Nivel de usuario: principiante
  • Uso: vlogging (YouTube/vídeo en redes sociales)
  • Competencias existentes: mínimo
  • Prioridad: facilidad de uso, no capacidades profesionales

El sistema entiende que este usuario no comprará una cámara de 1 179,50 EUR, sino algo de entre 1 179,50 E, con una interfaz sencilla, buena estabilización y un micrófono incorporado.

Paso 2: Descomposición de la consulta

A partir de la intención reconocida, el sistema lleva a cabo descomposición - descompone una sola pregunta en varias subconsultas relacionadas lógicamente.

Para la cámara del vlogger, podrían ser:

  • "Las mejores cámaras para vloggers en ciernes 2025"
  • "Cuánto cuesta una buena cámara para vlogging"
  • "Cámara o smartphone para vlogging: una comparación""
  • "Qué cámara tiene la mejor estabilización de imagen"
  • "Reseñas: las mejores videocámaras para YouTube"
  • "Cámara para vlogging: qué debe tener (micrófono, pantalla)"
  • "Dónde comprar una cámara para vlogging en Polonia"
  • "Los vloggers recomiendan: una cámara para empezar"

Cada una de estas subpreguntas responde a un aspecto diferente de la decisión de compra.

Paso 3: Recuperación paralela

Esta es la parte clave. En lugar de buscar una por una (primero el precio, luego las opiniones, luego las especificaciones... y eso llevaría tiempo), se buscan todas las subconsultas al mismo tiempo.

Ejemplo de pseudocódigo (Python):

# Pseudocódigo simplificado de lo que sucede en segundo plano
import asyncio
async def query_fanout_search(main_query):
    """
    Búsqueda concurrente para todas las subconsultas
    """
    # Desglosamos la pregunta principal
    sub_queries = decompose_query(main_query)
    # Resultado: ["cámara vlogging principiante", "cámara para reseñas YT", ...]
    # Creamos tareas para cada subconsulta
    tasks = []
    for sub_query in sub_queries:
        tasks.append(search_google(sub_query))
        tasks.append(search_youtube_reviews(sub_query))
        tasks.append(search_forums(sub_query))
        tasks.append(search_prices(sub_query))
    # Ejecutamos todo simultáneamente (asyncio)
    all_results = await asyncio.gather(*tasks)
    return all_results

Una búsqueda tradicional sería secuencial. Query fanout las paraleliza (todas a la vez). Esto reduce el tiempo de respuesta de unos segundos a unos 1-2 segundos.

Paso 4: Combinación de los resultados (agregación y clasificación)

Ahora el sistema tiene que hacer lo difícil: combinar resultados de docenas de fuentes diferentes de forma que tenga sentido. El algoritmo utilizado es Fusión por rango recíproco (FRR). Lo explico con un ejemplo sencillo:

Supongamos que buscamos "los mejores auriculares inalámbricos":

Resultados z subpreguntas 1 ("auriculares para el trabajo de oficina"):

  1. Sony WH-1000XM5
  2. Bose QC45
  3. Sennheiser Momentum

Resultados de la subcuestión 2 ("auriculares - prueba de comodidad"):

  1. Bose QC45
  2. AirPods Max de Apple
  3. Sony WH-1000XM5

Resultados de la subpregunta 3 ('auriculares - precio 2025'):

  1. JBL Live Pro 2
  2. Sony WH-1000XM5
  3. Anker Soundcore

FRR funciona así:

  • Sony WH-1000XM5: aparece en los resultados 1, 3, 2 → recibe la puntuación más alta
  • Bose QC45: aparece en puntuaciones de 2, 1 → puntuación media
  • El resto tiene puntuaciones más bajas

Lista definitiva:

  1. Sony WH-1000XM5 (el más recomendado en muchos aspectos)
  2. Bose QC45
  3. JBL Live Pro 2

Etapa 5: Síntesis y presentación

El sistema extrae ahora de cada fuente los pasajes más relevantes:

  • De la crítica: "La comodidad de 8 horas de trabajo"
  • De la prueba: "El ANC reduce el ruido en un 95%"
  • Del foro: "Súper para trabajar a distancia"
  • De la etiqueta de precio: "349 libras en promoción"

Por último, presenta estos resultados al usuario en forma de un único texto coherente con citas de las fuentes.

Implicaciones prácticas para las tiendas en línea

¿Significa esto el fin del SEO tradicional?

No. La búsqueda tradicional sigue existiendo y seguirá existiendo. Pero además de ella, está surgiendo un nuevo canal: la visibilidad en las respuestas de la IA.

SEO tradicional (posicionamiento para palabras clave específicas):

<strong class="font-semibold">[</strong>
<strong class="font-semibold">  {</strong>
<strong class="font-semibold">    "event": "search_query",</strong>
<strong class="font-semibold">    "query": "portátil para aprender a programar",</strong>
<strong class="font-semibold">    "timestamp": "2025-11-28T10:00:00Z"</strong>
<strong class="font-semibold">  },</strong>
<strong class="font-semibold">  {</strong>
<strong class="font-semibold">    "event": "impression",</strong>
<strong class="font-semibold">    "position": 3,</strong>
<strong class="font-semibold">    "context": "SERP"</strong>
<strong class="font-semibold">  },</strong>
<strong class="font-semibold">  {</strong>
<strong class="font-semibold">    "event": "click",</strong>
<strong class="font-semibold">    "target": "https://example.com/best-laptops"</strong>
<strong class="font-semibold">  },</strong>
<strong class="font-semibold">  {</strong>
<strong class="font-semibold">    "event": "page_view",</strong>
<strong class="font-semibold">    "url": "https://example.com/best-laptops"</strong>
<strong class="font-semibold">  }</strong>
<strong class="font-semibold">]</strong>
<mycode3>
Usuario busca: "portátil para aprender a programar"
→ Tu sitio aparece en la posición 3
→ El usuario hace clic en el enlace
→ Aterriza en tu página
</mycode3>

Ambos canales funcionan ahora en paralelo.
<strong class="font-semibold">¿Qué está cambiando en la tienda?</strong>
<strong class="font-semibold">1. La estructura del contenido del sitio web debe cambiar</strong>
<strong class="font-semibold">Enfoque antiguo (optimizado para SEO tradicional):</strong>
<mycode4>
Título: Portátil para programar
El mejor portátil para programar es aquel que tiene...
[dos páginas de texto denso]
</mycode4>
Esto funciona para el lector humano, pero el modo IA necesita más estructura.
<strong class="font-semibold">Nuevo enfoque (bajo query fanout):</strong>
<mycode5>
# Portátil para programar – Guía completa 2025
## ¿Qué necesitas saber antes de comprar un portátil para programar?
### 1. Procesador – ¿Intel o AMD?
AMD Ryzen 7 es más rápido para la compilación de código...
[pruebas específicas]
### 2. RAM – ¿cuánta necesitas?
- Para Python: 8-16 GB
- Para desarrollo web: 16 GB mínimo
- Para IA/ML: 32 GB
### 3. Disco SSD – ¿cuánto?
Mínimo: 512 GB
Recomendación: 1 TB
[Cada punto tiene una respuesta clara y autónoma]
## Comparación de modelos populares
| Modelo | Procesador | RAM | SSD | Precio | Valoración |
| --- | --- | --- | --- | --- | --- |
| Modelo A | Ryzen 7 | 16GB | 512GB | 945 EUR | 9.2 |
| Modelo B | i7-13 | 16GB | 1TB | 1065 EUR | 9.5 |
[Cada fila es un fragmento que la IA puede extraer]
## FAQ – preguntas frecuentes
P: ¿Es bueno un MacBook para programar?
R: Sí, pero...
P: ¿Cuánto cuesta un buen portátil para programar?
R: Desde 700 EUR...
[Cada par P/R es una subconsulta potencial]
## Opiniones de usuarios
"Compré este portátil, programo en Python y ahora estoy ganando..." (15 opiniones positivas)
</mycode5>
¿Ve la diferencia? La segunda estructura permite a la IA extraer fragmentos para cada subconsulta.
<strong class="font-semibold">2. Los datos estructurados (Schema Markup) son ahora una obligación</strong>
 es una forma de "decirle" a la IA qué significan exactamente los números y las palabras de su página.
Ejemplo:
<mycode6>
El portátil cuesta 1000 EUR
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Portátil para programación Modelo X",
  "image": "https://example.com/laptop-x.jpg",
  "description": "Portátil de alto rendimiento para programar.",
  "brand": {
    "@type": "Brand",
    "name": "BrandName"
  },
  "offers": {
    "@type": "Offer",
    "price": "945",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "ratingCount": "125"
  }
}
</script>
</mycode6>
De este modo, cuando AI busque "aptops para programar hasta 4.000 EUR", tu sitio web aparecerá en los resultados.
<strong class="font-semibold">3. La autoridad y las citas son más importantes que nunca</strong>
Las consultas favorecen a las fuentes que se citan varias veces en las respuestas de la IA. Si su sitio aparece en las respuestas a varias subconsultas, significa que es una autoridad.
<strong class="font-semibold">¿Cómo se crea autoridad?</strong>
<cta dark title="Compruebe si la IA puede ver su tienda" description="Realizar una auditoría gratuita" link="https://platform.semly.ai/register" linkText="Compruébalo ahora">
<strong class="font-semibold">Guía 1: Trazar el abanico de consultas para su producto</strong>
Supongamos que tienes una tienda de power banks.
<strong class="font-semibold">Paso 1: Seleccionar la consulta principal</strong>
"Mejor powerbank hasta 150 EUR"
<strong class="font-semibold">Paso 2: Ampliar con contexto</strong>
<strong class="font-semibold">Aplicación:</strong>
<strong class="font-semibold">Características</strong>:
<strong class="font-semibold">Perfil del usuario:</strong>
<strong class="font-semibold">Tipo de comparación:</strong>
<strong class="font-semibold">Paso 3: Generar subconsultas específicas</strong>
<mycode7>
USO:
- "power bank para iPhone"
- "power bank para portátil"
- "power bank para vacaciones – prueba"
- "power bank para trabajo de oficina"
CARACTERÍSTICAS:
- "cuántas veces carga el móvil una power bank"
- "power bank 20000 mAh vs 30000 mAh"
- "power bank carga rápida – cuántos vatios"
COMPARATIVAS:
- "power bank Xiaomi vs Samsung"
- "power bank barata vs cara – diferencia"
- "mejor power bank 2025 – ranking"
SOLUCIÓN DE PROBLEMAS:
- "la power bank no carga – qué hacer"
- "la power bank se descarga rápido"
- "la power bank se calienta"
</mycode7>
<strong class="font-semibold">Paso 4: Para cada subconsulta, prepare una sección en la página</strong>
<mycode8>
## ¿Cuántas veces cargará mi teléfono una power bank de 20000 mAh?
Depende de la capacidad de la batería de tu teléfono:
- iPhone 14 (3200 mAh): ~6 veces
- Samsung Galaxy S24 (4000 mAh): ~5 veces
- OnePlus 12 (5400 mAh): ~3.5 veces
- iPad Air (8600 mAh): ~2 veces
**¿Cómo se calcula?**
20000 mAh (power bank) / 4000 mAh (teléfono) = 5 cargas
(en la práctica menos debido a la pérdida de energía)
## ¿Cargará una power bank de 20000 mAh un portátil?
Sí, pero...
- Debe tener una salida USB-C Power Delivery
- Debe ser de al menos 65W
- Portátiles antiguos (con Micro USB) – no
Nuestro modelo: 100W, USB-C PD, carga un MacBook Air en 2.5 horas.
## Power bank para vacaciones – ¿cabrá?
- Dimensiones: 12 x 7 x 3 cm
- Peso: 420 g
- Cabe en una mochila, un neceser, o el bolsillo de un bolso grande
- Ideal para vacaciones (no ocupa espacio)
[etc.]
</mycode8>

<strong class="font-semibold">Guía 2: Redacción de contenidos para Query Fanout - plantilla</strong>
<strong class="font-semibold">Plantilla de encabezamiento (para cada aspecto)</strong>
<mycode9>
# [Producto] – Guía completa [Año]
## ¿Qué debes saber antes de comprar [producto]?
### 1. [Primer aspecto crítico]
- Definición para principiantes
- Por qué es importante
- Cómo comprobarlo en la práctica
### 2. [Segundo aspecto]
[igual que arriba]
### 3. [Tercer aspecto]
[igual que arriba]
## Comparativa de modelos populares
| Nombre | Espec1 | Espec2 | Precio | Opinión |
| --- | --- | --- | --- | --- |
| Modelo A | | | | |
## FAQ – preguntas frecuentes
P: [Pregunta que apareció en Google Trends]
R: [Respuesta específica]
## Opiniones de usuarios
"Historia del usuario, por qué lo compró, cuáles son sus experiencias"
</mycode9>

<strong class="font-semibold">Manual 3: Aplicación </strong><strong class="font-semibold">para el producto</strong>
<mycode10>
<!DOCTYPE html>
<html>
<head>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Batería externa 20000 mAh SuperCharge",
  "image": ["https://...1.jpg"],
  "description": "Batería externa por menos de 35 EUR con carga rápida",
  "brand": {
    "@type": "Brand",
    "name": "TechBrand"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://...product",
    "priceCurrency": "EUR",
    "price": "29.99",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "ratingCount": "348",
    "bestRating": "5",
    "worstRating": "1"
  },
  "review": [
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Usuario Juan"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Gran batería externa, muy recomendada"
    }
  ]
}
</script>
</head>
</html>
</mycode10>

<strong class="font-semibold">Como resultado, la IA sabe exactamente:</strong>
<strong class="font-semibold">Situación 1: El cliente busca una "comparación"</strong>
<frame tag="Pregunta del usuario:">"Bicicleta de grava o de carretera: ¿cuál elegir?"</frame>
Las subconsultas que genera la IA:
<strong class="font-semibold">Qué debe contener su sitio web para aparecer:</strong>
<strong class="font-semibold">Escenario 2: El cliente tiene un problema específico</strong>
<frame tag="Pregunta del usuario:"></frame>
<strong class="font-semibold">Subpreguntas:</strong>
<strong class="font-semibold">Qué debe contener su contenido:</strong>
<strong class="font-semibold">Escenario 3: El cliente compara marcas</strong>
<frame tag="Pregunta del usuario:">"Xiaomi o Samsung: el smartphone de 2025"</frame>
<strong class="font-semibold">Subpreguntas</strong>:
<strong class="font-semibold">Qué debe incluir:</strong>
<strong class="font-semibold">Código 1: Generación de subconsultas a partir de GPT-5 (python)</strong>
<mycode12>
import openai

def generate_sub_queries(main_query, num_queries=10):
    """
    Genera subconsultas para la pregunta principal
    """
    prompt = f"""
    Eres un experto en SEO y Optimización de Búsqueda con IA.
    El usuario ha hecho la siguiente pregunta:
    "{main_query}"
    Genera {num_queries} subconsultas relacionadas que el usuario 
    podría haber tenido en mente o que un Modo IA podría generar.
    Las subconsultas deben cubrir:
    - Definiciones y explicaciones
    - Comparativas y alternativas
    - Precios y disponibilidad
    - Opiniones y experiencias
    - Solución de problemas
    Devuelve solo la lista de subconsultas, una por línea.
    """

    response = openai.ChatCompletion.create(
        model="gpt-5",
        messages=[
            {"role": "user", "content": prompt}
        ],
        temperature=0.7,
        max_tokens=1000
    )

    sub_queries = response.choices[0].message.content.strip().split('\n')
    return [q.strip() for q in sub_queries if q.strip()]

# Ejemplo de uso:
main_q = "¿Qué power bank elegir por menos de 50 EUR?"
subs = generate_sub_queries(main_q)

for i, sub in enumerate(subs, 1):
    print(f"{i}. {sub}")

# Resultado:
# 1. Cuántos mAh debe tener una power bank para móvil
# 2. Power bank 20000 mAh vs 30000 mAh – cuál es mejor
# 3. Mejores power banks por menos de 43 EUR 2025
# etc.
</mycode12>

<strong class="font-semibold">Código 2: Simulación de Query Fanout - búsqueda multicanal (python)</strong>
<mycode13>
import asyncio
from typing import List, Dict

class QueryFanoutSimulator:
    """
    Simula una operación de fan-out de consultas
    """
    def __init__(self):
        self.databases = {
            'products': self.search_products,
            'reviews': self.search_reviews,
            'forums': self.search_forums,
            'prices': self.search_prices,
            'youtube': self.search_youtube
        }

    async def execute_fanout(self, main_query: str, sub_queries: List[str]) -> Dict:
        """
        Ejecuta el fan-out de consultas para la pregunta principal
        """
        print(f"Consulta principal: {main_query}\n")
        print(f"Subconsultas generadas ({len(sub_queries)}):")
        for sq in sub_queries:
            print(f"  - {sq}")
        
        print("\n--- Búsqueda simultánea ---\n")
        
        # Para cada subconsulta, buscamos en todas las bases de datos simultáneamente
        tasks = []
        for sub_query in sub_queries:
            for db_name, search_func in self.databases.items():
                tasks.append(
                    self._search_with_metadata(db_name, search_func, sub_query)
                )
        
        # Ejecutar todo simultáneamente
        results = await asyncio.gather(*tasks)
        
        # Agregación de resultados
        aggregated = self._aggregate_results(results)
        return aggregated

    async def _search_with_metadata(self, source: str, search_func, query: str):
        """
        Búsqueda con metadatos (qué fuente, ranking)
        """
        results = await search_func(query)
        return {
            'source': source,
            'query': query,
            'results': results,
            'count': len(results)
        }

    async def search_products(self, query: str) -> List[Dict]:
        """Simulación de búsqueda de productos"""
        await asyncio.sleep(0.5)  # Simulación de retraso
        return [
            {'title': f'Producto A para "{query}"', 'rank': 1},
            {'title': f'Producto B para "{query}"', 'rank': 2}
        ]

    async def search_reviews(self, query: str) -> List[Dict]:
        """Simulación de búsqueda de reseñas"""
        await asyncio.sleep(0.3)
        return [
            {'title': f'Reseña: {query}', 'rank': 1, 'rating': 4.5}
        ]
</mycode13>

<strong class="font-semibold">Código 3: Extracción de pasajes (python)</strong>
<mycode14>
import re
from typing import List

def extract_passages_for_fanout(content: str, query: str) -> List[str]:
    """
    Extrae pasajes de contenido que responden a la subconsulta
    """
    # Dividiendo en párrafos
    paragraphs = content.split('\n\n')
    relevant_passages = []

    for para in paragraphs:
        # Buscando palabras clave de la consulta
        score = calculate_relevance(para, query)
        
        # ¡OJO! El umbral es 0.6, pero en tu ejemplo esperas resultados con 0.40.
        # Esto filtrará resultados relevantes si no coinciden muchas palabras.
        if score > 0.6:  # Umbral: 60% de relevancia
            # Limitando a 2-3 oraciones (fragmento)
            sentences = para.split('. ')
            passage = '. '.join(sentences[:3]) + '.'
            
            relevant_passages.append({
                'text': passage,
                'score': score,
                'length': len(passage)
            })
    
    # Ordenando por puntuación
    relevant_passages = sorted(
        relevant_passages,
        key=lambda x: x['score'],
        reverse=True
    )
    
    return relevant_passages[:5]  # Top 5 fragmentos

def calculate_relevance(text: str, query: str) -> float:
    """
    Calcula qué tan relevante es el texto para la consulta (0-1)
    """
    query_words = query.lower().split()
    text_lower = text.lower()
    
    # Expresión generadora para contar coincidencias
    # Nota: esto encuentra subcadenas (ej. "pan" en "pantalla")
    matches = sum(1 for word in query_words if word in text_lower)
    
    relevance = matches / len(query_words) if query_words else 0
    return min(relevance, 1.0)  # Máx 100%

# Ejemplo de uso:
content = """
Una power bank es un dispositivo que almacena energía y carga tu teléfono.

20000 mAh significa capacidad: cuantos más mAh, más veces carga el teléfono.

Una power bank para trabajo de oficina debe ser compacta y práctica.

Nuestro modelo pesa solo 300 gramos y cabe en un bolso.

La carga rápida es una función importante. Nuestro modelo soporta 65W.
"""

# Consulta traducida para que coincida con el texto
passages = extract_passages_for_fanout(content, "power bank para trabajo de oficina")

for i, p in enumerate(passages, 1):
    print(f"{i}. (puntuación: {p['score']:.2f})")
    print(f"   {p['text']}\n")

# Resultado esperado (si la lógica permitiera puntuaciones bajas):
# 1. (puntuación: 0.83)
#    Una power bank para trabajo de oficina debe ser compacta y práctica.
#
# 2. (puntuación: 0.00 - REALIDAD)
#    El código actual dará 0.00 para el segundo párrafo porque 
#    no comparte palabras clave exactas con la consulta, 
#    aunque semánticamente sea relevante.
</mycode14>

<cta dark title="Compruebe si la IA puede ver su tienda" description="Realizar una auditoría gratuita" link="https://platform.semly.ai/register" linkText="Compruébalo ahora">
<strong class="font-semibold">Error 1: Escribir sólo para humanos, no para IA</strong>
<strong class="font-semibold">El lado equivocado:</strong>
<mycode15>
¡La Power Bank más vendida de 2025! Nuestros productos garantizan satisfacción.
Compra ahora y ahorra 10 EUR. Envío gratis en pedidos superiores a 30 EUR...
</mycode15>

¿Por qué malo? AI Mode no lo sabe:
<strong class="font-semibold">Buen sitio:</strong>
<mycode16>
## ¿Qué es una power bank de 20000 mAh?
Una power bank es un dispositivo de carga con una capacidad de 20000 mAh.
### ¿Cuántas veces cargará un teléfono?
- iPhone 14: 6 veces
- Samsung S24: 5 veces
### Precio
40 EUR (oferta de 47 EUR)
### Opiniones
Valoración: 4.8/5 (348 opiniones)
</mycode16>

La IA puede extraer de ello: capacidad, aplicación, precio, retroalimentación.
<strong class="font-semibold">Error 2: Artículos inacabados</strong>
Muchas tiendas tienen artículos como "Artículo en preparación" o "Próximamente". Esto es invisible para el Modo IA: el artículo se ignora.
<strong class="font-semibold">Regla:</strong> Publique artículos completos. Si no tienes tiempo, muchos artículos cortos son mejores que uno largo inacabado.
<strong class="font-semibold">Error 3: Faltan datos estructurales</strong>
<mycode17>
Sin Schema:
Los auriculares cuestan 70 EUR
Con Schema:
<span itemscope itemtype="https://schema.org/Offer">
  <span itemprop="price">70</span>
  <span itemprop="priceCurrency">EUR</span>
</span>
</mycode17>
Sin Schema, la IA puede pensar que se trata del año o del número de modelo. Con Schema, sabe que se trata del precio.
<strong class="font-semibold">Error 4: Copiar a la competencia</strong>
Si todas las tiendas escriben de forma idéntica ("La mejor powerbank es..."), ninguna destacará. La consulta favorece el fanout <strong class="font-semibold">una perspectiva única.</strong>
<strong class="font-semibold">Buenas prácticas:</strong>
Esta IA tomará más fácilmente.
<strong class="font-semibold">¿Se aplica Query Fanout a todos los sectores?
</strong>No. Es más aplicable a sectores en los que las decisiones son complejas:
Menos preocupado:
<strong class="font-semibold">
¿Cuánto tiempo se tarda en adaptar la tienda en Query Fanout?</strong>
Para una tienda pequeña (50-100 productos): 2-4 semanas, para una mediana (1000 productos): 2-3 meses, para una grande (10000+ productos): 6 meses o más
No se trata de un trabajo puntual, sino de un proceso continuo.

<strong class="font-semibold">¿Será un producto bien clasificado tradicionalmente visible en el modo IA?</strong>
Normalmente sí, pero no siempre. El modo IA tiene criterios diferentes a los de la búsqueda tradicional. Es posible que se posicione alto en la búsqueda tradicional, pero no en el modo IA (o viceversa). Por lo tanto, ambas estrategias son importantes.

<strong class="font-semibold">¿Está cambiando Query Fanout la forma de obtener tráfico de Google Ads?</strong>
Por ahora, no: Google Ads sigue funcionando. Pero a largo plazo, si cada vez más gente utiliza el modo AI en lugar de la búsqueda tradicional, el modelo de negocio puede cambiar. Merece la pena invertir en otros canales (correo electrónico, redes sociales, asociaciones).

<strong class="font-semibold">¿Utiliza ChatGPT también Query Fanout?</strong>
ChatGPT utiliza una versión avanzada (pide explicaciones al usuario, desglosa internamente las consultas). Pero no tiene la visibilidad del Modo IA de Google. Otras herramientas:

<strong class="font-semibold">¿Es necesario que mi contenido esté literalmente en mi página?</strong>
No. El Modo IA también puede citar pasajes de otras fuentes. Pero si usted tiene su propia página - esto aumenta en gran medida las posibilidades de visibilidad en las respuestas.
<strong class="font-semibold">¿Es AMP o mobile-first importante para Query Fanout?
</strong>Sí, pero no de la misma manera que para el SEO tradicional. AI Modo importante son:
Pero no necesariamente la velocidad del sitio (aunque un sitio rápido siempre ayuda).

<strong class="font-semibold">¿Debo contratar ahora a un redactor?</strong>
Si no lo has tenido antes, sí. Query Fanout requiere un gran volumen de contenido de alta calidad. Un redactor debe escribir un artículo por semana (como mínimo).
<strong class="font-semibold">Modo AI</strong> - modo de búsqueda de Google, en el que las respuestas las genera la IA (en lugar de una lista de enlaces)
<strong class="font-semibold">Agregación</strong> - combinar resultados de varias fuentes en una única respuesta
<strong class="font-semibold">Asyncio</strong> - biblioteca Python para la ejecución simultánea de tareas
<strong class="font-semibold">Autoridad</strong> - google sabe que el sitio es fiable sobre el tema en cuestión
<strong class="font-semibold">Backlink </strong>- enlace de otra página a la suya
<strong class="font-semibold">Chatbot</strong> - un programa que habla con el usuario
<strong class="font-semibold">Chunk</strong> - pequeño fragmento de texto (por ejemplo, un párrafo)
<strong class="font-semibold">Consulta básica</strong> - la pregunta principal con la que empezamos
<strong class="font-semibold">Descomposición</strong> - dividir una pregunta en varias preguntas más pequeñas
<strong class="font-semibold">Inserción</strong> - conversión de texto en números (vectores) que representan significados
<strong class="font-semibold">Fanout </strong>- difusión, diseminación (aquí: difusión de una investigación)
<strong class="font-semibold">Géminis</strong> - modelo de IA de Google (equivalente a ChatGPT)
<strong class="font-semibold">Generador (LLM)</strong> - modelo de IA que genera texto
<strong class="font-semibold">Alucinación</strong> - cuando AI inventa información que no es cierta
<strong class="font-semibold">Reconocimiento de intenciones</strong> - reconocer lo que el usuario realmente quiere (no sólo lo que ha escrito)
<strong class="font-semibold">LLM (Gran Modelo Lingüístico)</strong> - gran modelo lingüístico (ChatGPT, Gemini, Claude)
<strong class="font-semibold">Extracción de pasajes</strong> - extracción de fragmentos de texto pertinentes
<strong class="font-semibold">Consulta</strong> - pregunta, consulta
<strong class="font-semibold">Descomposición de consultas</strong> - dividir una pregunta en subpreguntas
<strong class="font-semibold">Consulta Fanout</strong> - diseminación de las preguntas en múltiples subpreguntas mediante IA
<strong class="font-semibold">RAG (Generación mejorada por recuperación)</strong> - búsqueda de información + generación de respuestas
<strong class="font-semibold">Fusión por rango recíproco (FRR) </strong>- un algoritmo para combinar resultados de múltiples fuentes
<strong class="font-semibold">Relevancia</strong> - si el resultado es pertinente para la consulta
<strong class="font-semibold">Recuperación</strong> - buscar, buscar información
<strong class="font-semibold">Esquema.org</strong> - norma para marcar datos en las páginas
<strong class="font-semibold">Semántica</strong> - significado de palabras y textos
<strong class="font-semibold">SEO</strong> - optimización de motores de búsqueda
<strong class="font-semibold">Subconsulta</strong> - sub-pregunta, pregunta más pequeña
<strong class="font-semibold">Síntesis</strong> - combinar información de múltiples fuentes
<strong class="font-semibold">Base de datos vectorial</strong> - base de datos que almacena texto como vectores
<strong class="font-semibold">Similitud vectorial</strong> - la similitud entre los dos textos
<mylist1>
<strong class="font-semibold">Análisis</strong> - Comprueba cómo funciona Query Fanout para tus principales productos (busca en Google AI Mode)
<strong class="font-semibold">Cartografía</strong> - Crear una lista de subconsultas para los 10 productos principales
<strong class="font-semibold">Auditoría de contenidos</strong> - Comprobar qué páginas ya tienen fragmentos que se dirigen a subconsultas
<strong class="font-semibold">Estructura</strong> - Reorganizar las páginas de productos: añadir preguntas frecuentes, añadir comparaciones en tablas, añadir opiniones de usuarios, añadir secciones "Lo que hay que saber 
<strong class="font-semibold">Esquema</strong> - Implantar Schema.org en todas las páginas de productos
<strong class="font-semibold">Contenido</strong> - Redactar artículos de "guía de compra" para las principales categorías
<strong class="font-semibold">Enlaces de retroceso</strong> - Empezar a crear autoridad (artículos en sitios externos)
<strong class="font-semibold">Supervisión</strong> - Visibilidad de la pista en modo IA (las nuevas herramientas lo hacen posible)
<strong class="font-semibold">Iteración</strong> - Analizar las subconsultas y actualizar el contenido mensualmente
</mylist1>
Query Fanout no es el futuro, es el presente. Desde mayo de 2025, Google AI Mode está en producción y sus competidores le siguen el ritmo (ChatGPT, Claude, Perplexity).
Puntos clave que hay que recordar:
Query Fanout le ofrece nuevas posibilidades para su tienda. No tienes que ser un programador: puedes empezar analizando cómo funciona Query Fanout para tus productos, mapeando subconsultas y preparando mejores contenidos.
El resto vendrá de forma natural.
<strong class="font-semibold">Fuentes</strong>

[

{

"event": "search_query",

"query": "portátil para aprender a programar",

"timestamp": "2025-11-28T10:00:00Z"

},

{

"event": "impression",

"position": 3,

"context": "SERP"

},

{

"event": "click",

"target": "https://example.com/best-laptops"

},

{

"event": "page_view",

"url": "https://example.com/best-laptops"

}

]

Usuario busca: "portátil para aprender a programar"
→ Tu sitio aparece en la posición 3
→ El usuario hace clic en el enlace
→ Aterriza en tu página

Ambos canales funcionan ahora en paralelo.

¿Qué está cambiando en la tienda?

1. La estructura del contenido del sitio web debe cambiar

Enfoque antiguo (optimizado para SEO tradicional):

Título: Portátil para programar
El mejor portátil para programar es aquel que tiene...
[dos páginas de texto denso]

Esto funciona para el lector humano, pero el modo IA necesita más estructura.

Nuevo enfoque (bajo query fanout):

# Portátil para programar – Guía completa 2025
## ¿Qué necesitas saber antes de comprar un portátil para programar?
### 1. Procesador – ¿Intel o AMD?
AMD Ryzen 7 es más rápido para la compilación de código...
[pruebas específicas]
### 2. RAM – ¿cuánta necesitas?
- Para Python: 8-16 GB
- Para desarrollo web: 16 GB mínimo
- Para IA/ML: 32 GB
### 3. Disco SSD – ¿cuánto?
Mínimo: 512 GB
Recomendación: 1 TB
[Cada punto tiene una respuesta clara y autónoma]
## Comparación de modelos populares
| Modelo | Procesador | RAM | SSD | Precio | Valoración |
| --- | --- | --- | --- | --- | --- |
| Modelo A | Ryzen 7 | 16GB | 512GB | 945 EUR | 9.2 |
| Modelo B | i7-13 | 16GB | 1TB | 1065 EUR | 9.5 |
[Cada fila es un fragmento que la IA puede extraer]
## FAQ – preguntas frecuentes
P: ¿Es bueno un MacBook para programar?
R: Sí, pero...
P: ¿Cuánto cuesta un buen portátil para programar?
R: Desde 700 EUR...
[Cada par P/R es una subconsulta potencial]
## Opiniones de usuarios
"Compré este portátil, programo en Python y ahora estoy ganando..." (15 opiniones positivas)

¿Ve la diferencia? La segunda estructura permite a la IA extraer fragmentos para cada subconsulta.

2. Los datos estructurados (Schema Markup) son ahora una obligación

Esquema.org es una forma de "decirle" a la IA qué significan exactamente los números y las palabras de su página.

Ejemplo:

El portátil cuesta 1000 EUR
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Portátil para programación Modelo X",
  "image": "https://example.com/laptop-x.jpg",
  "description": "Portátil de alto rendimiento para programar.",
  "brand": {
    "@type": "Brand",
    "name": "BrandName"
  },
  "offers": {
    "@type": "Offer",
    "price": "945",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "ratingCount": "125"
  }
}
</script>

De este modo, cuando AI busque "aptops para programar hasta 4.000 EUR", tu sitio web aparecerá en los resultados.

3. La autoridad y las citas son más importantes que nunca

Las consultas favorecen a las fuentes que se citan varias veces en las respuestas de la IA. Si su sitio aparece en las respuestas a varias subconsultas, significa que es una autoridad.

¿Cómo se crea autoridad?

  • Escribe sobre lo que mejor sabes hacer
  • Añadir datos concretos, pruebas, cifras
  • Citar a otros y enlazar - demuestra que estás bien informado
  • Crear vínculos de retroceso de fuentes fiables
  • Actualice periódicamente los contenidos
Compruebe si la IA puede ver su tienda

Realizar una auditoría gratuita

Consejos prácticos

Guía 1: Trazar el abanico de consultas para su producto

Supongamos que tienes una tienda de power banks.

Paso 1: Seleccionar la consulta principal

"Mejor powerbank hasta 150 EUR"

Paso 2: Ampliar con contexto

Aplicación:

  • Para el teléfono
  • Para su portátil
  • Para viajar
  • Para trabajar

Características:

  • Capacidad (mAh)
  • Velocidad de carga
  • Talla
  • Peso

Perfil del usuario:

  • Estudiante
  • Secretaria
  • Viajero
  • Gamer

Tipo de comparación:

  • Concurso
  • Generación anterior
  • Alternativas

Paso 3: Generar subconsultas específicas

USO:
- "power bank para iPhone"
- "power bank para portátil"
- "power bank para vacaciones – prueba"
- "power bank para trabajo de oficina"
CARACTERÍSTICAS:
- "cuántas veces carga el móvil una power bank"
- "power bank 20000 mAh vs 30000 mAh"
- "power bank carga rápida – cuántos vatios"
COMPARATIVAS:
- "power bank Xiaomi vs Samsung"
- "power bank barata vs cara – diferencia"
- "mejor power bank 2025 – ranking"
SOLUCIÓN DE PROBLEMAS:
- "la power bank no carga – qué hacer"
- "la power bank se descarga rápido"
- "la power bank se calienta"

Paso 4: Para cada subconsulta, prepare una sección en la página

## ¿Cuántas veces cargará mi teléfono una power bank de 20000 mAh?
Depende de la capacidad de la batería de tu teléfono:
- iPhone 14 (3200 mAh): ~6 veces
- Samsung Galaxy S24 (4000 mAh): ~5 veces
- OnePlus 12 (5400 mAh): ~3.5 veces
- iPad Air (8600 mAh): ~2 veces
**¿Cómo se calcula?**
20000 mAh (power bank) / 4000 mAh (teléfono) = 5 cargas
(en la práctica menos debido a la pérdida de energía)
## ¿Cargará una power bank de 20000 mAh un portátil?
Sí, pero...
- Debe tener una salida USB-C Power Delivery
- Debe ser de al menos 65W
- Portátiles antiguos (con Micro USB)  no
Nuestro modelo: 100W, USB-C PD, carga un MacBook Air en 2.5 horas.
## Power bank para vacaciones – ¿cabrá?
- Dimensiones: 12 x 7 x 3 cm
- Peso: 420 g
- Cabe en una mochila, un neceser, o el bolsillo de un bolso grande
- Ideal para vacaciones (no ocupa espacio)
[etc.]

Guía 2: Redacción de contenidos para Query Fanout - plantilla

Plantilla de encabezamiento (para cada aspecto)

# [Producto] – Guía completa [Año]
## ¿Qué debes saber antes de comprar [producto]?
### 1. [Primer aspecto crítico]
- Definición para principiantes
- Por qué es importante
- Cómo comprobarlo en la práctica
### 2. [Segundo aspecto]
[igual que arriba]
### 3. [Tercer aspecto]
[igual que arriba]
## Comparativa de modelos populares
| Nombre | Espec1 | Espec2 | Precio | Opinión |
| --- | --- | --- | --- | --- |
| Modelo A | | | | |
## FAQ – preguntas frecuentes
P: [Pregunta que apareció en Google Trends]
R: [Respuesta específica]
## Opiniones de usuarios
"Historia del usuario, por qué lo compró, cuáles son sus experiencias"

Manual 3: Aplicación Esquema.org para el producto

<!DOCTYPE html>
<html>
<head>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Batería externa 20000 mAh SuperCharge",
  "image": ["https://...1.jpg"],
  "description": "Batería externa por menos de 35 EUR con carga rápida",
  "brand": {
    "@type": "Brand",
    "name": "TechBrand"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://...product",
    "priceCurrency": "EUR",
    "price": "29.99",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "ratingCount": "348",
    "bestRating": "5",
    "worstRating": "1"
  },
  "review": [
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Usuario Juan"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Gran batería externa, muy recomendada"
    }
  ]
}
</script>
</head>
</html>

Como resultado, la IA sabe exactamente:

  • ¿Cuál es el precio?
  • ¿Cuántas opiniones tiene?
  • ¿Está disponible?
  • Lo que dicen los usuarios

Consulta Fanout en escenarios reales

Situación 1: El cliente busca una "comparación"

Pregunta del usuario:

"Bicicleta de grava o de carretera: ¿cuál elegir?"

Las subconsultas que genera la IA:

  • "La bicicleta de grava: qué es, para qué"
  • "Bicicleta de carretera - parámetros, finalidad"
  • "Grava frente a carretera: diferencias técnicas"
  • "Grava o carretera para el cicloturismo"
  • "Grava o carretera - precio en Polonia"
  • "Opiniones: qué moto es mejor para un principiante"
  • "Pruebas: agarre en grava frente a agarre en carretera"

Qué debe contener su sitio web para aparecer:

  • Definiciones (grava + carretera)
  • Tabla comparativa
  • Opiniones de usuarios reales
  • Precios (enlaces a tiendas)
  • Pruebas prácticas
  • Para quién cada tipo

Escenario 2: El cliente tiene un problema específico

Pregunta del usuario:

Subpreguntas:

  • "Por qué los auriculares inalámbricos se descargan rápidamente"
  • "Auriculares Bluetooth: cómo prolongar el tiempo de funcionamiento"
  • "Qué auriculares tienen mayor autonomía"
  • "Cambiar la pila de los auriculares: ¿es posible?"
  • "Problemas con la batería de los auriculares - foro"

Qué debe contener su contenido:

  • Razones (por qué ocurre esto)
  • Guía (cómo prolongar la vida)
  • Comparativa de terminales con mejor batería
  • Información de servicio
  • Asesoramiento técnico (calibración de la batería)

Escenario 3: El cliente compara marcas

Pregunta del usuario:

"Xiaomi o Samsung: el smartphone de 2025"

Subpreguntas:

  • "Xiaomi vs Samsung: comparación de especificaciones"
  • "Xiaomi o Samsung: lo que recomiendan los expertos"
  • "Xiaomi - opiniones de usuarios 2025"
  • "Samsung - opiniones de usuarios 2025"
  • "Xiaomi o Samsung: cuál es mejor para las fotos"
  • "Xiaomi vs Samsung precio"
  • "Servicio Xiaomi vs Samsung en Polonia"

Qué debe incluir:

  • Comparación técnica en la tabla
  • Opiniones editoriales
  • Imágenes de la cámara (comparación de fotos)
  • Precios en las tiendas polacas
  • Disponibilidad del servicio
  • Garantía

Tecnología: código y aplicación

Código 1: Generación de subconsultas a partir de GPT-5 (python)

import openai

def generate_sub_queries(main_query, num_queries=10):
    """
    Genera subconsultas para la pregunta principal
    """
    prompt = f"""
    Eres un experto en SEO y Optimización de Búsqueda con IA.
    El usuario ha hecho la siguiente pregunta:
    "{main_query}"
    Genera {num_queries} subconsultas relacionadas que el usuario 
    podría haber tenido en mente o que un Modo IA podría generar.
    Las subconsultas deben cubrir:
    - Definiciones y explicaciones
    - Comparativas y alternativas
    - Precios y disponibilidad
    - Opiniones y experiencias
    - Solución de problemas
    Devuelve solo la lista de subconsultas, una por línea.
    """

    response = openai.ChatCompletion.create(
        model="gpt-5",
        messages=[
            {"role": "user", "content": prompt}
        ],
        temperature=0.7,
        max_tokens=1000
    )

    sub_queries = response.choices[0].message.content.strip().split('\n')
    return [q.strip() for q in sub_queries if q.strip()]

# Ejemplo de uso:
main_q = "¿Qué power bank elegir por menos de 50 EUR?"
subs = generate_sub_queries(main_q)

for i, sub in enumerate(subs, 1):
    print(f"{i}. {sub}")

# Resultado:
# 1. Cuántos mAh debe tener una power bank para móvil
# 2. Power bank 20000 mAh vs 30000 mAh – cuál es mejor
# 3. Mejores power banks por menos de 43 EUR 2025
# etc.

Código 2: Simulación de Query Fanout - búsqueda multicanal (python)

import asyncio
from typing import List, Dict

class QueryFanoutSimulator:
    """
    Simula una operación de fan-out de consultas
    """
    def __init__(self):
        self.databases = {
            'products': self.search_products,
            'reviews': self.search_reviews,
            'forums': self.search_forums,
            'prices': self.search_prices,
            'youtube': self.search_youtube
        }

    async def execute_fanout(self, main_query: str, sub_queries: List[str]) -> Dict:
        """
        Ejecuta el fan-out de consultas para la pregunta principal
        """
        print(f"Consulta principal: {main_query}\n")
        print(f"Subconsultas generadas ({len(sub_queries)}):")
        for sq in sub_queries:
            print(f"  - {sq}")
        
        print("\n--- Búsqueda simultánea ---\n")
        
        # Para cada subconsulta, buscamos en todas las bases de datos simultáneamente
        tasks = []
        for sub_query in sub_queries:
            for db_name, search_func in self.databases.items():
                tasks.append(
                    self._search_with_metadata(db_name, search_func, sub_query)
                )
        
        # Ejecutar todo simultáneamente
        results = await asyncio.gather(*tasks)
        
        # Agregación de resultados
        aggregated = self._aggregate_results(results)
        return aggregated

    async def _search_with_metadata(self, source: str, search_func, query: str):
        """
        Búsqueda con metadatos (qué fuente, ranking)
        """
        results = await search_func(query)
        return {
            'source': source,
            'query': query,
            'results': results,
            'count': len(results)
        }

    async def search_products(self, query: str) -> List[Dict]:
        """Simulación de búsqueda de productos"""
        await asyncio.sleep(0.5)  # Simulación de retraso
        return [
            {'title': f'Producto A para "{query}"', 'rank': 1},
            {'title': f'Producto B para "{query}"', 'rank': 2}
        ]

    async def search_reviews(self, query: str) -> List[Dict]:
        """Simulación de búsqueda de reseñas"""
        await asyncio.sleep(0.3)
        return [
            {'title': f'Reseña: {query}', 'rank': 1, 'rating': 4.5}
        ]

Código 3: Extracción de pasajes (python)

import re
from typing import List

def extract_passages_for_fanout(content: str, query: str) -> List[str]:
    """
    Extrae pasajes de contenido que responden a la subconsulta
    """
    # Dividiendo en párrafos
    paragraphs = content.split('\n\n')
    relevant_passages = []

    for para in paragraphs:
        # Buscando palabras clave de la consulta
        score = calculate_relevance(para, query)
        
        # ¡OJO! El umbral es 0.6, pero en tu ejemplo esperas resultados con 0.40.
        # Esto filtrará resultados relevantes si no coinciden muchas palabras.
        if score > 0.6:  # Umbral: 60% de relevancia
            # Limitando a 2-3 oraciones (fragmento)
            sentences = para.split('. ')
            passage = '. '.join(sentences[:3]) + '.'
            
            relevant_passages.append({
                'text': passage,
                'score': score,
                'length': len(passage)
            })
    
    # Ordenando por puntuación
    relevant_passages = sorted(
        relevant_passages,
        key=lambda x: x['score'],
        reverse=True
    )
    
    return relevant_passages[:5]  # Top 5 fragmentos

def calculate_relevance(text: str, query: str) -> float:
    """
    Calcula qué tan relevante es el texto para la consulta (0-1)
    """
    query_words = query.lower().split()
    text_lower = text.lower()
    
    # Expresión generadora para contar coincidencias
    # Nota: esto encuentra subcadenas (ej. "pan" en "pantalla")
    matches = sum(1 for word in query_words if word in text_lower)
    
    relevance = matches / len(query_words) if query_words else 0
    return min(relevance, 1.0)  # Máx 100%

# Ejemplo de uso:
content = """
Una power bank es un dispositivo que almacena energía y carga tu teléfono.

20000 mAh significa capacidad: cuantos más mAh, más veces carga el teléfono.

Una power bank para trabajo de oficina debe ser compacta y práctica.

Nuestro modelo pesa solo 300 gramos y cabe en un bolso.

La carga rápida es una función importante. Nuestro modelo soporta 65W.
"""

# Consulta traducida para que coincida con el texto
passages = extract_passages_for_fanout(content, "power bank para trabajo de oficina")

for i, p in enumerate(passages, 1):
    print(f"{i}. (puntuación: {p['score']:.2f})")
    print(f"   {p['text']}\n")

# Resultado esperado (si la lógica permitiera puntuaciones bajas):
# 1. (puntuación: 0.83)
#    Una power bank para trabajo de oficina debe ser compacta y práctica.
#
# 2. (puntuación: 0.00 - REALIDAD)
#    El código actual dará 0.00 para el segundo párrafo porque 
#    no comparte palabras clave exactas con la consulta, 
#    aunque semánticamente sea relevante.

Compruebe si la IA puede ver su tienda

Realizar una auditoría gratuita

Errores y trampas

Error 1: Escribir sólo para humanos, no para IA

El lado equivocado:

¡La Power Bank más vendida de 2025! Nuestros productos garantizan satisfacción.
Compra ahora y ahorra 10 EUR. Envío gratis en pedidos superiores a 30 EUR...

¿Por qué malo? AI Mode no lo sabe:

  • Ya sea un powerbank para el móvil o el portátil
  • ¿Cuántos mAh tiene
  • ¿Cuánto cuesta?
  • Qué opiniones tiene

Buen sitio:

## ¿Qué es una power bank de 20000 mAh?
Una power bank es un dispositivo de carga con una capacidad de 20000 mAh.
### ¿Cuántas veces cargará un teléfono?
- iPhone 14: 6 veces
- Samsung S24: 5 veces
### Precio
40 EUR (oferta de 47 EUR)
### Opiniones
Valoración: 4.8/5 (348 opiniones)

La IA puede extraer de ello: capacidad, aplicación, precio, retroalimentación.

Error 2: Artículos inacabados

Muchas tiendas tienen artículos como "Artículo en preparación" o "Próximamente". Esto es invisible para el Modo IA: el artículo se ignora.

Regla: Publique artículos completos. Si no tienes tiempo, muchos artículos cortos son mejores que uno largo inacabado.

Error 3: Faltan datos estructurales

Sin Schema:
Los auriculares cuestan 70 EUR
Con Schema:
<span itemscope itemtype="https://schema.org/Offer">
  <span itemprop="price">70</span>
  <span itemprop="priceCurrency">EUR</span>
</span>

Sin Schema, la IA puede pensar que se trata del año o del número de modelo. Con Schema, sabe que se trata del precio.

Error 4: Copiar a la competencia

Si todas las tiendas escriben de forma idéntica ("La mejor powerbank es..."), ninguna destacará. La consulta favorece el fanout una perspectiva única.

Buenas prácticas:

  • Su historia (cómo se le ocurrió la idea)
  • Sus pruebas (usted mismo las ha comprobado)
  • Sus opiniones (lo que piensa)

Esta IA tomará más fácilmente.

FAQ - Preguntas más frecuentes

¿Se aplica Query Fanout a todos los sectores?
No. Es más aplicable a sectores en los que las decisiones son complejas:

  • Comercio electrónico (selección de productos)
  • Turismo (planificación de viajes)
  • Consejos (cómo hacer algo)
  • Educación (aprender algo)

Menos preocupado:

  • Preguntas objetivas ("¿Quién será presidente de Polonia en 2025?")
  • Información en tiempo real (meteorología, tarifas)


¿Cuánto tiempo se tarda en adaptar la tienda en Query Fanout?

Para una tienda pequeña (50-100 productos): 2-4 semanas, para una mediana (1000 productos): 2-3 meses, para una grande (10000+ productos): 6 meses o más
No se trata de un trabajo puntual, sino de un proceso continuo.


¿Será un producto bien clasificado tradicionalmente visible en el modo IA?
Normalmente sí, pero no siempre. El modo IA tiene criterios diferentes a los de la búsqueda tradicional. Es posible que se posicione alto en la búsqueda tradicional, pero no en el modo IA (o viceversa). Por lo tanto, ambas estrategias son importantes.

¿Está cambiando Query Fanout la forma de obtener tráfico de Google Ads?
Por ahora, no: Google Ads sigue funcionando. Pero a largo plazo, si cada vez más gente utiliza el modo AI en lugar de la búsqueda tradicional, el modelo de negocio puede cambiar. Merece la pena invertir en otros canales (correo electrónico, redes sociales, asociaciones).


¿Utiliza ChatGPT también Query Fanout?
ChatGPT utiliza una versión avanzada (pide explicaciones al usuario, desglosa internamente las consultas). Pero no tiene la visibilidad del Modo IA de Google. Otras herramientas:

  • IA de la perplejidad: utiliza explícitamente el abanico de consultas
  • Claude - tiene su propio método
  • Chatbots para tiendas: pueden tener una versión simplificada


¿Es necesario que mi contenido esté literalmente en mi página?
No. El Modo IA también puede citar pasajes de otras fuentes. Pero si usted tiene su propia página - esto aumenta en gran medida las posibilidades de visibilidad en las respuestas.

¿Es AMP o mobile-first importante para Query Fanout?
Sí, pero no de la misma manera que para el SEO tradicional. AI Modo importante son:

  • Posibilidad de comprobar el contenido
  • Estructura de datos
  • Autoridad
  • Actualización

Pero no necesariamente la velocidad del sitio (aunque un sitio rápido siempre ayuda).

¿Debo contratar ahora a un redactor?
Si no lo has tenido antes, sí. Query Fanout requiere un gran volumen de contenido de alta calidad. Un redactor debe escribir un artículo por semana (como mínimo).

Glosario

Modo AI - modo de búsqueda de Google, en el que las respuestas las genera la IA (en lugar de una lista de enlaces)

Agregación - combinar resultados de varias fuentes en una única respuesta

Asyncio - biblioteca Python para la ejecución simultánea de tareas

Autoridad - google sabe que el sitio es fiable sobre el tema en cuestión

Backlink - enlace de otra página a la suya

Chatbot - un programa que habla con el usuario

Chunk - pequeño fragmento de texto (por ejemplo, un párrafo)

Consulta básica - la pregunta principal con la que empezamos

Descomposición - dividir una pregunta en varias preguntas más pequeñas

Inserción - conversión de texto en números (vectores) que representan significados

Fanout - difusión, diseminación (aquí: difusión de una investigación)

Géminis - modelo de IA de Google (equivalente a ChatGPT)

Generador (LLM) - modelo de IA que genera texto

Alucinación - cuando AI inventa información que no es cierta

Reconocimiento de intenciones - reconocer lo que el usuario realmente quiere (no sólo lo que ha escrito)

LLM (Gran Modelo Lingüístico) - gran modelo lingüístico (ChatGPT, Gemini, Claude)

Extracción de pasajes - extracción de fragmentos de texto pertinentes

Consulta - pregunta, consulta

Descomposición de consultas - dividir una pregunta en subpreguntas

Consulta Fanout - diseminación de las preguntas en múltiples subpreguntas mediante IA

RAG (Generación mejorada por recuperación) - búsqueda de información + generación de respuestas

Fusión por rango recíproco (FRR) - un algoritmo para combinar resultados de múltiples fuentes

Relevancia - si el resultado es pertinente para la consulta

Recuperación - buscar, buscar información

Esquema.org - norma para marcar datos en las páginas

Semántica - significado de palabras y textos

SEO - optimización de motores de búsqueda

Subconsulta - sub-pregunta, pregunta más pequeña

Síntesis - combinar información de múltiples fuentes

Base de datos vectorial - base de datos que almacena texto como vectores

Similitud vectorial - la similitud entre los dos textos

Lista de comprobación: ¿qué hacer en su tienda?

  • Análisis - Comprueba cómo funciona Query Fanout para tus principales productos (busca en Google AI Mode)
  • Cartografía - Crear una lista de subconsultas para los 10 productos principales
  • Auditoría de contenidos - Comprobar qué páginas ya tienen fragmentos que se dirigen a subconsultas
  • Estructura - Reorganizar las páginas de productos: añadir preguntas frecuentes, añadir comparaciones en tablas, añadir opiniones de usuarios, añadir secciones "Lo que hay que saber
  • Esquema - Implantar Schema.org en todas las páginas de productos
  • Contenido - Redactar artículos de "guía de compra" para las principales categorías
  • Enlaces de retroceso - Empezar a crear autoridad (artículos en sitios externos)
  • Supervisión - Visibilidad de la pista en modo IA (las nuevas herramientas lo hacen posible)
  • Iteración - Analizar las subconsultas y actualizar el contenido mensualmente

Resumen

Query Fanout no es el futuro, es el presente. Desde mayo de 2025, Google AI Mode está en producción y sus competidores le siguen el ritmo (ChatGPT, Claude, Perplexity).

Puntos clave que hay que recordar:

  1. Query Fanout es el desglose de una pregunta en subconsultas - La IA los busca en paralelo
  2. El SEO tradicional sigue existiendo - pero aparece un nuevo canal a su lado (visibilidad en modo AI)
  3. La estructura de los contenidos cambia - en lugar de un único texto para una sola palabra clave, escribe una guía completa que aborde múltiples aspectos
  4. Schema.org ya es imprescindible - La IA tiene que entender qué significan los números y las palabras de tu página
  5. La autoridad, más importante que nunca - La IA favorece a las fuentes que aparecen repetidamente en las respuestas
  6. Esto es un maratón, no un sprint - aplicar lentamente, probar, iterar

Query Fanout le ofrece nuevas posibilidades para su tienda. No tienes que ser un programador: puedes empezar analizando cómo funciona Query Fanout para tus productos, mapeando subconsultas y preparando mejores contenidos.

El resto vendrá de forma natural.

Fuentes

Compartir:

Lee otros artículos sobre IA
Case Studies

Estudio de caso: una plataforma B2B domina un nicho con una estrategia de búsqueda de IA (GEO/AEO)

Ofertoland luchaba con un bajo reconocimiento en las respuestas generadas por IA, que a menudo recomendaban mayoristas o plataformas de la competencia menos favorables procedentes de China. Gracias a la colaboración con Semly, que incluyó la optimización de los datos de producto, la creación de autoridad de marca y el análisis del tráfico derivado de la IA, el mayorista se convirtió en una de las entidades más recomendadas de su sector. Ofertoland se ha convertido en la opción preferida de los minoristas electrónicos en ChatGPT, logrando un aumento del 980% de visibilidad en 60 días.

eCommerce

Arquitectura de comercio electrónico bajo GenAI: API, datos y JSON

Aprende a preparar la arquitectura de tu tienda online para la IA generativa. En este artículo hablamos de la optimización de estructuras JSON, el diseño de API eficientes para agentes de IA y los aspectos técnicos de la gestión de datos de productos que eliminan el alucine de los modelos LLM.

GEO

¿Visibilidad en ChatGPT o publicidad de pago?

La mayoría de las tiendas online basan sus ventas en Google Ads y Meta Ads. Esto funciona, pero el coste por clic aumenta y el margen disminuye. Al mismo tiempo, los clientes preguntan cada vez más a ChatGPT, Gemini o Perplexity en lugar de hacer clic en los anuncios. También están apareciendo Google AI Overviews, que reducen el tráfico de búsqueda clásico. Este artículo muestra cómo el comercio electrónico puede cambiar gradualmente el presupuesto de los anuncios a la visibilidad GEO, SEO y AI, sin arriesgarse a perder ventas y sin cerrar bruscamente las campañas.

AEO

Imagen de marca en la búsqueda por IA: cómo evitar alucinaciones ChatGPT

Aprenda a gestionar eficazmente su imagen de marca en un mundo dominado por los modelos lingüísticos. A partir de este artículo, aprenderá a minimizar el riesgo de alucinaciones ChatGPT, garantizar la integridad de la información en la búsqueda de IA y construir una visibilidad duradera donde los usuarios buscan respuestas hoy.

Verifica si ChatGPT ve tu marca

Obtén tu primer informe de visibilidad de AI en minutos.